作業系統之程式管理:16、管程

一腔詩意千尋瀑發表於2020-10-05

思維導圖

在這裡插入圖片描述

為什麼引入管程?

在這裡插入圖片描述

例如上圖中,互斥與同步順序出錯就會產生死鎖

什麼是管程?

在這裡插入圖片描述

剖析一下上面的定義發現:
其實他對管程的定義和類的定義非常的相似
一組過程:就相當於類中的一組操作函式
共享資料結構說明和初始化:就相當於類中的變數宣告與初始化
管程的名字:相當於類中的類名

在來看一下,引入管程是因為在對程式實現互斥、同步操作時,P、V操作太過複雜,極易出錯。我們需要實現一種簡單的機制:通過呼叫一組過程(函式)直接實現程式的互斥、同步操作。而不在乎程式互斥、同步操作的具體實現。這樣,我們只需要對函式進行簡單呼叫就可以實現程式互斥、同步。(封裝思想)

管程的特點

在這裡插入圖片描述

用管程解決生產者-消費者問題

在這裡插入圖片描述

Java 中類似於管程的機制

在這裡插入圖片描述

相關文章