- ベストアンサー
コンピュータの割り込み制御について
割り込み制御による制御の切り替えの仕方がよくわかりません;; また、どのようなときに使うのか例を教えてほしいです。 理系じゃないので詳しく教えてもらえると助かります(;O;)
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Duddlay と申します。 まず始めに、 >理系じゃないので は忘れましょう。 ただ、貴方がどの程度プログラミングについて知識があるのか不明なので、「私なり」に 噛み砕いて説明します。 主に行なっている処理(メイン処理)に対して、外部要因(例えばスイッチのON/OFF等) により「割り込み」を発生させ、「割り込み処理」を実行します。 割り込み処理は、主に ・ソフトウェア割り込み タイマー割り込み(一定時間でソフトウェア割り込みがかかるります) ・ハードウェア割り込み 外部要因割り込み(スイッチのON/OFF、TCP/IP や RS232C 等の通信による割り込み) ゼロ割り込み(分母が0になると、割り算結果が無限大になるので、CPUが強制的に エラー処理へ移行する) ・エラー割り込み(CPUがアクセスできないメモリ空間を参照しようとした時等) 等があります。 割り込みが発生すると、 ・割り込み処理へアドレスがジャンプ(処理が移行)します。 ※ジャンプ先は、ソフト起動時に「割り込みアドレステーブル」へ設定します。 複数設定できます。 ・割り込み処理で使用する「レジスタ」の内容を「スタック」へ積み上げます。 ※「レジスタ」はCPU(コンピューターの頭脳、処理を実行する部分)が演算に使用 する専用メモリです。 ※「スタック」はCPUが管理している「動的メモリ」を指します。 ・割り込み処理を実行します。その間、メイン処理は停止しています。 ・割り込み処理終了前、スタックに積み上げたレジスタの内容を元に戻します。 ・割り込み処理を終了し、メイン処理へ戻ります。戻る場所は、メイン処理中の割り込み が発生した箇所です。 ※場合によっては、(エラー処理の実行等で)割り込み処理で終了してしまう場合もあり ます。 といった感じで、処理を実行します。 図が書けず、口頭での回答ですが、ちと難解ですかね。 わからない箇所があれば「補足」にでも再度質問して頂くか、ググって下さい。 http://yougo.ascii.jp/caltar/%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF
お礼
詳しく説明していただきありがとうございました(>_<) なんとか理解することができました!