導航:首頁 > 數據處理 > 管程定義了什麼數據結構

管程定義了什麼數據結構

發布時間:2023-03-10 12:22:58

① 簡述線程,進程和應用程序域的區別和聯系

程序

程序是為解決一個信息處理任務而預先編制的工作執行方案,是由一串CPU能夠執行的基本指令組成的序列,每一條指令規定了計算機應進行什麼操作(如加、減、乘、判斷等)及操作需要的有關數據。
進程
進程指是具有一定獨立功能的程序關於某個數據集合上的一次運行活動,是系統進行資源分配和調度的一個獨立單位。
線程
線程是指線程是進程中的一個實體,是被系統獨立調度和執行的基本單位。

管程
管程是指管程實際上是定義了一個數據結構和在該數據結構上的能為並發進程所執行的一組操作,這組操作能同步進程和改變管程中的數據。

關系
(1)作業是在較早的多道批處理系統中提出的,現代操作系統基本沒有這個概念。一般來說作業是可以包含多個程序或數據集,但至少有一個程序。怎麼理解呢?個人任務程序和作業可以從功能的角度來理解。打個比方,今天班主任要求我們進行班級大掃除,這可以看做一個作業。而這個作業被我們分成擦窗戶,洗地板等等,這些所謂的「子作業」可以看成是一個一個的程序。
(2)一個程序可以有多個進程,一個線程可以包含多個程序。前半句比較好理解,那上面那個例子來說,比如說實現擦窗戶這個程序。有些人(資源)去准備好布(資源)和水(資源),供別人擦洗;有些人(資源)接布進程擦窗戶。這便可以理解為實現這個程序功能的兩個線程。而為什麼又說一個線程可以包含多個程序?仔細看清楚是「包含」。其實便是在這個進程裡面直接調用其他程序,也就是使用程序的功能。
(3)一個進程至少有一個線程. 線程的劃分尺度小於進程,多個線程共享進程內存。多線程的意義在於一個應用程序中,有多個執行部分可以同時執行。但操作系統並沒有將多個線程看做多個獨立的應用,來實現進程的調度和管理以及資源分配。這就是進程和線程的重要區別。 一個線程可以創建和撤銷另一個線程;同一個進程中的多個線程之間可以並發執行。還是拿上面的例子來講,實現擦窗戶這個功能的程序創建了兩個進程。需要的資源有:人、布、水。這些資源早在創建的時候就已經申請了。第一條進程「有些人(資源)去准備好布(資源)和水(資源),供別人擦洗「現在可以開辟多個線程來細化這個任務。可以叫其中一個人去打水,其中一個人負責洗布,其中一個人傳遞干凈的布等,這便是一個個線程。而無論開辟多少個線程,使用的資源都是來自進程已申請的,無法脫離進程而獨自存在。另外,線程之間是獨立的,打水的,洗布的,傳遞的,只要自己干好自己的活,沒有必然的相互依賴的關系。而且可以同時進行,這便是多線程的好處所在。
(4)而對於管程呢?通俗的理解就是」管理進程「。死鎖問題的存在導致管程於1971年被Dijkstra提出,說道:把所有進程對某一種臨界資源的同步操作都集中起來,構成一個所謂的秘書進程。凡要訪問該臨界資源的進程,都需先報告秘書,由秘書來實現諸進程對同一臨界資源的互斥使用。
管程由四部分組成:
1).管程內部的共享變數。
2).管程內部的條件變數。
3).管程內部並行執行的進程。
4).對於局部與管程內部的共享數據設置初始值的語句。

回到例子,上面說道兩個進程中,有些人去准備布和水的工作,有些人要擦窗戶。那麼問題來了。准備布工作的人的名單中卻寫著准備水的人,那麼問題來了,這個人到底該干嗎?如果准備布工作要了這個人,這個人一直工作著,而准備水的工作一直等著他去做,那麼就一直等著嗎?更極端的情況下,這個一直在洗布就不去換水,這便是死鎖的一個情形。沒關系,此時班主任來了,看到在場的情形,他決定了此時這個人應該去幹嘛,解決了用人沖突的問題,其作用類似管程。

閱讀全文

與管程定義了什麼數據結構相關的資料

熱點內容
如何預防數據傾斜 瀏覽:844
某廠產品市場上最多的是什麼 瀏覽:927
如何增強信息推送 瀏覽:922
怎麼讓交易貓快速介入仲裁 瀏覽:225
成都最大的小市場在哪裡 瀏覽:665
代理業務員是什麼意思 瀏覽:953
天津國際招標代理公司是什麼級別 瀏覽:992
解封qq號要發多少信息 瀏覽:615
如何投注理財產品 瀏覽:742
如何推廣自己的品牌產品 瀏覽:552
蘇州遠程指導技術咨詢包括什麼 瀏覽:625
用戶數據怎麼統計 瀏覽:840
如何寫機電產品競賽報名表 瀏覽:365
統一機油代理公司怎麼樣 瀏覽:503
塑料配色技術在哪裡學 瀏覽:832
大行程數據是什麼 瀏覽:642
綿陽職業技術學院籃球校隊如何 瀏覽:117
注冊股東信息寫哪個人 瀏覽:510
餐廳點餐程序如何設計 瀏覽:253
長樂啤酒哪裡批發市場 瀏覽:931