×
システム構成・性能・ソフトウェア

スケジューリングの具体的なアルゴリズムには様々な種類があります。最も単純な「到着順方式(FCFS:First Come First Served)」は、文字通り処理待ちの行列に並んだ順に実行する方式ですが、処理時間の長いタスクが前方にいると後ろのタスクが延々と待たされる「コンボイ効果」という欠点があります。現代の汎用OSで最も基礎となっているのが「ラウンドロビン方式」で、これは全てのタスクに均等な短い持ち時間(タイムクォンタム)を与え、時間が切れたら行列の最後尾に並び直させることで、公平性と応答性を担保する方式です。実際のOSではこれらをさらに高度化させ、タスクに優先度を設定し、複数の待ち行列を準備して、タスクの性質(対話型かバッチ処理か)に応じて優先度を動的に変動させる「多重レベルフィードバックキュー」などの非常に複雑なアルゴリズムが組み合わせて採用されています。

試験でのポイント

各種スケジューリングアルゴリズムの名称と特徴を結びつける問題や、計算問題が出題されるポイントです。

  • ラウンドロビン方式:「タイムクォンタム(タイムスライス)」や「一定時間ごとに順繰りに切り替える」というキーワードが出たらラウンドロビン方式です。各タスクに均等にCPUを割り当てるため、会話型処理(タイムシェアリングシステム)に適している点がよく問われます。
  • 処理時間順(最短処理時間優先:SJF)方式:待ち行列の中で、完了までの実行時間が最も短いタスクから優先して処理する方式です。システム全体の平均待ち時間を最小化できるという理論上のメリットがありますが、処理時間の長いタスクがいつまでも実行されない「スタベーション(飢餓状態)」に陥るリスクがあることが頻出です。
  • ターンアラウンドタイムの計算:タスクがシステムに到着してから、処理が完全に終了するまでにかかる時間を「ターンアラウンドタイム」と呼びます。「到着時間」「処理時間」「アルゴリズム(到着順など)」が表で与えられ、特定のタスクのターンアラウンドタイムを計算させる問題は、基本情報技術者試験などの定番です。

関連する用語

ラウンドロビン、ターンアラウンドタイム、スタベーション