使用者級執行緒和核心級執行緒具有的優缺點

2021-10-07 10:40:53 字數 748 閱讀 5619

使用者級執行緒

使用者空間管理執行緒,每個程序需要有專用的執行緒表,用來跟蹤程序中的執行緒,這個表和核心中的程序表類似,僅僅記錄各個執行緒的屬性,每個執行緒的程式計數器,堆疊,暫存器,狀態等。執行緒表由執行時系統管理。

優點1:

堆疊指標和計數器被切換,新的程序就自動投入執行。

如果機器有一條儲存所有暫存器的指令和一條裝入全部暫存器的指令,程序切換就會自在幾條指令內完成。這樣的執行緒切換會比至少陷入核心更快乙個數量級;

優點2:允許每個程序擁有自己的排程演算法;

優點3:使用者執行緒具有良好的擴充套件性;(因為核心執行緒中需要一些固定的**空間和堆疊空間,如果核心執行緒非常大,就會出現問題)。

優點4:可以在現有的作業系統上;

缺點:1:阻塞呼叫不好實現;

解釋:乙個執行緒讀取鍵盤,該執行緒程序系統呼叫是不被接受的,這樣會停止所有的執行緒,使用執行緒的主要目標,首先要允許每個執行緒進行阻塞呼叫,還要避免被阻塞的執行緒影響其他的執行緒,

2:乙個執行緒開始執行,該程序中的其他執行緒就不能執行,除非第乙個執行緒放棄cpu,在乙個程序內部沒有時鐘中斷,

2.核心中線程

每個程序沒有執行緒邊表,核心中有記錄系統中所有執行緒的執行緒表。

優點1:核心執行緒不需要任何新的非阻塞的系統呼叫,

優點2:程序中線程引起的頁面故障好檢查。

缺點:系統呼叫花銷巨大。

實際應用模式:二者結合使用,

核心識別核心級執行緒,對其進行排程,一些核心級執行緒會被多個使用者級執行緒多路復用。

使用者級執行緒和核心級執行緒

根據在使用者空間還是在核心實現多執行緒機制,執行緒又被分為使用者級執行緒 user level thread 和核心級執行緒 kernel level thread 有關執行緒的所有管理工作都有在使用者級實現的執行緒庫來支援。使用者級執行緒庫是用於使用者級執行緒管理的例程包,支援執行緒的建立 終止,...

使用者級執行緒和核心級執行緒

執行緒有3種實現模型 使用者級或應用程式級執行緒 核心級執行緒 使用者級和核心級混合執行緒 圖6 1顯示了3種執行緒實現模型。圖6 1 a 顯示了使用者級執行緒,圖6 1 b 顯示了核心級執行緒,圖6 1 c 則顯示了使用者執行緒和核心執行緒的混合。這些實現之間的較大的區別之一就是它們的模式以及要指...

使用者級執行緒和核心級執行緒

6.1.1 使用者級執行緒和核心級執行緒 執行緒有3種實現模型 使用者級或應用程式級執行緒 核心級執行緒 使用者級和核心級混合執行緒 圖6 1顯示了3種執行緒實現模型。圖6 1 a 顯示了使用者級執行緒,圖6 1 b 顯示了核心級執行緒,圖6 1 c 則顯示了使用者執行緒和核心執行緒的混合。這些實現...