版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2.5進程通信
進程通信:進程間的信息交換。進程之間,需要交換一定數(shù)量的信息,以便協(xié)調(diào)一致共同完成指定的任務(wù)。如輸入進程、計算進程、打印進程;進程之間交換的信息量可多可少,多則成百上千個數(shù)據(jù),少則僅僅是一個狀態(tài)或一個信號。
進程通信方式:
低級通信方式:傳送一個或幾個字節(jié)的控制信息。如:鎖機制(Lock(L)、unLock(L)和信號量機制(P(S)、V(S))。
缺點:效率低;通信對用戶不透明(用戶需要管理);
高級通信方式:以較高的效率,交換大批量的數(shù)據(jù),隱藏細節(jié)。如:消息緩沖機制和信箱機制。
Send/Receive原語(高級通訊原語)一、進程通信的類型(高級通信機制)1.共享存儲器系統(tǒng)1)基于共享數(shù)據(jù)結(jié)構(gòu)方式:公用數(shù)據(jù)結(jié)構(gòu)生產(chǎn)者消費者有界緩沖區(qū)
缺點:效率低;對程序員不透明;傳送少量數(shù)據(jù);OS:提供共享存儲器。程序員:設(shè)置緩沖區(qū);負責(zé)進程同步;2)基于共享存儲區(qū)方式:共享存儲區(qū)進程:讀、寫進程申請分區(qū)指定分區(qū)關(guān)鍵字連接本進程讀寫2.消息通信方式進程間的數(shù)據(jù)交換以消息(message)或報文為單位,程序員利用一組通信命令(原語)來實現(xiàn)通信,可分為直接、間接通信方式。
優(yōu)點:大量數(shù)據(jù)傳送;隱藏通訊的實現(xiàn)細節(jié);
3.管道通信方式(Pipe)(Unix系統(tǒng))也稱共享文件方式,基于文件系統(tǒng),利用一個打開的共享文件連接兩個相互通信的進程,文件作為緩沖傳輸介質(zhì)。
字符流方式寫入讀出;先進先出順序。發(fā)送進程接收進程
為了協(xié)調(diào)雙方通信,管道通信必須提供三方面的協(xié)調(diào)能力:1、互斥2、同步、3、對方是否存在。二、消息傳遞通信的實現(xiàn)方法
系統(tǒng)為進程提供了兩個高級通訊原語Send和Receive。要進行消息傳遞時執(zhí)行Send,當(dāng)接收者要接收消息時執(zhí)行Receive。
1.直接通信方式(通信時不需要第三者)發(fā)送進程利用OS所提供的發(fā)送命令,直接把消息發(fā)送給目標(biāo)進程。
要求:發(fā)送進程和接收進程都以顯式方式提供對方的標(biāo)識符。通信命令:(原語)Send(Receiver,message):發(fā)送一個消息給接收進程;
Receive(Sender,message):接收Sender發(fā)來的消息;例:原語Send(P2,m1)表示將消息m1發(fā)送給接收進程P2;原語Receive(P1,m1)表示接收由P1發(fā)來的消息m1。
形式:
對稱形式:一對一非對稱形式:多對一(顧客/服務(wù)員)如:提供打印服務(wù)的進程;Receive(id,message);有緩沖(有界,無界),無緩沖;2.消息緩沖隊列通信機制(直接通信)
消息緩沖通信:是一種直接通信方式,一種可直接以較高的效率傳遞較多數(shù)據(jù)的信息交換方式,被廣泛應(yīng)用于本地進程之間的通信。
每當(dāng)發(fā)送進程欲發(fā)送消息時,便形成一個消息緩沖區(qū),其結(jié)構(gòu)如下:
typedefstructmessagebuffer{
intsender;發(fā)送者進程標(biāo)識符
intsize;消息長度
char*text;消息正文
structmessage_buffer*next指向下一個消息緩沖區(qū)的指針
};
消息緩沖區(qū)是內(nèi)存中的一個區(qū)域,其中可以存放一條消息。發(fā)送進程可以把消息填寫到消息緩沖區(qū)中,并把該消息緩沖區(qū)插入到接收進程的消息鏈上,以待接收進程進行加工處理。為此,PCB中還應(yīng)該增加如下的數(shù)據(jù)項:1)mq
:消息隊列頭指針,初值為空。由于接收進程可能會收到幾個進程發(fā)來的消息,故應(yīng)將所有的消息緩沖區(qū)鏈成一個隊列,其隊頭通過在接收進程PCB中設(shè)置隊首指針mq來指出。2)mutex:消息隊列互斥信號量,初值為1。消息隊列屬于臨界資源,故在PCB中設(shè)置了互斥信號量mutex,每當(dāng)對消息鏈操作之前和結(jié)束操作之后,應(yīng)在mutex上分別執(zhí)行wait操作和signal操作。3)sm:消息隊列同步計數(shù)信號量(消息隊列資源信號量)。初值為0。當(dāng)發(fā)送進程發(fā)來一個消息,在此信號量上執(zhí)行signal(sm);而當(dāng)接收進程從消息隊列上欲取走一個消息時,先對信號量執(zhí)行wait(sm),如果有消息,則從消息鏈中取走mq所指出的第一個消息。
發(fā)送進程在發(fā)送消息之前,應(yīng)先在自己的內(nèi)存空間設(shè)置一個發(fā)送區(qū),把欲發(fā)送的消息正文以及接收進程標(biāo)識符id和消息長度填入其中,然后用發(fā)送原語構(gòu)造消息并把消息發(fā)送出去;
接收進程在接收消息之前,在本進程的內(nèi)存空間中設(shè)置一個接收區(qū),然后用接收原語接收消息。(1)發(fā)送原語:send(receiver,a)a為發(fā)送區(qū)開始地址。
功能:把消息從發(fā)送區(qū)復(fù)制到消息緩沖區(qū),并將它掛到接收進程消息隊列的末尾。如果該接收者正因等待消息而處于阻塞狀態(tài),則喚醒該進程。
voidsend(receiver,a)
{
getbuf(a.size,i);根據(jù)a.size(正文大?。┥暾埦彌_區(qū);
i.sender=a.sender;將發(fā)送區(qū)a中的信息復(fù)制到消息緩沖區(qū)i中;
i.size=a.size;
copy(i.text,a.text);
i.next=0;
getid(PCBset,receiver.j);獲得接收進程內(nèi)部標(biāo)識符;
wait(j.mutex);
封鎖消息隊列;
insert(&j.mq,i);將消息緩沖區(qū)(i)插入消息隊列(j);
signal(j.mutex);解鎖消息隊列;解鎖消息隊列
signal(j.sm);
j消息隊列資源信號量加1;
}互斥訪問(2)接收原語:receive(b)b為接收區(qū)開始地址查看(j)消息鏈中計數(shù)信號量(sm)來獲知有待處理的消息否?若無,則接收進程插入消息鏈的阻塞隊列;若有消息,則把消息鏈上的第一個消息摘下,將消息的內(nèi)容復(fù)制到進程j的接收區(qū)b,然后,釋放消息緩沖區(qū)。voidreceive(b)
{
j=internalname;j為接收進程內(nèi)部的標(biāo)識符;
wait(j.sm);判斷有無待處理的消息;如j.sm=0,則阻塞;否則繼續(xù)執(zhí)行;
wait(j.mutex);
remove(j.mq,i);將消息隊列中第一個消息移出;j消息緩沖隊列的隊首
signal(j.mutex);
b.sender=i.sender;將消息緩沖區(qū)i中的信息復(fù)制到接收區(qū)b;
b.size=i.size;
copy(b.text,i.text);releasebuf(i);
}互斥訪問思考:mutex,sm是什么信號量?小結(jié):接收進程j消息緩沖隊列j的PCB中mqj的PCB中sm表示數(shù)量發(fā)送進程Size:5Text:helloSender:A發(fā)送區(qū)拷貝Size:5Text:helloSender:A消息緩沖區(qū)i(內(nèi)存)接收進程Size:5Text:helloSender:A接收區(qū)摘下并拷貝鏈接3.間接通信方式(信箱通信)發(fā)送進程發(fā)消息時不指定接收進程的名字,需要借助于一個中間媒體,即信箱來進行,因此稱之為間接通信方式。1)信箱的數(shù)據(jù)結(jié)構(gòu)間接通信所利用的信箱是一種數(shù)據(jù)結(jié)構(gòu),它由信箱頭和信箱體兩部分組成。其中:信箱頭是對信箱的描述,信箱頭包括如下信息:信箱標(biāo)識符;信箱大??;已存放的信件數(shù);
等信箱隊列的首指針;(
若發(fā)送信件時信箱已滿,則發(fā)送進程被置為“等信箱”狀態(tài),直到信箱有空時才被釋放;
等信件隊列的首指針;(若取信件時信箱中無信,則接收進程被置為“等信件”狀態(tài),直到有信件時才被釋放);
信箱體由若干格子組成,每一個格子可以存放一個信件。信箱格子的大小和數(shù)量在信箱創(chuàng)建時確定。發(fā)送
接收
信箱頭格子1格子2格子3
┅AB發(fā)送進程接收進程信箱體2)信箱創(chuàng)建、撤消、消息發(fā)送、接收原語信箱的創(chuàng)建和撤消。信箱可以由操作系統(tǒng)創(chuàng)建,也可以由用戶創(chuàng)建,創(chuàng)建者是信箱的擁有者。因此,可以根據(jù)創(chuàng)建者的不同將信箱分為私用信箱、公用信箱和共享信箱等類型。(2)消息的發(fā)送和接收。
Send(mailbox,message):將一個消息發(fā)送到指定信箱;
Receive(mailbox,message):從指定信箱中接收一個消息;3)信箱分類信箱種類創(chuàng)建通信方式實現(xiàn)生命期私用用戶擁有者讀取,其它用戶只能發(fā)送。單向通信鏈路用戶結(jié)束則消失公用OS可發(fā)送可讀取雙向通信鏈路OS運行期始終存在共享進程擁有和共享者可讀取,其它只能發(fā)送。雙向進程結(jié)束終止4)信箱通信發(fā)送和接收對應(yīng)關(guān)系發(fā)送接收專用:一對一;不干擾發(fā)送接收一對多;廣播方式發(fā)送接收多對一;C/S(客戶/服務(wù))發(fā)送接收多對多;公用信箱進程通信小結(jié):
1、共享存儲器系統(tǒng)基于共享數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)方式:程序員負責(zé);基于共享存儲區(qū)方式:OS負責(zé);
2、消息通信方式—Message單位直接通信方式:指名發(fā)送、接收者標(biāo)識符。
Send、Receiver原語;有緩沖:消息緩沖隊列通信機制;(重點)間接通信方式:中介媒體信箱通信:信箱:信箱頭、信箱體;創(chuàng)建、撤消、發(fā)送、接收、分類。
3、管道通信—共享文件方式—Unix系統(tǒng)字符流輸入、輸出。2.6線程一、線程的基本概念
進程的概念和結(jié)構(gòu)是傳統(tǒng)操作系統(tǒng)工作的基礎(chǔ)。但是,隨著計算機體系結(jié)構(gòu)從早期的單處理機結(jié)構(gòu)發(fā)展到目前的多處理機結(jié)構(gòu),在多任務(wù)的環(huán)境中,為了減少處理機的空轉(zhuǎn)時間以及處理機調(diào)度切換時的時間和空間開銷,提高系統(tǒng)的并行能力,因此產(chǎn)生了更小的控制單位:線程。補充:
多線程的概念首先是在多處理機的并行處理中提出來的。傳統(tǒng)的多處理機由若干臺處理機組成,每臺處理機每次運行單個現(xiàn)場,即每臺處理機有一個有限硬件資源的單一控制線路。在這樣的多處理機系統(tǒng)中,在進行遠程訪問期間會出現(xiàn)等待現(xiàn)象,處理機在這段時間間隔內(nèi)處于空閑狀態(tài)。為了提高處理機的并行操作能力,提出多線程的概念。在每臺處理機上建立多個運行現(xiàn)場,這樣每臺處理機的有多個控制線路,為解決處理機長時間等待的問題提供了一種有效的機制。一個控制線路就是一個線程,線程可以用一個現(xiàn)場表示,現(xiàn)場由程序計數(shù)器(PC)、寄存器組和所要求的現(xiàn)場狀態(tài)狀態(tài)字組成。1.線程的引入原因(線程為進程的一條執(zhí)行軌跡)
進程獨立性的兩個基本屬性:
資源分配的單位:給每個進程分配一虛擬地址空間,保存進程映像,控制一些資源(文件,I/O設(shè)備),有狀態(tài)、優(yōu)先級、調(diào)度。
調(diào)度單位:進程是一個執(zhí)行軌跡。以上兩個屬性構(gòu)成進程并發(fā)執(zhí)行的基礎(chǔ)。
進程兩個屬性分開的原由:
1)從CPU執(zhí)行所必須的硬件現(xiàn)場來考察,只包含程序計數(shù)器、程序狀態(tài)字、執(zhí)行堆棧、通用寄存器組等。PCB中的絕大多數(shù)表目與CPU執(zhí)行程序代碼是沒有關(guān)系的。
2)進程切換系統(tǒng)開銷較大(數(shù)據(jù)和程序的地址空間)。
3)對進程系統(tǒng)必須完成的操作:創(chuàng)建進程;撤消進程;進程切換;
缺點:時間空間開銷大,限制并發(fā)度的提高。在操作系統(tǒng)中,進程的引入提高了計算機資源的利用效率。但在進一步提高進程的并發(fā)性時,人們發(fā)現(xiàn)進程切換開銷占的比重越來越大,同時進程間通信的效率也受到限制。線程的引入正是為了簡化進程間的通信,以小的開銷來提高進程內(nèi)的并發(fā)程度。
操作系統(tǒng)將進程獨立性的兩個屬性分別賦予了兩個不同實體:擁有資源所有權(quán)的仍稱為進程,而調(diào)度的單位稱為線程,或輕量級進程。
由于同一個進程多個線程共享同一地址空間,帶來了系統(tǒng)時/空管理的改善。2.線程結(jié)構(gòu)與線程控制塊TCB
執(zhí)行堆棧、程序計數(shù)器、通用寄存器組、狀態(tài)標(biāo)記線程線程控制塊TCB進程地址空間數(shù)據(jù)的修改,其他線程均可見。反映CPU現(xiàn)場信息。
單進程多線程單進程單線程線程標(biāo)識線程號處理機狀態(tài)信息(現(xiàn)場)通用寄存器指令計數(shù)器程序狀態(tài)字棧指針線程調(diào)度信息線程狀態(tài)線程優(yōu)先數(shù)等待原因調(diào)度算法參數(shù)等圖:線程及線程控制塊TCB控制線程運行的。3.線程的特點是進程的一個實體,可作為系統(tǒng)獨立調(diào)度和分派的基本單位。不擁有系統(tǒng)資源(只擁有從屬進程的全部資源,資源是分配給進程)。一個進程中的多個線程可并發(fā)執(zhí)行。(進程可創(chuàng)建線程執(zhí)行同一程序的不同部分)系統(tǒng)開銷小、切換快。(進程的多個線程都在進程的地址空間活動)4.線程和進程的關(guān)系單進程、單線程單進程、多線程多進程、一個進程一個線程多進程、一個進程多個線程用戶棧系統(tǒng)棧PCB數(shù)據(jù)程序單線程進程模型寄存器PCB數(shù)據(jù)程序多線程進程模型用戶棧系統(tǒng)棧
TCB寄存器用戶棧系統(tǒng)棧
TCB寄存器用戶棧系統(tǒng)棧
TCB寄存器線程1線程2線程3進程進程非常重要5.引入線程的好處創(chuàng)建一個新線程花費時間少(結(jié)束亦如此)。兩個線程的切換花費時間少。(如果機器設(shè)有“存儲[恢復(fù)]所有寄存器”指令,則整個切換過程用幾條指令即可完成)。線程之間通信效率要高于進程之間的通信效率。進程間通信要內(nèi)核介入,而同一進程多個線程共享同一地址空間,所以通信無須內(nèi)核介入。適合多處理機系統(tǒng)。
6.線程與進程的比較
調(diào)度性:線程作為調(diào)度的基本單位,同進程中線程切換不引起進程切換,當(dāng)不同進程的線程切換才引起進程切換;進程作為擁有資源的基本單位。
并發(fā)性:一個進程間的多個線程可并發(fā)。
擁有資源:線程僅擁有隸屬進程的資源;進程是擁有資源的獨立單位。
系統(tǒng)開銷:進程大;線程小。
補充:由于創(chuàng)建或撤銷進程時,系統(tǒng)都要為之分配或回收資源,如內(nèi)存空間、I/O設(shè)備等,因此付出的開銷遠大于創(chuàng)建或撤銷線程時的開銷。進程切換時,涉及當(dāng)前執(zhí)行進程CPU環(huán)境的保存及新調(diào)度到進程環(huán)境的設(shè)置,而線程切換時只需保存和設(shè)置少量寄存器的內(nèi)容,開銷很小。此外,由于同一進程的多個線程共享進程的地址空間,這些線程之間的同步和通信非常容易,甚至無需操作系統(tǒng)的干預(yù)。
地址空間和其他資源(如打開的文件):進程的地址空間之間相互獨立,同一進程的線程間共享進程的資源,某進程內(nèi)的線程對于其他進程不可見。
通信方面:進程間通信需要進程同步和互斥手段輔助,以保證數(shù)據(jù)一致性,而線程間可以直接讀/寫進程數(shù)據(jù)段(如全局變量)來進行通信。
7.多線程OS中的進程屬性
(1)作為系統(tǒng)資源分配的單位。
(2)可包括多個線程。所有線程都只能屬于某一個特定進程。
(3)進程不是一個可執(zhí)行的實體。例:進程處于“執(zhí)行”狀態(tài),即進程中的某線程正在執(zhí)行。掛起某個進程,即該進程中的所有線程也都將被掛起。
8.線程的屬性
(1)線程是一個輕型實體,它不擁有系統(tǒng)資源,但每個線程都應(yīng)有一個唯一的標(biāo)識符和線程控制塊(TCB),線程控制塊中記錄了線程執(zhí)行的寄存器和棧等現(xiàn)場狀態(tài)。
(2)不同的線程可以執(zhí)行相同的程序,即同一個服務(wù)程序被不同的用戶調(diào)用時,操作系統(tǒng)為它們創(chuàng)建不同的線程。
(3)同一進程中的各個線程共享該進程所擁有的資源。
(4)線程是處理機的獨立調(diào)度單位,多個線程可以并發(fā)執(zhí)行的。在單CPU的計算機系統(tǒng)中,各線程可交替地占用CPU;在多CPU的計算機系統(tǒng)中,各線程可同時占用不同的CPU,若各個CPU同時為一個進程內(nèi)的各線程服務(wù),則可以縮短進程的處理時間。
(5)一個線程被創(chuàng)建后便開始了它的生命周期,直至終止,線程在生命周期內(nèi)會進行阻塞態(tài)、就緒態(tài)和運行態(tài)等各種狀態(tài)變化。9.線程的狀態(tài)
(1)狀態(tài)參數(shù)。用線程標(biāo)識符和一組狀態(tài)參數(shù)描述。①寄存器狀態(tài),PC;②堆棧,局部變量和返回地址;③線程運行狀態(tài),何種運行狀態(tài);④優(yōu)先級,執(zhí)行的優(yōu)先程度;⑤線程專有存儲器,保存線程自己的局部變量拷貝;⑥信號屏蔽,即對某些信號加以屏蔽。
(2)線程運行狀態(tài)。三種基本狀態(tài):①執(zhí)行狀態(tài);②就緒狀態(tài)狀態(tài);③阻塞狀態(tài),10.線程的創(chuàng)建和終止
多線程OS,啟動應(yīng)用程序,僅有一個線程執(zhí)行(“初始化線程”),之后可創(chuàng)建若干個線程。
創(chuàng)建:線程創(chuàng)建函數(shù)(或系統(tǒng)調(diào)用);相應(yīng)的參數(shù)。
生命期:有一定;
終止:
1)自愿退出:完成了自己的工作;
2)異常終止:運行中出現(xiàn)錯誤、被其它線程強行終止;線程中止后并不立即釋放它占有的資源,只有當(dāng)進程中的其它線程執(zhí)行了分離函數(shù)后,被終止的線程才與資源分離。已被終止但尚未釋放資源的線程,仍可以被需要它的線程所調(diào)用,恢復(fù)重新運行,通過“等待線程終止”的連接命令。例題:1.在支持多線程的系統(tǒng)中,進程P創(chuàng)建的若干個線程不能共享的是(
)。
A.進程P的代碼段
B.進程P中打開的文件
C.進程P的全局變量
D.進程P中某線程的棧指針下列關(guān)于進程和線程的敘述中,正確的是()。不管系統(tǒng)是否支持線程,進程都是資源分配的基本單位線程是資源分配的基本單位,進程是調(diào)度的基本單位系統(tǒng)級線程和用戶級線程的切換都需要內(nèi)核的支持同一進程中的各個線程擁有各自不同的地址空間下面的敘述中,正確的是()。引入線程后,處理器只能在線程間切換。引入線程后,處理器仍在進程間切換。線程的切換,不會引起進程的切換。線程的切換,可能引起進程的切換。二、線程的實現(xiàn)機制
用戶級線程內(nèi)核支持線程兩者結(jié)合方法1.內(nèi)核支持線程(KST)
通常的進程(系統(tǒng)、用戶):創(chuàng)建、撤消,I/O操作,切換,利用系統(tǒng)調(diào)用進入內(nèi)核,在內(nèi)核的支持下實現(xiàn)的。進程需要OS內(nèi)核的支持,與內(nèi)核緊密相關(guān)的。
內(nèi)核支持線程KST(KernelSupportedThreads),也是在內(nèi)核的支持下運行的,創(chuàng)建、撤消和切換等也是依靠內(nèi)核,在內(nèi)核空間實現(xiàn)的。內(nèi)核空間為每一個內(nèi)核支持線程設(shè)置了一個線程控制塊,內(nèi)核是根據(jù)該控制塊而感知某線程的存在,并對其加以控制。內(nèi)核支持線程的優(yōu)點和缺點
優(yōu)點:
對多處理器,核心可以同時調(diào)度同一進程的多個線程。
阻塞是在線程一級完成。
核心例程是多線程的。
缺點:
在同一進程內(nèi)的線程切換調(diào)用內(nèi)核,導(dǎo)致速度下降。(用戶的線程)
2.用戶級線程(ULT)僅存在于用戶空間中。
由應(yīng)用程序完成所有線程的管理;創(chuàng)建、撤消、同步與通信。通過線程庫(用戶空間);一組管理線程的過程;核心不知道線程的存在。線程切換不需要核心態(tài)特權(quán)。調(diào)度是應(yīng)用特定的。
調(diào)度仍是以進程為單位進行的。
用戶級線程的優(yōu)點和缺點優(yōu)點:線程切換不調(diào)用核心,切換速度快。調(diào)度是應(yīng)用程序特定的:可以選擇最好的算法。ULT可運行在任何操作系統(tǒng)上(只需要線程庫;作用于用戶態(tài))。缺點:大多數(shù)系統(tǒng)調(diào)用是阻塞的,因此核心阻塞進程,故進程中所有線程將被阻塞。核心只將處理器分配給進程,同一進程中的兩個線程不能同時運行于兩個處理器上。(多用戶應(yīng)用程序不能利用多處理機技術(shù))
3.ULT和KST結(jié)合方法線程創(chuàng)建在用戶空間完成。大量線程調(diào)度和同步在用戶空間完成。程序員可以調(diào)整KST的數(shù)量。例子:Solaris三、線程的實現(xiàn)—何種形式的線程都要直接或間接使用內(nèi)核1.內(nèi)核支持線程的實現(xiàn)任務(wù)數(shù)據(jù)區(qū)進程創(chuàng)建PTDATCB#1
線程ID、優(yōu)先級、線程運行的CPU狀態(tài)等;存在于內(nèi)核空間;線程進程創(chuàng)建分配內(nèi)核支持線程的創(chuàng)建、撤消均與進程的相類似;內(nèi)核支持線程的調(diào)度和切換與進程的調(diào)度和切換十分相似;2.用戶級線程的實現(xiàn)用戶級線程是在用戶空間實現(xiàn)的。所有的用戶級線程都具有相同的結(jié)構(gòu),它們都運行在一個中間系統(tǒng)的上面。
實現(xiàn)的中間系統(tǒng):運行時系統(tǒng);內(nèi)核控制線程。
線程線程線程用戶空間內(nèi)核中間系統(tǒng)1)運行時系統(tǒng)(RuntimeSystem)
所謂“運行時系統(tǒng)”,實質(zhì)上是用于管理和控制線程的函數(shù)(過程)的集合。用這些函數(shù)使用戶級線程與內(nèi)核無關(guān)。
包括:創(chuàng)建、撤消、線程同步和通信、調(diào)度函數(shù)等。函數(shù)駐留在用戶空間,用戶級線程與內(nèi)核之間的接口。線程線程線程用戶空間內(nèi)核中間系統(tǒng)函數(shù)
線程的切換無需進入內(nèi)核,切換操作簡單,切換速度非???。
2)內(nèi)核控制線程--輕型進程LWP(LightWeightProcess)
LWP的數(shù)據(jù)結(jié)構(gòu):標(biāo)識符、優(yōu)先級、狀態(tài),棧、局部存儲區(qū)等。
LWP可通過系統(tǒng)調(diào)用來獲得內(nèi)核提供的服務(wù)。當(dāng)一個用戶級線程運行時,只要將它連接到一個LWP上,此時它便具有了內(nèi)核支持線程的所有屬性。圖2-16利用輕型進程作為中間系統(tǒng)
只看見LWP線程小結(jié):
1、線程基本概念
(線程是進程內(nèi)一個可調(diào)度的實體。)
1)線程引入原因為了簡化進程間的通信,以小的開銷來提高進程內(nèi)的并發(fā)程度。
2)支持線程的OS中,線程是調(diào)度的單位;進程是資源分配的單位。
3)線程與進程的比較、線程的好處。
2、線程的實現(xiàn)機制
1)內(nèi)核支持線程:存于內(nèi)核、創(chuàng)、撤、轉(zhuǎn)換OS控制;調(diào)度以線程為單位;阻塞是在線程一級;實現(xiàn)方式:創(chuàng)建時分配TCB;
2)用戶級線程:存于用戶態(tài);應(yīng)用程序負責(zé)創(chuàng)、撤、切換;切換速度快;調(diào)度以進程為單位;阻塞是進程一級。實現(xiàn)方式:中間系統(tǒng)運行時系統(tǒng):一組函數(shù)和過程;內(nèi)核控制線程(LWP):輕型進程通過系統(tǒng)調(diào)用獲得內(nèi)核服務(wù)。
進程通信小結(jié):
進程通信是指進程之間的信息交換。根據(jù)所交換的信息量的多少分為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年江蘇省連云港市中考英語試題含解析
- 連云港繼續(xù)教育《心理健康與心理調(diào)適》
- 央企績效考核辦法
- Unit4 Growing up單元練習(xí)(含答案)2024-2025學(xué)年牛津譯林版英語九年級上冊
- 高中物理第三章電磁感應(yīng)第三節(jié)交變電流課件新人教版選修1-
- 2014-2020年電力半導(dǎo)體模塊和組件行業(yè)咨詢報告
- 2010-2012年水性聚氨酯市場運營及預(yù)測分析報告
- 高考地理一輪復(fù)習(xí)工業(yè)地域的形成與發(fā)展后達標(biāo)檢測新人教版11
- 2024至2030年中國光纖壁畫數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國PE塑料桶行業(yè)投資前景及策略咨詢研究報告
- 醫(yī)院培訓(xùn)課件:《靜脈中等長度導(dǎo)管臨床應(yīng)用專家共識》
- 2024廣西公需課高質(zhì)量共建“一帶一路”譜寫人類命運共同體新篇章答案
- 2024年連云港專業(yè)技術(shù)人員繼續(xù)教育《飲食、運動和健康的關(guān)系》92分(試卷)
- 學(xué)習(xí)總結(jié)報告成果展示
- 《建筑基坑工程監(jiān)測技術(shù)標(biāo)準(zhǔn)》(50497-2019)
- 《工程經(jīng)濟與項目管理》完整全套教學(xué)課件
- 市民中心信息系統(tǒng)運營維護方案
- 新概念英語第一冊127-128課(共38張PPT)
- 交通工程標(biāo)線、標(biāo)志牌檢驗批質(zhì)量驗收記錄表
- 市“市樹市花”評選活動實施方案
- 文內(nèi)引用和參考文獻格式
評論
0/150
提交評論