日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

王道操作系统考研笔记——2.1.5 线程概念与多线程模型

發(fā)布時(shí)間:2023/12/9 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 王道操作系统考研笔记——2.1.5 线程概念与多线程模型 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

      • 2.1.5 線程概念與多線程模型
        • 2.1.5.1 線程的來(lái)源
        • 2.1.5.2 線程機(jī)制帶來(lái)的變化
        • 2.1.5.3 線程的屬性
        • 2.1.5.4 線程的實(shí)現(xiàn)方式
        • 2.1.5.5 多線程模型
        • 2.1.5.6 小結(jié)

2.1.5 線程概念與多線程模型

2.1.5.1 線程的來(lái)源

在很久以前還沒(méi)有引入進(jìn)程之前,系統(tǒng)中的各個(gè)程序只能串行執(zhí)行。比如你想要邊聽(tīng)歌邊開(kāi)QQ,這是不可能做到的,只能先做一件事再做一件事。

后來(lái)引入進(jìn)程后,系統(tǒng)中的各個(gè)程序可以并發(fā)執(zhí)行。也就是說(shuō),可以同時(shí)聽(tīng)歌和開(kāi)QQ。但是,即使引入了進(jìn)程,也不能在QQ中同時(shí)視頻聊天和傳輸文件。這是因?yàn)椴僮飨到y(tǒng)每一次執(zhí)行都是按照進(jìn)程為單位來(lái)執(zhí)行的。

從上面的例子來(lái)看,進(jìn)程是程序的一次執(zhí)行。但是這些功能顯然不可能是由一個(gè)程序順序處理就能實(shí)現(xiàn)的。

有的進(jìn)程可能需要“同時(shí)做很多事”,而傳統(tǒng)的進(jìn)程只能串行地執(zhí)行一系列程序。為此,引入了線程來(lái)提高并發(fā)度。

在傳統(tǒng)中,進(jìn)程是程序執(zhí)行流的最小單位,也就是說(shuō),CPU每次執(zhí)行任務(wù),最少執(zhí)行一個(gè)進(jìn)程。而后在現(xiàn)在,CPU每次執(zhí)行任務(wù),最少執(zhí)行一個(gè)線程,線程是進(jìn)程的子集。也就是說(shuō),引入線程后,線程成為了程序執(zhí)行流的最小單位。

綜上所述,我們可以把線程理解為“輕量級(jí)進(jìn)程”。線程是一個(gè)基本的CPU執(zhí)行單元,也是程序執(zhí)行流的最小單位。引入線程之后,不僅是進(jìn)程之間可以并發(fā),進(jìn)程內(nèi)的各線程之間也可以并發(fā),從而進(jìn)一步提升了系統(tǒng)的并發(fā)度,使得一個(gè)進(jìn)程內(nèi)也可以并發(fā)處理各種任務(wù)(如QQ視頻、文字聊天、傳文件)。引入線程后,進(jìn)程只作為除CPU之外的系統(tǒng)資源的分配單元(如打印機(jī)、內(nèi)存地址空間等都是分配給進(jìn)程的)。


2.1.5.2 線程機(jī)制帶來(lái)的變化

資源分配、調(diào)度并發(fā)性系統(tǒng)開(kāi)銷(xiāo)
傳統(tǒng)進(jìn)程機(jī)制中,進(jìn)程是資源分配、調(diào)度的基本單位傳統(tǒng)進(jìn)程機(jī)制中,只能進(jìn)程間并發(fā)傳統(tǒng)的進(jìn)程間并發(fā),需要切換進(jìn)程的運(yùn)行環(huán)境,系統(tǒng)開(kāi)銷(xiāo)很大。
引入線程后,進(jìn)程是資源分配的基本單位,線程是調(diào)度的基本單位引入線程后,各線程間也能并發(fā),提高了并發(fā)度線程間并發(fā),如果是同一進(jìn)程內(nèi)的線程切換,則不需要切換進(jìn)程環(huán)境,系統(tǒng)開(kāi)銷(xiāo)小,也就是說(shuō)引入線程后,并發(fā)所帶來(lái)的系統(tǒng)開(kāi)銷(xiāo)減小。

切換進(jìn)程環(huán)境的類(lèi)比:

去圖書(shū)館看書(shū)。

切換進(jìn)程運(yùn)行環(huán)境 = 有一個(gè)不認(rèn)識(shí)的人要用桌子,你需要把你的書(shū)(運(yùn)行環(huán)境)收走,他把自己的書(shū)(運(yùn)行環(huán)境)放到桌上。

