關於使用者級執行緒和核心級執行緒的蒐集和理解

2021-06-18 12:48:23 字數 1516 閱讀 5797

1.核心級執行緒:

(1)執行緒的建立、撤銷和切換等,都需要核心直接實現,即核心了解每乙個作為可排程實體的執行緒。

(2)這些執行緒可以在全系統內進行資源的競爭。

(3)核心空間內為每乙個核心支援執行緒設定了乙個執行緒控制塊(tcb),核心根據該控制塊,感知執行緒的存在,並進行控制。

在一定程度上類似於程序,只是建立、排程的開銷要比程序小。有的統計是1:10

2.使用者級執行緒:

(1)使用者級執行緒僅存在於使用者空間。——>對比核心(3)

(2)核心並不能看到使用者執行緒。——>重要的區別

(3)核心資源的分配仍然是按照程序進行分配的;各個使用者執行緒只能在程序內進行資源競爭。

posix執行緒排程是乙個混合模型,很靈活,足以在標準的特定實現中支援使用者級和核心級的執行緒。模型中包括兩級排程--執行緒及和核心實體級。執行緒級與使用者級執行緒類似,核心實體由核心排程。由執行緒庫來決定它需要多少核心實體,以及他們是如何對映的。

posix 引入了乙個執行緒排程競爭範圍(thread-scheduling contention scope)的概念,這個. 概念賦予了程式設計師一些控制權,使它們可以控制怎樣將核心實體對映為執行緒。執行緒的contentionscope屬性可是pthread_scope_process,也可以是pthread_scope_system。帶有pthread_scope_process屬性的執行緒與它所在的程序中的其他執行緒競爭處理器資源。帶有pthread_scope_system屬性的執行緒很像核心級執行緒,他們在全系統的範圍內競爭處理器資源。posix的一種對映方式將pthread_scope_system執行緒和核心實體之間繫結起來。

核心級執行緒是作業系統核心實現、管理和排程的一種執行緒。由於有作業系統管理,所以作業系統是知道執行緒的存在,並為其安排時間片,管理與其有關的核心物件。因為核心級執行緒是由核心來管理,所以每次執行緒建立、切換都要執行乙個模式切換例程,所以核心級執行緒效率比較低,而且核心級執行緒的排程是由作業系統的設計者來決定的,所以缺乏靈活性。但是核心級執行緒有乙個有點就是當乙個程序的某個執行緒因為乙個系統呼叫或者缺頁中斷而阻塞時,不會導致該程序的所有執行緒阻塞。

核心級執行緒的優點: 較好的並行能力,乙個程序內的執行緒阻塞不會影響該程序內的其他執行緒

核心級執行緒的缺點: 執行緒管理的開銷過大,缺乏靈活性。

使用者級執行緒是通過執行在使用者態的執行時庫來管理的,其優點是,執行緒的一切(包括排程、建立)都可以完全由使用者自己決定,所以具有較高的靈活性。而且由於是在使用者態上進行管理,所以就省去了核心管理的開銷,所以具有高效率。 但是使用者級執行緒有乙個致命的缺點:乙個程序內的某乙個執行緒阻塞將導致整個程序內的所有執行緒全部阻塞。而且由於使用者級執行緒沒有時間片概念,所以每個執行緒必須執行一段時間後將cpu讓個其他的執行緒使用,否則,該執行緒將獨佔cpu。

使用者級執行緒的優點: 有較高的靈活性和高效率

使用者級執行緒的缺點: 較差併發能力

由於兩種執行緒通常都不能滿足使用者的需要,所以一些研究者開始研究新型的執行緒系統,比較好的執行緒系統是2023年幾個國外的研究者提出的 排程程式啟用機制的執行緒實現方法。

這種方法是介於核心級執行緒和使用者級執行緒之間的一種執行緒,同時具有兩種執行緒的優點。

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

根據在使用者空間還是在核心實現多執行緒機制,執行緒又被分為使用者級執行緒 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 則顯示了使用者執行緒和核心執行緒的混合。這些實現...