一、飛機票問題
var a : array[1..m] of integer;
mutex : semaphore;
mutex:= 1;
cobegin
process pi
var xi:integer;
begin
l1: 按旅客定票要求找到a[j];
p(mutex);
xi := a[j];
if xi>=1 then
begin
xi:=xi-1;a[j]:=xi;
v(mutex); ;
end;
else begin
v(mutex); ;
end;
goto l1;
end;
coend
二、睡眠的理髮師問題
理髮店理有一位理髮師、一把理髮椅和n把供等候理髮的顧客坐的椅子
如果沒有顧客,理髮師便在理髮椅上睡覺
乙個顧客到來時,它必須叫醒理髮師
如果理髮師正在理髮時又有顧客來到,則如果有空椅子可坐,就坐下來等待,否則就離開
int waiting=0; //等候理髮顧客坐的椅子數
int chairs=n; //為顧客準備的椅子數
semaphore customers, barbers, mutex;
customers=0; barbers=0; mutex=1;
process barber( )
}process customer_i( )
else v(mutex);
goto l;
end;
process q
begin
while(true)
end;
五、吸菸者問題(patil,1971)。
三個吸菸者在乙個房間內,還有乙個香菸**者。為了製造並抽掉香菸,每個吸菸者需要三樣東西:菸草、紙和火柴,**者有豐富貨物提供。三個吸菸者中,第乙個有自己的菸草,第二個有自己的紙和第三個有自己的火柴。**者隨機地將兩樣東西放在桌子上,允許乙個吸菸者進行對健康不利的吸菸。當吸菸者完成吸菸後喚醒**者,**者再把兩樣東西放在桌子上,喚醒另乙個吸菸者。
semaphor:s0,s1,s2,s3;
s0=1;s1=0;s2=0;s3=0;
process businessman
process consumer (k)
P V操作經典問題
1.設有一台計算機,有兩條i o通道,分別接一台卡片輸入機和一台印表機。卡片機把一疊卡片逐一輸入到緩衝區b1中,加工處理後再搬到緩衝區b2中,並在印表機上列印。解 0 分析題意,畫出草圖 1 設定三個程序 i程序 負責把卡片上的資訊輸入緩衝區b1 p程序 負責從緩衝區b1中取到資訊並加工處理,送到緩...
PV操作 經典問題分析
為了提高在實際問題中分析和思考多個執行緒之間同步互斥問題的能力,接下來將講解 pv操作,這也是作業系統中的重點和難點。本文將會先簡要介紹下 pv操作的 和基本使用方法,然後再通過兩道經典的計算機考研真題 放水果和安全島來示範如何運用 pv操作。先講講pv操作的起源和用法。1962年,荷蘭學者dijk...
PV操作 經典問題分析
為了提高在實際問題中分析和思考多個執行緒之間同步互斥問題的能力,接下來將講解 pv操作,這也是作業系統中的重點和難點。本文將會先簡要介紹下 pv操作的 和基本使用方法,然後再通過兩道經典的計算機考研真題 放水果和安全島來示範如何運用 pv操作。先講講pv操作的起源和用法。1962年,荷蘭學者dijk...