組み込みソフト開発のしきいを下げる"リアルタイムOS"のすべて
●入出力用装置から割り込み処理
入出力装置がCPUに対して発行する割り込みのことをハードウェア割り込みといい,ソフトウェア側から発行する割り込みをソフトウェア割り込みと呼びます.
これらの割り込みは,事象ごとに割り込み番号をつけて区別して扱います.
入出力装置からの割り込みをCPUが受け取ると,優先順位の高い処理が実行されていないかどうか調べます.その後,発生した割り込みが実行中のプロセスより優先度が高ければ,CPUはそれまで実行していたすべてのコンテキストをメモリに待避し,割り込みを発行した装置ごとに割り当てられている割り込み番号を基に割り込みハンドラを起動します.
割り込みハンドラとは,割り込みを制御する処理プログラムのことです.割り込みハンドラがある番地を指しているポインタのことを割り込みベクタと呼びます.割り込みハンドラの処理がすべて終了したら,待避させていた状態語をすべて回復させ,割り込みが発生した当時のプロセスの実行を再開します(図8).
[図8]プロセスの実行状態と割り込みの関係