二.進(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)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市窒篱,隨后出現(xiàn)的幾起案子焕刮,更是在濱河造成了極大的恐慌舶沿,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件配并,死亡現(xiàn)場離奇詭異括荡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)溉旋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門畸冲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人观腊,你說我怎么就攤上這事邑闲。” “怎么了梧油?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵苫耸,是天一觀的道長。 經(jīng)常有香客問我儡陨,道長褪子,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任骗村,我火速辦了婚禮嫌褪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘叙身。我一直安慰自己,他們只是感情好硫狞,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布信轿。 她就那樣靜靜地躺著,像睡著了一般残吩。 火紅的嫁衣襯著肌膚如雪财忽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天泣侮,我揣著相機(jī)與錄音即彪,去河邊找鬼。 笑死活尊,一個(gè)胖子當(dāng)著我的面吹牛隶校,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蛹锰,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼深胳,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了铜犬?” 一聲冷哼從身側(cè)響起舞终,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤轻庆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后敛劝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體余爆,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年夸盟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛾方。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡满俗,死狀恐怖转捕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情唆垃,我是刑警寧澤五芝,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站辕万,受9級(jí)特大地震影響枢步,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜渐尿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一醉途、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砖茸,春花似錦隘擎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至劲够,卻和暖如春震桶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背征绎。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國打工蹲姐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人人柿。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓柴墩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凫岖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拐邪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 進(jìn)程通信是指進(jìn)程之間的信息交換扎阶。 一汹胃、低級(jí)通信——進(jìn)程之間的互斥和同步 信號(hào)量機(jī)制是有效的同步工具,但作為通信...
    麻皮阿洪閱讀 717評(píng)論 0 0
  • 進(jìn)程通信是指進(jìn)程之間的信息交換宰掉。 一、低級(jí)通信——進(jìn)程之間的互斥和同步 信號(hào)量機(jī)制是有效的同步工具赁濒,但作為通信工具...
    盆栽木只閱讀 710評(píng)論 0 1
  • 操作系統(tǒng)概論 操作系統(tǒng)的概念 操作系統(tǒng)是指控制和管理計(jì)算機(jī)的軟硬件資源轨奄,并合理的組織調(diào)度計(jì)算機(jī)的工作和資源的分配,...
    野狗子嗷嗷嗷閱讀 11,932評(píng)論 3 34
  • 爆竹噼啪拒炎,煙火炫美挪拟,繁星滿天。積善家慶有余击你,歡笑處玉组,賀歲祈福。攜手相看笑眼丁侄,更心花怒放惯雳。...
    曉吉吉祥閱讀 165評(píng)論 0 0
  • 1、數(shù)組的基本定義 2鸿摇、數(shù)組的注意點(diǎn) 3石景、數(shù)組的遍歷 4、二維數(shù)組
    亨鍋鍋閱讀 242評(píng)論 0 1