二.進(jìn)程(6-7)進(jìn)程通信、線程

? 進(jìn)程通信是指進(jìn)程之間的信息交換。

一、低級(jí)通信——進(jìn)程之間的互斥和同步

? 信號(hào)量機(jī)制是有效的同步工具,但作為通信工具缺點(diǎn)如下:

(1)效率低(通信量少)

(2)通信對(duì)用戶不透明(程序員實(shí)現(xiàn),操作系統(tǒng)只提供共享存儲(chǔ)器供代碼操作)

二、高級(jí)進(jìn)程通信

? 用戶直接利用操作系統(tǒng)提供的一組通信命令,高效地傳送大量數(shù)據(jù)的通信方式。

n操作系統(tǒng)隱藏了進(jìn)程通信的細(xì)節(jié),對(duì)用戶透明,減少了通信程序編制上的復(fù)雜性。

高級(jí)通信機(jī)制可歸結(jié)為四大類

①共享存儲(chǔ)器系統(tǒng)(操作存儲(chǔ)區(qū)方式)

? 相互通信的進(jìn)程共享某些數(shù)據(jù)結(jié)構(gòu)或共享存儲(chǔ)區(qū),進(jìn)程之間能夠通過這些空間進(jìn)行通信。

a.基于共享數(shù)據(jù)結(jié)構(gòu)的通信方式(低級(jí))

b.基于共享存儲(chǔ)區(qū)的通信方式(高級(jí))

②消息傳遞系統(tǒng)(發(fā)--收方式)

最廣泛使用的一種,進(jìn)程間的數(shù)據(jù)交換,以格式化的消息為單位。屏蔽底層復(fù)雜操作。

單機(jī):操作系統(tǒng)底層編程中的消息傳遞系統(tǒng)調(diào)用;

計(jì)算機(jī)網(wǎng)絡(luò):消息稱為報(bào)文。程序員直接利用系統(tǒng)提供的一組通信命令(原語)進(jìn)行通信。(④客戶機(jī)-服務(wù)器系統(tǒng))

如socket編程,利用函數(shù)庫的send、receive等命令即可實(shí)現(xiàn)網(wǎng)絡(luò)通信

③管道通信(中間文件方式)

所謂“管道”,是指用于連接一讀進(jìn)程和一寫進(jìn)程以實(shí)現(xiàn)通信的一個(gè)共享文件,又名pipe文件。

向共享文件輸入的寫進(jìn)程以字符流形式將大量的數(shù)據(jù)送入管道;而接收管道輸出的讀進(jìn)程則從管道中接收(讀)數(shù)據(jù)。

首創(chuàng)于UNIX系統(tǒng)。其管道機(jī)制需提供三方面的協(xié)調(diào)能力:互斥、同步、確定對(duì)方是否存在。

④Client-Server system

一個(gè)套接字就是一個(gè)通信標(biāo)識(shí)類型的數(shù)據(jù)結(jié)構(gòu),包含了通信目的的地址,端口號(hào),傳輸層協(xié)議、進(jìn)程所在的網(wǎng)絡(luò)地址,以及針對(duì)C\S程序提供的不同系統(tǒng)調(diào)用(API函數(shù))等。

系統(tǒng)中所有的連接都持有唯一的一對(duì)套接字及端口連接,從而方便地區(qū)分來自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,確保通信雙方間邏輯鏈路的唯一性。

2.消息傳遞通信的實(shí)現(xiàn)方法

1)直接通信方式

? 發(fā)送進(jìn)程利用OS所提供的發(fā)送命令(原語),直接把消息發(fā)送給目標(biāo)進(jìn)程。此時(shí),發(fā)送進(jìn)程和接收進(jìn)程都以顯式方式提供對(duì)方的標(biāo)識(shí)符。通常利用系統(tǒng)通信命令(原語):

? Send(Receiver, message);

? Receive(Sender, message);


2)間接通信方式

? 基于共享數(shù)據(jù)結(jié)構(gòu)的實(shí)體用來暫存發(fā)送給目標(biāo)進(jìn)程的消息;接收進(jìn)程則從該實(shí)體中,取出對(duì)方發(fā)送給自己的消息。通常把這種實(shí)體稱為信箱。

n消息在信箱中可以安全地保存,只允許核準(zhǔn)的目標(biāo)用戶隨時(shí)讀取。既可實(shí)時(shí)通信,又可非實(shí)時(shí)通信。

3.消息傳遞系統(tǒng)的實(shí)現(xiàn)

? 單機(jī)和網(wǎng)絡(luò)環(huán)境下的高級(jí)進(jìn)程通信廣泛采用“消息傳遞”方式,需要考慮的問題:

