2010-04-08 141 views
1

我有以下有關進程線程調度的查詢。 a)如果我的進程A有3個線程,那麼可以在SMP m/c中的不同CPU上同時調度這些線程,否則它們將在同一個cpu上被賦予時間片。進程線程調度

b)假設我有兩個進程A和三個線程,進程B有兩個線程(所有線程的優先級相同),那麼分配給每個線程(時間片)的CPU時間取決於進程中的線程數或不? 糾正我,如果我錯了是這樣,CPU時間分配給進程,然後在它的線程之間共享,即給進程A線程的時間片小於進程B線程。

回答

3

這取決於你的操作系統和線程的實現。 POSIX線程定義了一個接口,用於定義如何調度線程:每個線程是平均調度還是每個進程調度平均。並非所有調度類型在所有平臺上都受支持。

在Linux上,使用NPTL,默認行爲是平等調度所有線程,因此有10個線程的過程可能會得到10倍多的時間,過程與1個線程,如果所有十個線程CPU約束。