No.1
- 回答日時:
システム全体の性能というよりはリアルタイム性とかレスポンスが落ちると言った方が良いでしょうね。
OSが割り込みを多重処理できなければ割り込み処理中は他の割り込みを一切受け付けないし、多重処理できても優先度の低い割り込みは受け付けないので、割り込みハンドラで長い処理を実行するとそれだけ割り込み応答性能は落ちることになります。
No.2ベストアンサー
- 回答日時:
正確には「割り込みハンドラのうち、割り込みを許可しない部分の処理をなるべく早く終えたほうがよい」ということです。
割り込みが許可されない状態では、他の割り込み要求が発生してもそれに対応する割り込み処理が実行されない(待たされる)ことになるので、割り込み要求から割り込み処理までの遅延時間の要求が厳しい場合に要求を満たせなくなる可能性が増すからです。ですので逆に言えば、割り込みを許可しない部分の処理時間を積み上げていって、それが「割り込み要求から割り込み処理までの遅延時間の要求」の最も厳しいものもクリアできる程度なのであれば、割り込みハンドラで速やかに処理を終えなくても構わないということです。
No.3
- 回答日時:
割り込み禁止時間が長くなることで応答性能が悪くなることは既に回答がでていますので、それ以外の観点からお答えします。
割り込みハンドラで複雑な処理をやろうとすると、それだけスタックの消費が大きくなります。割り込みスタック領域が別に用意されているアーキテクチャならよいのですが、そうでなければスタックの総使用量が見積もりにくくなります。
そもそも、非タスクコンテキストでは何かと制約も大きいので、可能な限り適切なタスクを起こしてタスクコンテキストで処理を行うようにした方が、扱いも簡単ですし、間違いも発生しにくいと思います。
No.4
- 回答日時:
iTron はよくわからないのですが、ARM の場合の話を書いてみます。
# ARM を使った組込み屋さんなもので。。。
# OS は独自の簡易 OS を使用しています。
# 機能としてはタスクディスパッチくらいしか持っていませんが。。。
iTron の場合には見当違いの内容があったら、適当に読み飛ばしてください。
# 大筋ではずしてはいないと思いますが。。。
タスクが動いている場合と割込み処理の場合とでは、CPU のモードが異なります。
そして、割込み処理中は、タスクが動けなくなります。
ハードウエアから割込みが入ると、それまでタスクにあった CPU の実行権が、割込み処理にうばわれる形になります。
その結果、タスクの処理は割込み処理が終わるまで待たされることになります。
というわけで、割込み処理の時間が長くなると、タスクに処理が回らなくなる時間が長くなってしまいます。
ですので、割込み処理の時間は短いほうが良いのです。
理想を言えば jacta さんの回答にもあるように、割込みが入ったらタスクに処理を移して、本処理はタスクコンテキストで行うようにした方が良いのは確かですね。
ただ、組込み系のデバイスドライバの場合、設計の都合上タスクを持たない場合もあると思います。
そのような場合には、ある程度処理時間を短くするようにコーディングを工夫する必要はあります。
# 一部をアセンブラにしたりすることもありますね。
多数のご回答ありがとうございました。
割り込み処理ではタスクを切替えるのみで、主だった処理はタスクで行う設計を考えておりましたが、タスクの処理が終了するまで割り込み禁止状態にしようと考えておりました。xcrOSgS2wYさんのご意見を参考に設計しなおしたいと思います。
本来ならお一人づつお礼を申し上げるべきですが、失礼ながらこの欄にて皆様へのお礼と代えさせていただきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- リフォーム・リノベーション 減価償却後の農作業倉庫の壁修理費 確定申告 1 2022/12/24 12:49
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- システム CPUの問題について 2 2022/07/09 12:04
- Excel(エクセル) エクセル 任意の列数で分割する方法 3 2022/07/31 14:58
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- 夫婦 妻の心理が知りたいです。 6 2022/05/28 20:54
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- ゴミ出し・リサイクル ゴミ処理場について。 4 2023/05/06 20:22
- 格安スマホ・SIMフリースマホ IIJmioへのMNP転入について(機種購入も含む)質問です。 ①新しい機種に新しいSIMカードを挿 3 2023/04/10 12:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スーパーのレジで並んでいたら...
-
CPUの処理量を減らすコーデ...
-
PICでタイマー割込み(mikroC V...
-
C言語について(PWM)
-
PICの割り込み機能
-
割り込み処理のシミュレート
-
picタイマ0割り込みについて
-
電車で待機列の割り込みについ...
-
PICで既定の時間数ループを...
-
割り込みについて
-
割り込みの衝突
-
音声ファイル再生時のフリーズ
-
アセンブラのタイマー割り込み
-
ショッピング
-
H8マイコンで割り込みが任意の...
-
順番待ちで並んでいる時、割り...
-
VB6でSendKeyを利用したTab移動...
-
駅のトイレでナイチンに邪魔さ...
-
Macターミナルで実行中のプログ...
-
緯度、経度の 10進法と 60進法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インバウンドで迷惑している人...
-
pic 複数の割り込み関数 切り分...
-
スーパーのレジで並んでいたら...
-
ショッピング
-
Excelでタイマーの一時停止する...
-
電車で待機列の割り込みについ...
-
CPUの処理量を減らすコーデ...
-
C言語でPICマイコン開発
-
【組込み】割り込み中のstatic...
-
Amazonfireタブレットにわから...
-
マイコン C言語 割り込み処理...
-
USB機器からのデータ受信による...
-
一定時間操作がなかったら、と...
-
VB.net 割り込みの禁止
-
ウォッチドッグタイマ(WDT)の...
-
電車乗車時、並んでいるのに割...
-
USJでの割り込み
-
VB6でSendKeyを利用したTab移動...
-
PICでのプログラムによるチャタ...
-
割り込み中に例外異常
おすすめ情報