オンラインインタビューの準備中にこの質問を見ました。
非プリエンプティブカーネルが与えられると、どのようなプロセスがパフォーマンスの面でより困難になり、その理由は何ですか?
I\Oの制限
CPU制限
知っている:
CPU集約的なプロセスは長いクォンタムを持ちますが、優先順位は低く、I / O集約的なプロセスは短いクォンタムを持ちますが、優先順位はより高くなります。
最初は、ディスクからの読み取りが完了するのを待たなければならなかったので(準備ができたときにOSに目覚めさせるように要求するのではなく)、I \ Oバインディングはより多くの影響を受けると思いました。非プリエンプティブカーネルプロセスは、独自の判断でタスクを完了し、他のプロセスにタスクを続行させることができます。
ここで欠けているコンテンツの洞察を提供するための詳細な答えを探しています。
答え1
「CPU集約的なプロセスは長いクォンタムを持っていますが、優先順位は低いのに対し、I/O集約的なプロセスは高い優先順位の短いクォンタムを得る」というのは事実ではありません。
それなら理想的でしょう。しかし、一般に、各プロセスはほぼ同じ時間分割を有する。 I/O集約的なプロセスは、CPUを迅速に放棄します。
さまざまな優先順位を設定してください動的にそれ以外の場合は難しいことであり、カーネルがプリエンプションできないため、この優先順位を達成する方法は不明です。