OSと割り込み
先週のジョブ・プロセス・スレッドの説明に引き続き、 プロセスの実行方式の説明から、割り込みなどを中心とした説明を行う。
プロセスの実行方式には、ジョブ方式やTSS方式、リアルタイム方式があることを 説明し、マルチタスクでのメモリ量による処理速度の違いを説明する。 例えとして、主記憶4GBのマシンで、メモリ使用量1GBのプロセスA,B,Cを実行する。 この場合、プロセスが入力待ちなどがあると動かせないので、ジョブ方式では あらかじめ入力データは随時よみこめるようにする必要がある。 ジョブ方式では、1つが終わったら次の処理を起動するので、問題がない。 しかしTSS方式では、みかけ上並行処理をしているようにプロセスの切り替えを するので、若干遅くなる。 しかし、主記憶が2GBという状態では、TSS方式では3つめのCの処理では、 メモリが不足し仮想メモリ機能が必要となる。これに伴い一時停止中の プロセスを補助記憶に保存したり復活させたりという処理が加わるため、 とたんに処理速度が低下する。
こういったOSの処理では、割り込み機能が重要となる。 割り込みとは処理速度の違うものの間での受け渡し時に重要。 割り込みでは、信号が入ったら割り込み許可を確認後、 処理番地(PC)保存・CPU内情報(レジスタ)を行なってから、割り込み処理に切り替わる。 割り込み処理が終了すれば、CPU情報・処理番地情報を元に戻し、本来の処理にもどる。 割り込みには、入出力割り込み・タイマ割り込み・エラー割り込み、ソフトウェア割り込みなどがある。
マルチタスク機能は、タイムスライス時間後にタイマ割り込みが発生するように設定することで実現する。 タイマ割り込み時には、OSが実行待ち行列からプロセスを選んで処理を切り替える。 中断したプロセスは待ち行列の最後尾にいれられ、順次処理が繰り返されることになる。 入出力処理が行われる場合は、プロセスは入出力待ち状態となり、スケジューラは 待ち行列より処理を選んで実行する。時間が経過して入出割り込みが発生すると、 OSが入出力待ちのプロセスを実行状態に戻す。
現時点なら中学お受験で…(11/06)
- 11/06 現時点なら中学お受験でも難しいだろ… "人工知能に受験の試練…10年後の東大合格目標 : 科学 : YOMIURI ONLINE(読売新聞)" http://www.yomiuri.co.jp/science/news/20… via @yomiuri_online #fnct
この記事は、 の @TohruSaitohに掲載した #fnct タグ付き記事を、まとめたものです。