王道 執行緒概念和多執行緒模型

2021-10-09 10:13:22 字數 1109 閱讀 8554

6、多執行緒模型

在引入程序之前,系統中各個程式只能序列執行;引入程序之後,系統中各個程序之間可以併發執行;

有的程序可能需要「同時」做很多事情,而傳統的程序只能序列地執行一系列程式。為此,引入了「執行緒」來增加併發度;

傳統的程序是程式執行流的最小單位,也就是說cpu處理的是乙個個程序;在程序中引入了執行緒後,cpu的排程服務物件不再是程序,而是程序中的執行緒,每乙個程序中可能包含多個執行緒,cpu會輪流地為執行緒進行服務;

引入了執行緒機制後,執行緒成為了程式執行流的最小單位;

可以把執行緒理解為「輕量級的程序」,執行緒是乙個基本的cpu執行單元,也是程式執行流的最小單位;

引入執行緒之後,程序不再是程式執行流的最小單元,程序只作為除cpu之外的系統資源的分配單元(如印表機、記憶體位址空間等都是分配給程序的);

資源分配、排程:

併發性:

系統開銷:

模擬: 去圖書館看書

執行緒的實現方式有兩種:使用者級執行緒和核心級執行緒;

使用者級執行緒是由應用程式通過執行緒庫實現;

所有的執行緒管理工作都由應用程式負責(包括執行緒切換);

使用者級執行緒中,執行緒切換可以在使用者態下即可完成,無需作業系統干預;

在使用者看來,是有多個執行緒,但是在作業系統核心看來,並意識不到執行緒的存在。(使用者級執行緒對使用者不透明,對作業系統透明);

可以這樣理解,「使用者級執行緒」就是「從使用者視角看能看到的執行緒」

;核心級執行緒,又稱「核心支援的執行緒」;

核心級執行緒的管理工作由作業系統核心完成。執行緒排程、切換等工作都由核心負責,因此核心級執行緒的切換必然需要在核心態下才能完成;

可以這樣理解,「核心級執行緒」就是「從作業系統核心視角能看到的執行緒」;

有的作業系統支援使用者級執行緒,有的作業系統支援核心級執行緒;在同時支援使用者級執行緒的系統中,可採用二者結合的方式:將n個使用者執行緒對映到m個核心執行緒上(n>=m);

重點重點重點:

作業系統只看得見核心級執行緒,因此只有核心級執行緒才是處理機分配的單位;

在同時支援使用者級執行緒和核心級執行緒的系統中,由幾個使用者級執行緒對映到幾個核心級執行緒的問題引出了「多執行緒模型」問題;

多執行緒模型分為三種:

執行緒概念和多執行緒模型

程序是伴隨著多道程式技術而引入的 和程序一樣,執行緒有它的tcb和id,也有就緒,阻塞,執行三種狀態 執行緒幾乎不擁有系統資源,系統資源是分配給程序的,同一程序內的執行緒共享程序的資源 同一程序內的執行緒間切換,不用切換程序環境。執行緒分為 使用者級執行緒 和 核心級執行緒 即守護執行緒 使用者級執...

6 執行緒的概念和多執行緒模型

系統在建立乙個新進 程時,便為它分配乙個任務資料區 ptda per task data area 其中包括若干個執行緒控制塊tcb空間。只要其所建立的執行緒數目未超過系統的允許值 通常為數十至數百個 系統可再為之分配新的tcb空間 1 執行時系統 2 核心控制線程 輕型程序 light weigh...

多執行緒概念

概念 多執行緒 是指從軟體或者硬體上實現多個執行緒併發執行的技術,多執行緒包括軟體多執行緒和硬體多執行緒。軟體多執行緒 即便處理器只能執行乙個執行緒,作業系統也可以通過快速的在不同執行緒之間進行切換,由於時間間隔很小,來給使用者造成一種多個執行緒同時執行的假象。程序 是指計算機中已執行的程式.並行 ...