CPUバーストまたはI/Oバースト

CPUバーストまたはI/Oバースト

現在実行中のプロセスが I/O バーストに直面した場合、次の利用可能なプロセスが CPU バーストを取得しますか、それともプロセッサは最初のプロセスの I/O バーストが終了するまで待機して最初のプロセスの実行を続行しますか。

また、アルゴリズムがプリエンプティブか非プリエンプティブかによっても影響を受けるのでしょうか?

ありがとう!

答え1

簡単に言えば、はい。CPU にバインドされたタスクが I/O 制約を受けると、OS は、より多くの CPU 作業を実行できる準備ができるまでタスクを再スケジュールします。つまり、CPU で作業を行う他のプロセスが、代わりに CPU の時間を取得することになります。

もう少し長い回答をすると、これらの特定の用語に出会ったのは今回が初めてでした。この用語について言及しているページはほんの数ページしか見つかりませんでした。物理的な CPU やオペレーティング システムの機能ではなく、最適化戦略のようです。これは、プロセス間で共有できるオペレーティング システムや CPU の「バースト フェーズ」ではなく、プロセスがいずれかのドメインで作業を行う必要があるときに「バースト」するだけです。ワークフローを最適化して、どちらかのドメインを他方よりも多く実行し、もう一方のドメインの作業を蓄積することで、これらの「バースト」作業をより効率的にすることができます。

したがって、オペレーティング システムがプリエンプティブであるか非プリエンプティブであるかは関係ありません。オペレーティング システムは、プロセスが待機状態にあるか、または実行準備ができているかを認識し、それに応じてスケジュールを設定します。プロセスが計算を実行中に突然ファイルを読み取ろうとすると、プロセスは停止し、データが利用可能になったときに再スケジュールされます。

これらの「バースト」が関係する唯一の理由は、オペレーティング システムがスケジュールしたタイム スライスを効果的に使用していることを確認するためです。CPU にバインドされたタスクに多くの I/O が散在している場合は、それらの I/O 操作を待機することで停止し、スケジュールされた時間の一部を失う可能性があります。I/O を「バースト」にまとめると、プロセスは CPU 上の時間をより有効に活用し、完全なタイム スライスを取得できます。

関連情報