2012-08-24 12 views
6

WindowsとLinuxのプロセスとスレッドに与えられる時間の量子に関する質問があります。スレッドあたりのプロセスあたりの時間の量子数

私は、オペレーティングシステムが一般にスレッドごとに固定量の時間量を与えることを知っています。 (前景や背景のスレッドによって時間の量子の変化がわかりますが、プロセスの優先度によっても変化することがあります)

プロセスあたりの固定時間量子はありますか?たとえば。 OSがプロセス当たり36の時間量子を与え、プロセスに2つのスレッドがある場合、それぞれが18の量子を得る。スレッド数が3になると、それぞれが12になります。

しかし、プロセスあたりの固定クォンタムが存在せず、OSはスレッドごとにクォンタムを与えます(親プロセスに依存しません)。私のプロセスは、複数のスレッドを生成することでより効率的です(私のコードには2つのミューテックス/セマフォーがないと仮定します)。

私は両方のOS(WindowsとLinux)で動作するアプリケーションを持っています。ですから、私は一般的な意味でそれを求めています。

ありがとう

+0

この「ひどい」用語はどこから来たのですか? I/O、別のスレッドまたは他のシステムコールでブロックされる前に、すべてのスレッドの99.99%がOSタイマースケジューリング間隔に近づくものに対して決して実行されません。私は「量子」は分かれないと考えられていたと思いましたか?誤った印象を与える愚かな言葉! –

+0

あなたはこれをチェックしたいと思うかもしれません:http://support.microsoft.com/kb/259025 –

+0

スミス - M $、私should'a推測... –

答えて

1

Linuxのスケジューリングの観点から、スレッドとプロセスは同等です。したがって、プロセスが2つのスレッドを生成する場合、それぞれが36の量子を得なければなりません。私は確かめるために私よりも信頼性の高い人からこれを聞きたいと思いますが。

+1

Windowsも。スケジューラはスレッドであり、プロセスではありません。 –

+0

@ハリー:その場合、プロセスは複数のスレッドを持つことで時間を奪うことができます。この声明は正しいのですか? –

+0

はい、それを「盗む」と呼んでも少し奇妙なようです。 :-) –

関連する問題