同一進(jìn)程內(nèi)的線程切換 = 你的舍友要用到這張書(shū)桌,可以不把桌子上的書(shū)收走,因?yàn)榇蠹冶舜苏J(rèn)識(shí)(屬于同一個(gè)進(jìn)程)。


2.1.5.3 線程的屬性


2.1.5.4 線程的實(shí)現(xiàn)方式

用戶級(jí)線程由應(yīng)用程序通過(guò)線程庫(kù)實(shí)現(xiàn)。所有的線程管理工作都由應(yīng)用程序負(fù)責(zé)(包括線程切換)。用戶級(jí)線程中,線程切換可以在用戶態(tài)下即可完成,無(wú)需操作系統(tǒng)干預(yù)。在用戶看來(lái),是有多個(gè)線程;但是對(duì)于操作系統(tǒng)內(nèi)核來(lái)說(shuō),并意識(shí)不到線程的存在。即用戶級(jí)線程對(duì)用戶不透明,對(duì)操作系統(tǒng)透明。

內(nèi)核級(jí)線程(Kernel-Level Thread,KTL,又稱為“內(nèi)核支持的線程”)

內(nèi)核級(jí)線程的管理工作由操作系統(tǒng)內(nèi)核完成。線程調(diào)度、切換等工作都由內(nèi)核負(fù)責(zé),因此內(nèi)核級(jí)線程的切換必然需要在核心態(tài)下才能完成。

在同時(shí)支持用戶級(jí)線程和內(nèi)核級(jí)線程的系統(tǒng)中,可采用兩者組合的方式:將n個(gè)用戶級(jí)線程映射到m個(gè)內(nèi)核級(jí)線程上(n>=m)

需要重點(diǎn)關(guān)注的是:操作系統(tǒng)只“看得見(jiàn)”內(nèi)核級(jí)線程,因此只有內(nèi)核級(jí)線程才是處理機(jī)分配的單位。

拿上面的映射圖來(lái)說(shuō),該進(jìn)程由兩個(gè)內(nèi)核級(jí)線程和三個(gè)用戶級(jí)線程構(gòu)成,在用戶看來(lái),這個(gè)進(jìn)程中有三個(gè)線程。但即使該進(jìn)程在一個(gè)4核處理機(jī)的計(jì)算機(jī)上運(yùn)行,也最多只能被分配到兩個(gè)核,最多只能有兩個(gè)用戶線程并行執(zhí)行。


2.1.5.5 多線程模型

在同時(shí)支持用戶級(jí)線程和內(nèi)核級(jí)線程的系統(tǒng)中,由幾個(gè)用戶級(jí)線程映射到幾個(gè)內(nèi)核級(jí)線程的問(wèn)題引出了“多線程模型”問(wèn)題。

多對(duì)一模型

多個(gè)用戶及線程映射到一個(gè)內(nèi)核級(jí)線程。每個(gè)用戶進(jìn)程只對(duì)應(yīng)一個(gè)內(nèi)核級(jí)線程。

優(yōu)點(diǎn):用戶級(jí)線程的切換在用戶空間即可完成,不需要切換到核心態(tài),線程管理的系統(tǒng)開(kāi)銷(xiāo)小,效率高。

缺點(diǎn):當(dāng)一個(gè)用戶級(jí)線程被阻塞后,整個(gè)進(jìn)程都會(huì)被阻塞,并發(fā)度不高。多個(gè)線程不可在多核處理機(jī)上并行運(yùn)行。

一對(duì)一模型

一個(gè)用戶及線程映射到一個(gè)內(nèi)核級(jí)線程。每個(gè)用戶進(jìn)程有與用戶級(jí)線程同數(shù)量的內(nèi)核級(jí)線程。

優(yōu)點(diǎn):當(dāng)一個(gè)線程被阻塞后,別的線程還可以繼續(xù)執(zhí)行,并發(fā)能力強(qiáng),多線程可在多核處理機(jī)上并行執(zhí)行。

缺點(diǎn):一個(gè)用戶進(jìn)程會(huì)占用多個(gè)內(nèi)核級(jí)線程,線程切換由操作系統(tǒng)內(nèi)核完成,需要切換到核心態(tài),因此線程管理的成本高,開(kāi)銷(xiāo)大。

多對(duì)多模型

n用戶線程映射到m個(gè)內(nèi)核級(jí)線程(n>=m)。每個(gè)用戶進(jìn)程對(duì)于m個(gè)內(nèi)核級(jí)線程。

其克服了多對(duì)一模型和一對(duì)多模型的缺點(diǎn)。


2.1.5.6 小結(jié)

這一小節(jié)的知識(shí)點(diǎn)易作為選擇題考查。


總結(jié)

以上是生活随笔為你收集整理的王道操作系统考研笔记——2.1.5 线程概念与多线程模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。