オペレーティングシステムのタスク管理と関連機能
要点と定義
タスク管理は、タスクの状態やCPU実行順を管理するOSの機能である。実行可能状態はCPUを割り当てられれば実行できる状態、実行状態はCPUを使用している状態、待ち状態は入出力などの完了を待つ状態をいう。ディスパッチャは、実行するタスクを切り替える。プリエンプティブ方式では、実行中のタスクを中断して別のタスクにCPUを割り当てられる。ラウンドロビン方式は、各タスクにタイムクウォンタムを割り当て、未完了なら実行順の後方へ回す方式である。処理時間順方式は、選択時点で待っているジョブから処理時間の短いものを優先する方式であり、非割込みの場合は実行開始後に完了まで実行する。セマフォは、資源の利用可能数の管理やタスク間の同期に用いる仕組みである。ページング方式の仮想記憶では、仮想ページを主記憶のページフレームに対応付け、ページフォールト時に必要なページを読み込む。一時ファイルの必要容量は、同時に存在するファイルの最大量で決まる。
適用条件と例
タイムクウォンタムが各ジョブの処理時間に比べ十分小さく、切替え時間を無視できる場合、実行中のジョブはCPUをほぼ均等に分け合うものとして経過時間を概算できる。優先度方式では、タスクの優先順位と実行可能化の時点を追い、各タスクがCPUを使う区間を求める。処理時間順方式の非割込みスケジューリングでは、実行中のジョブが完了した時点で、到着済みの待ちジョブから処理時間の短いものを選ぶ。ページング方式では、必要なページが主記憶にないときのページフォールトを契機に読み込み、必要に応じて置換を行う。ジョブの一時ファイルについては、生成と削除の条件に沿って時点ごとの残存数を追う。これらの適用は、設問で与えられた優先順位、到着時刻、処理順序、削除条件に従う。
タイムクウォンタムがジョブの処理時間に比べて十分小さく、切替え時間を考慮しない条件では、同時に実行可能なジョブがCPU時間をほぼ均等に使う。3ジョブが動作中に最初のジョブがCPU処理5分を終えるまでの経過時間は約15分であり、その時点で残る2ジョブがCPUを分け合う。2番目のジョブに残るCPU処理5分には約10分かかるため、開始からの経過時間は約25分となる。
プリエンプティブな優先度方式では、実行中タスクより優先度の高いタスクが実行可能になると、実行中タスクを中断して切り替えられる。したがって、実行中タスクより高優先度のタスクが実行可能状態になることが切替えの契機となる。同じ優先度や低い優先度のタスクの実行可能化は、この優先度条件を満たさない。
優先順位方式では、各タスクのCPU処理、I/O処理、実行可能状態での待ちを時系列に区別して追う。例では、低優先度タスクは最初に4ミリ秒待ち、I/O完了後にも高優先度タスクのCPU処理中に6ミリ秒待つ。I/O中の時間は実行可能状態での待ちに含めず、待ち時間の合計は10ミリ秒となる。
セマフォは、共有資源の利用可能数を管理したり、複数タスクの実行順を同期したりするために用いる。このため、タスク間で共有する資源の利用を管理する用途に適する。セマフォ自体は、スタック構造や仮想記憶のスラッシング、セグメント方式を実現する仕組みではない。
この節の続き
- 誤りやすい点
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む