作業系統設計與實現 第二章 程序(五)

2021-07-12 05:55:29 字數 481 閱讀 2621

管程是由過程、變數及資料結構等組成的集合,它們組成乙個特殊的模組或軟體包。

程序可在任何需要時呼叫管程中的過程,但它們不能在管程外的過程中直接訪問管程中的資料結構。

管程有乙個很重要的特性,這使得它們能有效地完成互斥:任意時刻管程中只能有乙個活躍程序。典型地,當乙個程序呼叫管程中的過程時,前幾條指令將檢查在管程中是否有其他的活躍程序。如果有,呼叫程序將其掛起,直到另乙個程序離開管程。如果沒有,則呼叫程序以便進入管程。

對進入管程實現互斥由編譯器負責,但通常的做法是用乙個互斥或二進位制訊號量。因為是由編譯器而非程式設計師來安排互斥,出錯的可能性要小得多。

這裡還需要一種辦法使得程序在無法繼續執行時被阻塞。解決辦法在於引入條件變數以及相關的兩個操作:wait和signal。當乙個管程過程發現它無法繼續時,它在某些條件變數上執行wait,如full。這個動作引起呼叫程序阻塞。它允許另乙個先前被擋在管程外邊的程序現在進入管程。

《現代作業系統》第二章程序概念整理

程序的終止 程序的狀態執行態 占用cpu時 就緒態 準備好占用cpu了 阻塞態 除非被訊號喚醒進入就緒臺,否則一直被掛起,無法占用cpu 執行緒同步訪問共享資源 和多個程序訪問共享資源一樣,執行緒作為程序的執行單位,並且共享程序的資源,也需要解決互斥訪問程序資源的問題。類似生產者和消費者程序共享臨界...

作業系統 第二章程序的控制與描述(5)

通訊鏈路 communication link 要在傳送程序和接收程序之間能進行通訊,必須在兩者之間建立一條通訊鏈路。兩種方式 顯式的 建立連線 和拆除鏈路。用命令 原語 請求系統做。這種方式主要用於計算機網路中 系統自動地建立一條鏈路。無須明確提出建立鏈路的請求,只須利用系統提供的傳送命令 原語 ...

第二章 程序通訊

1 低階通訊 程序之間的互斥和同步 訊號量機制是有效的同步工具,但作為通訊工具缺點如下 1 效率低 通訊量少 2 通訊對使用者不透明 程式設計師實現,作業系統只提供共享儲存器供 操作 2 高階程序通訊 使用者直接利用作業系統提供的一組通訊命令,高效地傳送大量資料的通訊方式。作業系統隱藏了程序通訊的細...