スケジューリング 【scheduling】
概要
スケジューリング(scheduling)とは、「予定決め」「日程決め」という意味の英単語。未来のスケジュールを決める過程のことで、分野に寄って業務における作業計画の策定、個人のスケジュール管理、コンピュータにおける処理順序の決定などの意味で用いられる。人間のスケジューリング
人間の行動についてスケジューリングという場合は、先々の予定について、いつ、どこで、何を、(チームの場合は誰が)やるのかを確定あるいは変更するプロセスを指す。
将来やるべきタスクや予定されているイベントを洗い出し、優先順位や順序、所要時間などを勘案して、いつ何をするかを確定させていく。その日やその週にやることを決める短期的な時間管理から、月単位、年単位で長期的な計画を立てることまでを含む。
業務におけるスケジューリングはプロジェクトマネジメントの要となる重要なプロセスである。プロジェクトを構成するタスクに人員やコストなどの資源を適切に配分し、納期までに成果物を完成させるため、精度の高いスケジューリングが求められる。進行状況を可視化するためWBSやガントチャートなどのツールが用いられる。
コンピュータのスケジューリング
コンピュータにおいても、どの処理をいつ行うか、プログラムへの割り当て資源の切り替えをどのようなタイミングで行うかなどを決定することをスケジューリングという。「スケジューラ」という制御システムによって自動的に行われる。
オペレーティングシステム(OS)には、スケジューリングの対象や頻度などが異なるいくつかのスケジューラが搭載されており、協調してプログラム実行の切り替えを行っていく。「長期スケジューラ」は、いつどのプログラムを起動するかを決定するシステムで、ジョブ管理システムやバッチ処理システム、タスクスケジューラなどが該当する。
「短期スケジューラ」は、マルチタスクOSにおいて並行に実行されているプログラム群にCPUの実行時間を割り当て、順繰りに切り替える仕組みである。「CPUスケジューラ」とも呼ばれる。これにより、一基のCPUであたかも複数のプログラムが並列に動作しているように振る舞わせることができる。
また、仮想記憶(仮想メモリ)の管理システムが、物理メモリ上の領域とストレージ上の領域を入れ替える「スワップ」あるいは「ページング」を行うタイミングや対象を決定する仕組みを「中期スケジューラ」と呼ぶことがある。スワップが頻発すると性能が極端に低下するため、実行中の各プロセスの優先度を見極めて、なるべくスワップが発生しないよう制御する必要がある。