プロが教えるわが家の防犯対策術!

PCでいう割り込み処理とはなんでしょうか?

色々と調べたり参考書を読んだのですがいまいち理解しにくいです。

簡潔に教えていただきたいです。

よろしくお願いいたします。

A 回答 (3件)

前の人の回答は割り込み処理の基本的な考え方で、教科書等に書かれていることです。



今のパソコン等では極力割り込みは使わないようにしています。
割り込みを使うと、CPUのレジスタデータはもちろん、キャッシュメモリデータの書き直し等が必要で、CPUの動作を一挙に遅くしてしまいます。
USBを含む今の大部分のI/Oは、チップセット等に含まれている制御部でデータ転送等の制御をし、メモリと直接読み書きをしています。
キーやマウスの一挙一動に割込を出すような、効率の悪いことはしていません。
ただ、ある程度まとめたデータ転送が終了したことを知らせるか、定期的な時間毎にデータを見に行くためのタイマ割込は必要になってきます。

まあ、パラレルやシリアルポートのようにレガシーI/Fはコンパチ性を保つため、データ1つずつ割込を出すような制御を行っていますが。

パソコンの割り込み制御は全てWindows等のOSが面倒を見ていますから、ドライブソフトのような、よっぽどハードに近いプログラムを書く人でなければ気にする必要はありません。
    • good
    • 0

PCではキーボードやマウス、HDDやNICなど全ての周辺機器は割り込み(とDMA)でドライブされてます。

そのほかにタイマー割り込みでタスクの切り替えなどが行われてます。割り込み処理プログラムはいかに短時間で終了するかがプロクラマの腕の見せ所です。ユーザーから見ると動作に支障がなく感じるのです。
    • good
    • 0

読んで字のごとく、「割り込む」処理です。



Aさんが箸の本数を数える仕事をしているとします。
そこに「悪いんだけど、その仕事を中断してペットボトルの本数を数えて欲しい」と頼まれ、箸の本数を数えるのをやめてペットボトルの本数を数え始めたとします。

箸の本数を数えるのが本来の仕事=メインルーチン、ペットボトルの本数を数えるのが割り込み処理になります。

割り込みにはいろいろな種類があります。
MNI(禁止できない割り込み)が最も優先度が高く、メインルーチンには割り込みを拒否する事が出来ません。
他に、都合の悪い時には割り込みを受け付けないように設定できる割り込みもあります。

割り込み処理はリアルタイム系の処理に用いられます。
たとえばシリアルポートの信号受信、USB信号の送受信など、メインルーチンの処理にかかわらずいつ発生するか分からない事象の処理です。

プリエンプティブなマルチタスクOSではタスクで処理する事も出来ますが、それよりさらに優先度の高いものが割り込み処理と言えます。

この回答への補足

なるほど。

あと疑問なのですが、
(1)なぜ割り込み処理が必要なのか?

(2)USB信号にも用いられているということはマウスなんかを動かすだけでも割り込みが発生するというこ  とですよね?ということは頻繁にメインルーチンが割り込み処理によって停止させられているということ なのでしょうけど、そんなに頻繁にメインルーチンを停止させていても大丈夫なのでしょうか?確かにマ ウスを動かしてPCが停止したことはないですけど。疑問です。

長々と追加分を書いてしまう申し訳ありません。よければ教えていただければ嬉しいです。
お願いします。

補足日時:2012/09/15 17:30
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!