【作業系統】—執行緒概念和多執行緒模型
本章節學習內容如下
一、什么是執行緒,為什么要引入執行緒


執行緒是一個基本的CPU執行單元,也是程式執行流的最小單位

二、引入執行緒機制后,有什么變化?

三、執行緒的屬性
線城是處理機調度的單位
多CPU計算機中,各個執行緒可占用不同的CPU
每個執行緒都有一個執行緒ID 執行緒控制塊
執行緒也有就緒、阻塞、運行三種基本狀態
執行緒幾乎不擁有系統資源
同一行程的不同執行緒間共享行程的資源
由于共享記憶體地址空間 同一行程的執行緒間通信甚至無需干預
同一行程間的執行緒切換 不會引起行程切換
不同行程中的執行緒切換 會引起行程切換
切換同行程內的執行緒 系統開銷很小
切換行程 系統開銷很大
四、執行緒的實作方式
在同時支持用戶級執行緒的內核級執行緒的系統中,可采用二者組合的方式:將n個用戶級執行緒映射到m個內核級執行緒上(n>=m)
重點:作業系統只“看得見”內核級執行緒,因此只有內核級執行緒才是處理機分配的單位

四、多執行緒模型
在同時支持用戶級執行緒和內核級執行緒的系統中,由幾個用戶級執行緒映射到幾個內核級執行緒映射到幾個內核級執行緒的問題引出了多執行緒模型問題
(一)、多對一模型的優缺點
多對一模型:多個用戶級執行緒映射到一個內核級執行緒,每個用戶行程只對應一個內核級執行緒
優點:用戶級執行緒的切換在用戶空間即可完成,不需要切換到核心態,執行緒管理的系統開銷小,效率高
缺點:當一個用戶級執行緒被阻塞后,整個行程都會被阻塞,并發度不高,多個執行緒不可在多核處理機上并行運行,

(二)、一對一模型
一對一模型:一個用戶映射到一個內核級執行緒,每個用戶行程有與用戶級執行緒同數量的內核級執行緒
優點:當一個執行緒被阻塞后,別的執行緒還可以繼續執行,并發能力強,多執行緒可以在多核處理機上并行執行
缺點:一個用戶行程會占用多個內核級執行緒,執行緒切換由作業系統內核完成,需要切換到核心態,因此執行緒管理的成本高,開銷大

(三)、多對多模型
多對多模型:n用戶及執行緒映射到m個內核級執行緒(n>=m)每個用戶行程對應m個內核級執行緒
多對多模型克服了多對一模型并發度不高的缺點,又克服了一對一模型中一個用戶行程占用太多內核級執行緒,開銷太大的缺點

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/297550.html
標籤:其他
上一篇:Linux進階 | 實作負載均衡高可用(LB+HA)Web服務
下一篇:組合數學(持續更新)
