作業系統 生產者消費者題變形

2021-09-29 04:17:27 字數 1099 閱讀 1744

目錄

題目描述 互斥

同步 變形

同步家裡有乙個盤子

爸爸給盤子裡面放蘋果,女兒吃蘋果

媽媽給盤子裡面放桔子,兒子吃桔子

爸爸媽媽兒子女兒互斥盤子

設互斥訊號量mx初=1

1盤子中沒有蘋果時

當且僅當爸爸放蘋果 女兒取蘋果

2盤子滿時

當且僅當女兒或者兒子取爸爸媽媽都可以用

empty初=0

3盤子沒桔子

當且僅當媽媽放桔子 女兒取桔子

orange初=0

爸爸 :

p(empty) 

p(mx)

放蘋果v(mx)

媽媽

p(empty) 

p(mx)

放桔子v(mx)

v(orange)

兒子

p(orange)

p(mx)

取桔子

v(mx)

v(orange)

女兒

p(mx)

取蘋果v(mx)

盤子只可以放乙個水果

也就是說排除了互斥的情況

爸爸給盤子裡放水果(蘋果或者桔子)女兒或者兒子取

1當盤子空

當且僅當爸爸往盤子中放桔子,兒子才可以從盤子中取桔子,設orange初=0

2當盤子滿時

當且僅當女兒或者兒子從盤子裡面取水果爸爸才可以放水果入盤子

爸爸

p(empty) 

放水果

if(放桔子) {

v(orange)

}if(放蘋果){

女兒

取蘋果v(empty) 兒子

p(orange) 

取桔子v(empty)

作業系統,生產者 消費者問題詳解

生產者 消費者問題 分析問題,確定臨界區 設定互斥訊號量,初值為1 臨界區之前對訊號量執行p操作臨界區之後對訊號量執行v操作分析問題,找出 需要實現 一前一後 的同步關係 設定同步訊號量,初始值為0 在 前操作 之後執行v操作在 後操作 之前執行p操作分析問題,畫出前驅圖,把每一對前驅關係都看成乙個...

生產者消費者 生產者與消費者模式

一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...

生產者消費者

using system using system.collections.generic using system.threading namespace gmservice foreach thread thread in producers q.exit console.read public...