1.核心支援執行緒kst
核心級執行緒(kernel-level threads, klt 也有叫做核心支援的執行緒)
執行緒管理的所有工作(建立和撤銷)由作業系統核心完成
作業系統核心提供乙個應用程式設計介面api,供開發者使用klt
純核心級執行緒特點:
程序中的乙個執行緒被阻塞,核心能排程同一程序的其他執行緒(就緒態)占有處理器執行。
多處理器環境中,核心能同時排程同一程序的多執行緒,將這些執行緒對映到不同的處理器核心上,提高程序的執行效率。
應用程式執行緒在使用者態執行,執行緒排程和管理在核心實現。執行緒排程時,控制權從乙個執行緒改變到另一線程,需要模式切換,系統開銷較大。
2.使用者級執行緒ult純使用者級執行緒的特點:
執行緒切換不需要核心模式,能節省模式切換開銷和核心資源。
允許程序按照特定的需要選擇不同的排程演算法來排程執行緒。排程演算法需要自己實現。
由於其不需要核心進行支援,所以可以跨os執行。
不能利用多核處理器有點,os排程程序,每個程序僅有乙個ult能執行
乙個ult阻塞,將導致整個程序的阻塞。
3.組合方式
可以看出,使用者級執行緒和核心級執行緒都有各自的優點和缺點,在應用上主要表現為:
組合策略:
由作業系統核心支援核心級多執行緒,由作業系統的程式庫來支援使用者級多執行緒,執行緒建立完全在使用者空間建立,現成的排程也在應用程式內部進行,然後把使用者級多執行緒對映到(或者說是繫結到)一些核心級多執行緒。程式設計人員可以針對不同的應用特點調節核心級執行緒的數目來達到物理並行性和邏輯並行性的最佳方案。
組合方式下,分為三種不同的模型:
多對一模型,將使用者執行緒對映到乙個核心控制線程中。
一對一模型,將每個使用者級執行緒對映到乙個核心支援執行緒。
多對多模型,將許多使用者執行緒對映到同樣數量或者更少數量的核心執行緒上。
執行緒的實現
1.核心支援執行緒的實現
(1)系統在建立乙個新程序時,便為它分配乙個任務資料區ptda,其中包含若干個執行緒控制塊tcb空間,每乙個tcb中儲存的資料雖然與使用者級執行緒tcb的資訊相同,現在這些資訊都儲存在核心空間中。
(2)每當程序要建立乙個執行緒時,變為新執行緒分配乙個tcb,將有關資訊填入該tcb中,並為之分配必要的資源。
(3)核心支援執行緒的排程和切換與程序的排程和切換十分相似,也分為搶占式和非搶占式方式兩種。
2.使用者級執行緒的實現
使用者級執行緒是在使用者空間實現的。所有使用者級執行緒都具有相同的結構,他們都執行在乙個中間系統上。當前有兩種方式實現中間系統:
(1)執行時系統
實質上是用於管理和控制線程的函式(過程)的集合,其中包括用於建立和插銷執行緒的函式、執行緒同步和通訊的函式,以及實現執行緒排程的函式。因為這些函式,才使使用者級執行緒和核心無關。
執行時系統中所有函式都駐留在使用者空間,並作為使用者級執行緒與核心之間的介面。
執行時系統的特點:
使用者級執行緒切換時不用進入核心態。
使用者級執行緒不能利用系統呼叫。
(2)核心控制線程
此類執行緒又稱為輕型程序lwp。每乙個程序都可以擁有多個lwp,同使用者級執行緒一樣,lwp也有自己的資料結構。
lwp可以通過系統呼叫獲得核心提供的服務,因此當乙個使用者級執行緒執行時,只須將它連線到乙個lwp上,就具有了核心支援執行緒的所有屬性。(這種方式就是組合方式。)
乙個系統中使用者級執行緒數量可能很大,為節省系統開銷,將這些lwp做成乙個緩衝池,即執行緒池。
當使用者級執行緒需要與核心進行通訊時,每個要通訊的使用者級執行緒都必須借助乙個lwp。
執行緒的建立和終止
執行緒也具有生命期。由建立而產生,由排程而執行,由終止而消亡。
1.執行緒的建立2.執行緒的終止
當執行緒完成自己的任務後,或是執行緒在執行**現異常情況而被強行終止是,由終止執行緒通過呼叫響應函式(或系統呼叫)對他執行終止操作。(有一部分執行緒,主要是系統執行緒,一旦被建立就一直執行下去而不會終止)
執行緒被終止後並不立即釋放它所占有的資源,只有當程序中的其他執行緒執行了分離函式後,被終止的執行緒才與資源分離,此時資源才能被其他執行緒使用。
作業系統 執行緒的實現
2.使用者級執行緒ult user level threads 3.組合方式優點 缺點優點 缺點將以上兩種執行緒的方式結合,形成組合方式執行緒.組合方式執行緒支援多個核心支援執行緒和使用者級執行緒的建立,排程和管理.結合上述兩種執行緒的優點,形成了三種不同的模型 1.多對一模型 將使用者執行緒對映到...
作業系統複習 作業系統的特徵
併發 指兩個或多個事件在同一時間間隔內發生。這些事件巨集觀上是同時發生的,但微觀上是交替發生的。並行 指兩個或多個事件在同一時刻同時發生。作業系統的併發性指計算機系統中同時存在著多個執行著的程式。乙個單核處理機 cpu 同一時刻只能執行乙個程式,因此作業系統會負責協調多個程式交替執行 這些程式微觀上...
作業系統複習
l 計算機系統把資源管理和控制程式執行的功能集中組成一種軟體,稱為 作業系統 是系統軟體 l作業系統的兩個設計目標 1 使計算機系統使用方便 2 使計算機系統能高效地工作 擴充硬體的功能,使硬體的功能發揮得更好 使使用者合理共享資源,防止相互干擾 以檔案形式管理軟體資源,保證資訊的安全和快速訪問。l...