8

Windows と Linux のプロセスとスレッドに与えられるタイム クォンタムに関する質問があります。

一般に、オペレーティングシステムはスレッドごとに一定量の時間クォンタムを与えることを知っています。(フォアグラウンド スレッドまたはバックグラウンド スレッドによってタイム クォンタムが変化することはわかっています。プロセスの優先度によっても変化する可能性があります。)

プロセスごとに一定のタイム クォンタムはありますか? たとえば。OS がプロセスごとに 36 時間クォンタムを与え、プロセスに 2 つのスレッドがある場合、それぞれが 18 クォンタムを取得します。スレッド数が 3 になると、それぞれが 12 になります。

ただし、プロセスごとの固定クォンタムが存在せず、OS がスレッドごとの固定クォンタムを提供する場合 (親プロセスには依存しません)、複数のスレッドを生成することでプロセスをより効率的にすることができます。私のコードのミューテックス/セマフォ。)

OS (Windows と Linux) の両方で動作するアプリケーションがあります。ですから、一般的な意味で質問しています。

ありがとう

4

2 に答える 2

1

非常に興味深い質問です:)

正確な詳細はわかりませんが、以下のリンクから、最新の OS には推定ベースのスレッド スケジューリング方式があることがわかります。

http://technet.microsoft.com/en-us/magazine/2007.02.vistakernel.aspx

于 2012-08-24T20:56:33.620 に答える
1

Linux では、スケジューリングの観点から、スレッドとプロセスは同等です。したがって、プロセスが 2 つのスレッドを生成する場合、それぞれが 36 クォンタムを取得する必要があります。確認のために、私よりも信頼できる人からこれを聞きたいのですが.

于 2012-08-24T20:54:19.783 に答える