テクノロジ系

OSが裏で動かす仕組み — プロセス管理・デッドロック・スプーリング

導入

スマートフォンで音楽を再生しながらSNSをチェックし、同時に地図アプリを開く——この「複数アプリの同時実行」はどうして実現できるのでしょうか。その舞台裏を取り仕切っているのがOS(オペレーティングシステム)のプロセス管理機能です。

くわしく知ろう

OSはCPUやメモリを複数のプログラム間で共有させるため、プロセスという単位で実行状態を管理しています。プロセスは「生成→準備完了→実行→待機→終了」の5段階で遷移します。準備完了状態のプロセスはCPUの割り当てを待ち、入出力が発生すると待機状態へ移り、完了すると準備完了状態に戻ります。

CPUスケジューリングとはCPUをどのプロセスに割り当てるかを決める仕組みです。到着順のFCFS、実行時間の短いものを優先するSJF、均等なタイムスライスを順番に割り当てるラウンドロビン、優先度の高いものを先に実行する優先度方式の4種類が代表的です。ラウンドロビンはタイムスライス超過で強制切り替えるため、応答時間が均等になります。

プロセスはメモリ空間を独立して保持しますが、スレッドは同一プロセス内で複数存在してメモリ空間を共有します。そのためスレッドの切り替えコストはプロセスより低く、並列処理の効率が高まります。

デッドロックは複数プロセスが互いの持つ資源を待ち合い永久に実行できなくなる状態で、「相互排除」「占有待機」「非剥奪」「循環待機」の4条件がすべて同時に成立したときのみ発生します(AND条件)。1つでも崩せば回避できます。スプーリングは低速装置への出力をバッファに蓄えてCPUをブロックしない非同期処理の仕組みです。

具体例

たとえばラウンドロビン(タイムスライス2秒)でA・B・Cの順に実行すると、時刻0〜2でA、2〜4でB、4〜6でCと切り替わります。一方オフィスのプリンタ共有はスプーリングの典型例で、印刷データをキューに蓄えることで各自のPCはすぐに次の作業へ戻れます。

まとめ・試験ポイント

  • プロセス状態遷移=生成→準備完了→実行→待機→終了(5段階)
  • ラウンドロビン=均等タイムスライスを順番に割り当て、応答時間が均等になる
  • プロセス vs スレッド=プロセスはメモリ独立、スレッドは同プロセス内でメモリを共有
  • デッドロック4条件=相互排除・占有待機・非剥奪・循環待機(4つ全部揃うと発生、1つでも崩せば回避)
  • スプーリング=低速装置への出力をバッファに蓄えてCPUをブロックしない仕組み
  • 試験ではデッドロック4条件のAND結合、ラウンドロビンの完了時刻計算、プロセス/スレッドの違いが頻出

学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。

入門試験100問に挑戦する