2017-02-05 5 views
-2

一部のテキストブックには、「プロセススケジューリング」という名前の章があります。この章では、CPUスケジューリングについて説明します。多くの記事ではスレッドスケジューリングを使用してCPUスケジューリングを参照しています。 私はプロセスとスレッドの概念が異なることを知っています。私は、CPUスケジューラが実際に動作するスレッドやプロセスを混乱させていますか?CPUスケジューリングがLinuxのプロセスやスレッドに基づいているかどうか?

答えて

0

部分的に、スレッドが実行する時間の基本単位の量である量子に基づいています。また、私は、複数のスレッドがCPU上で時間のために競合するように優先レベルがあると信じています。彼らは同じ優先度の他のスレッドと並んで待機し、量子力がなくなるまで実行します。その後、彼らは背中に送られます。それは正確な答えではなく、高度な要約です。

また、私は窓によく似ていますが、原理的には同じだと思います。このプロセスは実行可能コードではなく、ストレージの単位です。だから、それは糸であろう。私が読んだLinuxは、Windowsよりも複雑なスケジューリングアルゴリズムを持っていますが(トレードオフの可能性があります)、同じプロセスのスレッドがCPU時間を競うことは完全に可能です。違いは、スレッド共有プロセスが同じアドレス空間を使用するため、必要なコンテキスト切り替えがないことです。

これは、物理的なコア数(インテルのスレッド)より多くのスレッドを使用した場合のリターンの減少を説明します。プロセスのスレッドは、同時に実行する機会が少なくなります。代わりに彼らは競争する。したがって、4000スレッドの場合は、1つのスレッドが実行されている時間が1/4000短縮されていることを意味します。しかし、4000スレッドを使用して単一の同期問題を処理する場合、共有ストレージを使用して現在の状態をロードすると、4000スレッドの実行確率が高くなるため、CPU時間の割合を大きくすることでパフォーマンスが向上します。高い。

+0

o.s.おそらく、このmannorで使われることは意図されておらず、プロセスが他のスレッドを希釈するのを防ぐかもしれません。また、実行を終了する割込みおよびスレッドは、おそらく現在のスレッドの量子限界に満たないスケジューリングアルゴリズムを呼び出す。いくつかのo.s.それはその量子を転がすようになる。 –

関連する問題