①通信鏈路的建立

②消息格式

③同步方式

①通信鏈路的建立

計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境下,用原語顯式建立/拆除鏈路

單機(jī)系統(tǒng)只須利用系統(tǒng)原語,進(jìn)程間鏈路由系統(tǒng)自動(dòng)管理。

②消息格式

單機(jī)系統(tǒng),發(fā)送與接收進(jìn)程在同一臺(tái)機(jī)器,環(huán)境相同故格式簡單;

網(wǎng)絡(luò)環(huán)境下,受不同目標(biāo)機(jī)器的環(huán)境和長距離信息傳輸?shù)纫蛩氐挠绊?,消息格式較復(fù)雜,消息常是“大頭+正文”

③同步方式(如何控制發(fā)送和接收的狀態(tài))

發(fā)送進(jìn)程阻塞、接收進(jìn)程阻塞(無緩沖緊密同步)

發(fā)送進(jìn)程不阻塞、接收進(jìn)程阻塞(服務(wù)器程序)

發(fā)送進(jìn)程和接收進(jìn)程均不阻塞(緩沖隊(duì)列)


? 2.線程的屬性

多線程OS中,一個(gè)進(jìn)程包括多個(gè)線程,每個(gè)線程都是利用CPU的基本單位。

輕型實(shí)體:只需一點(diǎn)必不可少的、能保證獨(dú)立運(yùn)行的資源。(TCB)

獨(dú)立調(diào)度和分派的基本單位:調(diào)度切換迅速且開銷小。

可并發(fā)執(zhí)行

共享進(jìn)程資源:同進(jìn)程中的線程可共享相同的進(jìn)程地址空間、已打開文件、信號(hào)量機(jī)構(gòu)等。

3.線程的信息

(TCB管理什么信息?)

狀態(tài)參數(shù)

標(biāo)識(shí)符、運(yùn)行狀態(tài)、優(yōu)先級(jí)、寄存器狀態(tài)、堆棧、專有存儲(chǔ)器、信號(hào)屏蔽等。

運(yùn)行狀態(tài)

執(zhí)行、就緒、阻塞

4.線程的創(chuàng)建和終止

? 在多線程OS中,應(yīng)用程序啟動(dòng)時(shí),通常只有一個(gè)線程(初始化線程)在執(zhí)行,它根據(jù)需要再創(chuàng)建若干線程。

創(chuàng)建新線程:

? 利用線程創(chuàng)建函數(shù)(或系統(tǒng)調(diào)用),提供相應(yīng)參數(shù)。線程創(chuàng)建函數(shù)執(zhí)行完后,返回一個(gè)線程標(biāo)識(shí)符供以后使用。

線程被終止:

? 不立即釋放資源,只有當(dāng)進(jìn)程中的其它線程執(zhí)行分離函數(shù)后,資源才分離出來能被其它線程利用。

?????????? 被終止而未釋放資源的線程仍可被需要它的線程調(diào)用,使其重新恢復(fù)運(yùn)行。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 進(jìn)程通信是指進(jìn)程之間的信息交換。 一、低級(jí)通信——進(jìn)程之間的互斥和同步 信號(hào)量機(jī)制是有效的同步工具,但作為通信工具...
    盆栽木只閱讀 766評(píng)論 0 1
  • 操作系統(tǒng)概論 操作系統(tǒng)的概念 操作系統(tǒng)是指控制和管理計(jì)算機(jī)的軟硬件資源,并合理的組織調(diào)度計(jì)算機(jī)的工作和資源的分配,...
    野狗子嗷嗷嗷閱讀 12,478評(píng)論 3 34
  • 大概已經(jīng)不再年輕了吧,內(nèi)心的沖動(dòng)竟越來越少。我很久都沒有小步緊跑著去迎接一個(gè)人了。 冬天十點(diǎn)的陽光才微微有了暖意。...
    心無處安放閱讀 4,067評(píng)論 0 1
  • 一姐們兒男朋友是985名校畢業(yè),本來進(jìn)入一家著名國企工作得好好的,轉(zhuǎn)而辭職想考公務(wù)員,奈何專業(yè)限制,決定跨專業(yè)考個(gè)...
    千里小姐閱讀 390評(píng)論 0 0
  • 食材:紫薯,低筋面粉,酵母,溫水 步驟一:紫薯蒸熟搗碎 步驟二:用備好的溫水將酵母沖開 步驟三:在搗碎的紫薯內(nèi)倒入...
    一采閱讀 634評(píng)論 0 0

友情鏈接更多精彩內(nèi)容