ラウンドロビンのスケジュール設定:プロセスを複数回リストすることを許可しますか?

cs.stackexchange https://cs.stackexchange.com/questions/226

質問

ラウンドロビン スケジューラでは、プロセスをプロセス リストに複数回追加することが、より高い優先順位を与える安価な方法です。

これがどれほど現実的なアプローチになるのか疑問です。プロセスに長いタイムスライスを与えるなど、他の手法と比べてどのような利点がありますか (利点:切り替え時間の短縮)、または優先度の高いプロセスの別のリストを維持します。特に、プロセスを複数回リストすることは公平性と反応性にどのような影響を与えるのでしょうか?

(Andrew Tanenbaum の演習 2.16 より) オペレーティングシステム:設計と実装 第1版)

役に立ちましたか?

解決

このアプローチの利点は、ラウンド ロビン スケジューリングが非常に効率的であるため、サイクルを盗むようなより複雑なスケジューラに依存する必要がないことです。優先度の高いプロセスに長いタイム スライスを導入すると、他のスレッドの応答性が低下し、OS が割り込みなどに対処するのが難しくなります。プロセスの個別のリストを維持するには、より複雑なスケジューラが必要となり、サイクルの点でコストが高くなります。ただし、公平性に問題があるとは思えません。問題は、粒度がかなり粗いことだと思います。プロセスは、基本タイムスライスの整数倍のみを持つことができます。

1 つのマイナス点は、プロセスが発生するたびにキューから削除する必要があるため、プロセスの削除にコストがかかることです。ただし、これは遅延して実行できる可能性があります。

他のヒント

タスクをラウンドロビンのスケジューリングキューに複数回追加すると、エントリが合理的に分配されたままであることを確認するという問題が明らかになります。これは、システムが動的なタスクの作成や削除を許可しないが、一般的には不可能であるかどうかを簡単に確保することができます。

キューからアイテムを削除するより複雑なプロセスに加えて、キュー内のプロセスエントリを最終的に歪めると、複数の優先レベルで公平にするのが簡単な不均衡な動作が生じます。

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top