特點:
整個執行緒包放入使用者空間中,核心對執行緒包一無所知。從核心角度考慮,就是按正常的方式管理,即單執行緒程序
優點:
1、使用者級執行緒包可以在不支援執行緒的作業系統上實現
2、執行緒切換比核心快更多
3、允許每個程序有自己定製的排程演算法
缺點:
執行緒發生i/o或頁面故障引起的阻塞時,如果呼叫阻塞系統呼叫則核心由於不知道有多執行緒的存在,而會阻塞整個程序從而阻塞所有執行緒
乙個單獨的程序內部,沒有時鐘中斷,所以不可能用輪轉排程的方式排程執行緒
特點:
當某個執行緒希望建立乙個新執行緒或撤銷乙個已有執行緒時,它進行乙個系統呼叫,這個系統呼叫通過對執行緒的更新完成執行緒建立或撤銷工作
優點:
1、所有能夠阻塞執行緒的呼叫都以系統呼叫的形式實現
2、如果某個執行緒引起了頁面故障,核心可以很方便地檢查該程序是否有任何其他可執行的執行緒
結合以上兩種實現的優點
第一種方法:使用核心級執行緒,然後將使用者級執行緒與某些或全部核心執行緒多路復用,如下圖
核心只識別核心級執行緒,並對其進行排程,一些核心級執行緒會被多個使用者級多路復用,可以建立、撤銷和排程這些使用者級執行緒,每個核心級執行緒有乙個可以輪流使用使用者級執行緒集合
使用者空間實現系統呼叫的兩種方式
一種是間接的系統呼叫 syscall sys 其中 sys 是系統呼叫號 另一種是通過api函式,api函式一般會自動呼叫核心空間中同名的系統呼叫函式。舉例如下 include include include include int main void 編譯 root google linux gc...
實現執行緒的兩種方式
起初,作業系統中只有程序的概念,人們那時候對併發沒有太高的要求。後來有些人想提高程式的井發,這才有了執行緒這一新生事物。任何新生事物在誕生之初都會被小心謹慎地對待,人們提出執行緒的需求時,作業系統也抱著 圍觀 的心態不敢輕舉妄動,只能坐看其發展,真正待需求明朗時才會在作業系統一級來實現。想想也是,如...
執行緒實現的兩種方式
1.程序和執行緒的定義 1.1 程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的乙個獨立單位.1.2 執行緒是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資...