スケジューリング(Scheduling)とは、複数のプロセスやスレッドが存在する環境において、OS内の「スケジューラ」というコンポーネントが「どのプロセスに」「いつ」「どれだけの時間」CPUを使用させるかを決定する全体的な仕組みとアルゴリズムのことです。システム内には、ユーザーが直接操作している画面描画の処理から、裏で動作しているウイルススキャンのような処理まで、重要度や特性が異なる多様なタスクが混在しています。スケジューリングの目的は、限られたCPU資源を最適に配分し、「システム全体の処理効率(スループット)を最大化する」「ユーザーの操作に対する応答時間(レスポンスタイム)を最小化する」「特定のプロセスだけが待たされ続ける不公平をなくす」といった、相反する要求をバランスよく満たすことにあります。