OS でのプロセス スケジューリング: 長期、中期、短期スケジューラー

⚡ スマートサマリー

プロセススケジューリングは、オペレーティングシステムの機能の一つで、準備完了、待機中、実行中の各状態にあるプロセスを管理するものです。長期、中期、短期のスケジューラを用いて、各プロセスにCPU時間を割り当て、CPUを常に稼働させ、応答時間を短縮します。

  • 🗓️ 定義: プロセススケジューリングは、CPUを常に稼働状態に保つために、準備完了、待機中、実行中の各状態のプロセスを管理します。
  • 📥 キュー: ジョブキュー、準備完了キュー、およびデバイスキューは、プロセスを実行状態に基づいて整理します。
  • 🔀 2状態モデル: 最も単純なレベルでは、プロセスは実行中か、実行されていないかのどちらかである。
  • 🧑💼 3つのスケジューラ: 長期、中期、短期スケジューラは、どのプロセスをいつ実行するかを制御します。
  • 短期: CPUスケジューラは最も高速で、すぐに実行可能なプロセスを選択します。
  • 🔁 コンテキストスイッチ: 基板上にCPUの状態を保存および復元することで、マルチタスクが可能になります。

OSにおけるプロセススケジューリング

プロセススケジューリングとは何ですか?

プロセススケジューリング これは、準備完了、待機中、実行中など、さまざまな状態のプロセスをスケジュールするOSタスクです。

プロセススケジューリングにより、OSは各プロセスにCPU実行時間を割り当てることができます。プロセススケジューリングシステムを使用するもう一つの重要な理由は、CPUを常に稼働状態に保つことができる点です。これにより、プログラムの応答時間を最小限に抑えることができます。

プロセススケジューリングキュー

プロセススケジューリングキューを使用すると、各プロセス状態とプロセス制御ブロック(PCB)ごとに個別のキューを維持できます。同じ実行状態にあるすべてのプロセスは同じキューに配置されます。そのため、プロセスの状態が変更されるたびに、そのPCBを既存のキューから切り離し、新しい状態のキューに移動する必要があります。

オペレーティング システム キューには次の 3 つの種類があります。

  1. ジョブキュー – すべてのプロセスをシステムに保存するのに役立ちます。
  2. レディキュー – このタイプのキューは、メイン メモリに常駐するすべてのプロセスを設定し、実行の準備ができて待機するのに役立ちます。
  3. デバイスキュー – I/O デバイスがないためにブロックされたプロセスです。
プロセススケジューリングキュー
プロセススケジューリングキュー

上記の図において:

  • 長方形は待ち行列を表します。
  • 円は資源を表します。
  • 矢印はプロセスの流れを示します。
  1. 新しいプロセスはすべて、まず準備完了キューに入れられます。そして、実行のために処理されるまで、準備完了キューで待機します。ここでは、新しいプロセスは準備完了キューに入れられ、実行のために選択されるか、ディスパッチされるまで待機します。
  2. プロセスの一つにCPUが割り当てられ、実行中です。
  3. プロセスはI/O要求を発行する必要があります。
  4. そして、それはI/Oキューに配置されるべきです。
  5. このプロセスは新しいサブプロセスを作成する必要があります。
  6. プロセスは終了を待っている必要があります。
  7. 割り込みが発生した結果、CPUから強制的に削除されるべきである。割り込み処理が完了したら、準備完了キューに戻されるべきである。

XNUMX 状態プロセス モデル

XNUMX 状態プロセス モデルは次のとおりです。

  • 実行状態
  • 非実行状態

Running:

Operaティンシステム、新しいプロセスが構築されるたびに、それは実行されているはずのシステムに入力されます。

走っていない

実行されていないプロセスはキューに格納され、実行の順番を待っています。キュー内の各エントリは、特定のプロセスへのポインタです。

スケジュールの目標

プロセススケジューリングの重要な目的は以下のとおりです。

  • 許容可能な応答時間内で対話型ユーザーの数を最大化します。
  • 応答と使用率のバランスを実現します。
  • 無期限の延期を避け、優先順位を徹底してください。
  • また、主要なリソースを保持するプロセスへの参照も提供する必要があります。

プロセス スケジューラの種類

