生產者 消費者 計算機作業系統

2021-08-31 19:59:44 字數 722 閱讀 5736

var mutex,empty,full:semaphore:=1,n,0; // 定義三個訊號量

buffer:array[0,...,n-1]of item; // 定義緩衝池,容量為n

in,out:integer:=0,0;

begin

parbegin

proceducer:begin // 生產者

repeat..

.producer an item nextp; // 生產乙個產品..

.wait(empty); // 申請乙個空緩衝區

wait(mutex); // 申請緩衝池的使用權

buffer(in):=nextp; // 將產品放入緩衝池中

signal(mutex); //釋放緩衝池使用權

signal(full); // 釋放乙個滿緩衝區

until false;

endconsumer:begin

repeat

wait(full);

wait(mutex);

nextc:=buffer(out);

out:=(out+1)mod n;

signal(mutex);

signal(empty);

consumer the item in nextc;

until false;

endparend

end

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

目錄 題目描述 互斥 同步 變形 同步家裡有乙個盤子 爸爸給盤子裡面放蘋果,女兒吃蘋果 媽媽給盤子裡面放桔子,兒子吃桔子 爸爸媽媽兒子女兒互斥盤子 設互斥訊號量mx初 1 1盤子中沒有蘋果時 當且僅當爸爸放蘋果 女兒取蘋果 2盤子滿時 當且僅當女兒或者兒子取爸爸媽媽都可以用 empty初 0 3盤子...

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

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

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

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