有乙個理髮師,一把理髮椅和 n 把供等候理髮的顧客坐的椅子。
如果沒有顧客,則理髮師便在理髮師椅子上睡覺;
當乙個顧客到來時,必須喚醒理髮師進行理髮;
如果理髮師正在理髮時又有顧客來到,則如果有空椅子可坐,他就坐下來等,如果沒有空椅子,他就離開。
為理髮師和顧客各編一段程式(偽**)描述他們的行為,要求不能帶有競爭條件。
int wait =0;
//顧客等待的數量
semaphore mutex =1;
//互斥訪問 wait
semaphore barber =0;
//理髮師訊號量
semaphore customer =0;
//顧客的訊號量
//理髮師
void
barber()
}//顧客
void customer (
)else
}}
作業系統程序同步之睡覺的理髮師問題
問題描述 理髮店理有一位理髮師 一把理髮椅和n把供等候理髮的顧客坐的椅子,要求 如果沒有顧客,理髮師便在理髮椅上睡覺 乙個顧客到來時,它必須叫醒理髮師 如果理髮師正在理髮時又有顧客來到,則如果有空椅子可坐,就坐下來等待,否則就離開問題分析 理髮師和顧客是同步關係,理髮師等待顧客來,然後為顧客服務,顧...
睡眠理髮師問題
一 問題描述 經典理髮師問題 假設後街有家理髮店,店裡有乙個理髮師 一把理髮椅和n把等候理髮的顧客椅子。1 如果沒有顧客則理髮師便在理髮椅上看報紙 2 當有乙個顧客到達時,首先檢視理髮師在幹什麼,如果在看報紙則告訴理髮師理髮,然後坐到理髮椅上開始理髮 如果理髮師正在理髮,則檢視是否有空的椅子可坐,如...
c 實現理髮師問題。。
include include include include include define max count 10 最多理髮人數 define chairs 4 店中椅子的總數目 using namespace std intwaiting 0 等待理髮的顧客人數 char close door...