1. 程式人生 > >使用者級執行緒,核心級執行緒和硬體執行緒

使用者級執行緒,核心級執行緒和硬體執行緒

在閱讀<<作業系統概念>>一書中多次提到使用者執行緒、核心執行緒、以及硬體執行緒、軟體執行緒、

我們來解釋這些概念的不同。

 

1.使用者級執行緒在使用者層通過執行緒庫來實現。對它的建立,撤銷和切換都不利用系統的呼叫。

2.核心級執行緒由作業系統直接支援,即無論是在使用者程序中的執行緒,還是系統程序中的執行緒

,它們的建立,撤銷和切換都由核心實現。

3.硬體執行緒就是執行緒在硬體執行資源上的表現形式。單個執行緒一般都包括上述三個層次的表現:

使用者級執行緒通過作業系統被作為核心級執行緒實現,再通過硬體相應的介面作為硬體執行緒來執行。

4. 執行緒可指代硬體執行緒或軟體執行緒。軟體執行緒是指處理器執行的指令流,而硬體執行緒是指執行

某個軟體執行緒的硬體資源。

 

對使用者級執行緒來講,核心也並不知道它的存在,所以所有對使用者級執行緒的管理和排程都是在使用者空間來進行的。使用者級執行緒的切換通常是發生在一個應用程序的諸執行緒之間,這是,不僅無需通過中斷進入作業系統的核心,而且切換的規程也遠比程序排程和切換的規則來得簡單。例如,當一個執行緒封鎖後會自動切換到下一個具有相同功能的執行緒。因此,使用者級執行緒的切換速度特別快。但是使用者執行緒也有它自身的缺點,例如,如果核心是單執行緒的,那麼任何一個使用者級執行緒若執行了阻塞系統呼叫就會導致該執行緒所屬的程序阻塞。此時如果採用的是核心級執行緒,則排程室以執行緒為單位。當一個執行緒呼叫一個系統呼叫時,核心把系統呼叫只看做是該執行緒的行為,因而封鎖該執行緒,於是可以再排程該程序中的其他執行緒執行。