スケジューラは、プロセスのスケジューリングを処理できるシステム ソフトウェアの一種です。

プロセス スケジューラには主に XNUMX つのタイプがあります。

  1. 長期スケジューラー
  2. 短期スケジューラー
  3. 中期スケジューラ

長期スケジューラー

長期スケジューラは、 ジョブスケジューラこのスケジューラはプログラムを制御し、キューからプロセスを選択してメモリにロードし、実行します。また、マルチプログラミングの度合いも制御します。

しかし、このタイプのスケジューラの主な目的は、プロセッサジョブやI/Oジョブなど、マルチプログラミングを管理できるようなバランスの取れたジョブの組み合わせを提供することです。

中期スケジューラ

中期的なスケジュール設定は重要な部分です swappingこれにより、スワップアウトされたプロセスを処理できます。このスケジューラでは、実行中のプロセスが中断され、I/O 要求が発生する場合があります。

実行中のプロセスは、I/O要求を行うと一時停止状態になることがあります。一時停止状態のプロセスは、完了に向けて一切の処理を進めることができません。プロセスをメモリから削除し、他のプロセスのための領域を確保するには、一時停止状態のプロセスを二次記憶装置に移動する必要があります。

短期スケジューラー

短期スケジューリングは、 CPUスケジューラこのスケジューラの主な目的は、設定された基準に従ってシステムのパフォーマンスを向上させることです。これにより、実行準備が整ったプロセス群から適切なプロセスを選択し、そのうちの1つにCPUを割り当てることができます。ディスパッチャは、短期スケジューラによって選択されたプロセスにCPUの制御権を与えます。

スケジューラの違い

長期 vs. 短期 vs. 中期:

長期的 短期 中期
長期計画はジョブスケジューラとも呼ばれます。 短期スケジューラは、CPUスケジューラとも呼ばれます。 中期スワップとも呼ばれるping スケジューラー。
タイムシェアリング システムでは、それが存在しないか、最小限に抑えられます。 タイムシェアリングの順序では重要ではありません。 このスケジューラはタイムシェアリング システムの要素です。
短期スケジューラに比べて速度が遅くなります。 短期および中期スケジューラと比較して速度が最も速くなります。 中程度の速度を提供します。
ロードされたプロセスを選択し、メモリにプールし直すことができます。 実行準備状態にあるプロセスのみを選択します。 これは、処理をメモリに戻すのに役立ちます。
完全な制御機能を提供します。 制御性が低下する。 マルチプログラミングのレベルを低下させる。

コンテキストスイッチとは何ですか?

これは、CPUの状態を基板上に保存・復元することで、後で同じ時点からプロセス実行を再開できるようにする手法です。コンテキストスイッチング方式は、マルチタスクOSにとって重要です。

よくあるご質問

スケジューラは、ポリシーに基づいて次にどのプロセスを実行するかを決定します。ディスパッチャは、選択されたプロセスに実際にCPUの制御権を与え、コンテキストスイッチとジャンプを実行するモジュールです。ping プログラム内の正しい場所に移動してください。

マルチプログラミングの度合いとは、メインメモリに同時に保持されるプロセスの数を指します。長期スケジューラは、システムのパフォーマンスを効率的にするために、受け入れるプロセスの数を決定し、CPUとI/Oの使用量をバランスさせることで、マルチプログラミングを制御します。

プロセス制御ブロックは、OSがプロセスの状態、プログラムカウンタ、レジスタ、メモリ制限など、プロセスに関するすべての情報を格納するために使用するデータ構造です。コンテキストスイッチ中にプロセスを保存および復元するために不可欠です。

AIはワークロードのパターンを学習し、どのプロセスを実行するか、CPU時間をどのように割り当てるかを決定できます。固定ルールではなく、リアルタイムでスケジューリングを調整することで、特にクラウドシステムやマルチコアシステムにおいて、スループット、応答時間、エネルギー効率を向上させます。

はい。AIモデルは、過去のCPUバーストとI/Oパターンを分析することで、プロセスの実行時間や、CPUバウンドかI/Oバウンドかを推定できます。これらの予測は、スケジューラがプロセスの優先順位付けを行い、待ち時間を短縮するのに役立ちます。