久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

進(jìn)程,、線程、管程三者之間的關(guān)系

 哈飛揚(yáng) 2013-06-03

 

1,,首先我們先了解進(jìn)程,、線程,、管程各自的概念:

進(jìn)程進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng)。它是操作系統(tǒng)動(dòng)態(tài)執(zhí)行的基本單元,,在傳統(tǒng)的操作系統(tǒng)中,,進(jìn)程既是基本的分配單元,也是基本的執(zhí)行單元,。

線程:線程是進(jìn)程中的實(shí)體,,一個(gè)進(jìn)程可以擁有多個(gè)線程,一個(gè)線程必須有一個(gè)父進(jìn)程,。線程不擁有系統(tǒng)資源,,只有運(yùn)行必須的一些數(shù)據(jù)結(jié)構(gòu);它與父進(jìn)程的其它線程共享該進(jìn)程所擁有的全部資源,。線程可以創(chuàng)建和撤消線程,,從而實(shí)現(xiàn)程序的并發(fā)執(zhí)行。一般,,線程具有就緒,、阻塞和運(yùn)行三種基本狀態(tài)。
管程:管程定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)和能為并發(fā)進(jìn)程所執(zhí)行的一組操作,,這組操作能同步進(jìn)程和改變管程中的數(shù)據(jù),。

2,現(xiàn)在我們來(lái)了解進(jìn)程和線程的關(guān)系:

       簡(jiǎn)而言之,一個(gè)進(jìn)程至少有一個(gè)線程. 線程的劃分尺度小于進(jìn)程,,使得多線程程序的并發(fā)性高,。另外,進(jìn)程在執(zhí)行過(guò)程中擁有獨(dú)立的內(nèi)存單元,,而多個(gè)線程共享內(nèi)存,,從而極大地提高了程序的運(yùn)行效率。 線程在執(zhí)行過(guò)程中與進(jìn)程還是有區(qū)別的,。每個(gè)獨(dú)立的線程有一個(gè)程序運(yùn)行的入口,、順序執(zhí)行序列和程序的出口。但是線程不能夠獨(dú)立執(zhí)行,,必須依存在應(yīng)用程序中,,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制。 
   
從邏輯角度來(lái)看,,多線程的意義在于一個(gè)應(yīng)用程序中,,有多個(gè)執(zhí)行部分可以同時(shí)執(zhí)行。但操作系統(tǒng)并沒(méi)有將多個(gè)線程看做多個(gè)獨(dú)立的應(yīng)用,,來(lái)實(shí)現(xiàn)進(jìn)程的調(diào)度和管理以及資源分配,。這就是進(jìn)程和線程的重要區(qū)別。

   進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位.線程是進(jìn)程的一個(gè)實(shí)體,CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(如程序計(jì)數(shù)器,一組寄存器和棧),但是它可與同屬一個(gè)進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源
   
一個(gè)線程可以創(chuàng)建和撤銷另一個(gè)線程;同一個(gè)進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行,。

3,,下面我們分析進(jìn)程和線程之間的關(guān)系:

 

假如我們把整條道路看成是一個(gè)進(jìn)程的話,那么由白色虛線分隔開(kāi)來(lái)的各個(gè)車道就是進(jìn)程中的各個(gè)線程了,。

①這些線程(車道)共享了進(jìn)程(道路)的公共資源(土地資源),。
②這些線程(車道)必須依賴于
進(jìn)程(道路),也就是說(shuō),,線程不能脫離于進(jìn)程而存在(就像離開(kāi)了道路,,車道也就沒(méi)有意義了)
③這些線程(車道)之間可以并發(fā)執(zhí)行(各個(gè)車道你走你的,,我走我的),,也可以互相同步(某些車道在交通燈亮?xí)r禁止繼續(xù)前行或轉(zhuǎn)彎,必須等待其它車道的車輛通行完畢),。
④這些線程(車道)之間依靠代碼邏輯(交通燈)來(lái)控制
運(yùn)行,,一旦代碼邏輯控制有誤(死鎖,多個(gè)線程同時(shí)競(jìng)爭(zhēng)唯一資源),,那么線程將陷入混亂,,無(wú)序之中。

⑤這些線程(車道)之間誰(shuí)先運(yùn)行是未知的,,只有在線程剛好被分配到CPU時(shí)間片(交通燈變化)的那一刻才能知道,

4,,管程的引用

      信號(hào)量機(jī)制的引入解決了進(jìn)程同步的描述問(wèn)題,但信號(hào)量的大量同步操作分散在各個(gè)進(jìn)程中不便于管理,,還有可能導(dǎo)致系統(tǒng)死鎖,。如:生產(chǎn)者消費(fèi)者問(wèn)題中將PV顛倒可能死鎖,。

      為此Dijkstra1971年提出:把所有進(jìn)程對(duì)某一種臨界資源的同步操作都集中起來(lái),,構(gòu)成一個(gè)所謂的秘書(shū)進(jìn)程。凡要訪問(wèn)該臨界資源的進(jìn)程,,都需先報(bào)告秘書(shū),,由秘書(shū)來(lái)實(shí)現(xiàn)諸進(jìn)程對(duì)同一臨界資源的互斥使用。

管程由四部分組成:

    1).管程內(nèi)部的共享變量,。

    2).管程內(nèi)部的條件變量,。

    3).管程內(nèi)部并行執(zhí)行的進(jìn)程。

    4).對(duì)于局部與管程內(nèi)部的共享數(shù)據(jù)設(shè)置初始值的語(yǔ)句,。

由此可見(jiàn),,管程相當(dāng)于圍墻,它把共享變量和對(duì)它進(jìn)行操作的若干個(gè)過(guò)程圍了起來(lái),,所有的進(jìn)程要訪問(wèn)臨界資源時(shí),,都必須經(jīng)過(guò)管程才能進(jìn)入,而管程每次只允許一個(gè)進(jìn)程進(jìn)入管程,,從而實(shí)現(xiàn)了進(jìn)程的互斥,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多