資源簡介
包含操作系統pv原理9道經典習題,及偽碼解答,還有理發師問題C語言解答。
代碼片段和文件信息
#include??
#include??
#include??
#include??
#define?MAX?6?//最大椅子的數量
sem_t?barber;?
sem_t?customer;?
sem_t?mutex;?//互斥信號量
int?count?=?0;?//計數:等待理發的顧客數
int?chairs?=?MAX;?
void?*Barber(void?*arg){?
while(count>-1){?
printf(“理發師等待顧客...\n“);?
sem_wait(&customer);?//等待顧客
printf(“理發師:正在理發中...\n“);?
sem_wait(&mutex);?//理發結束
count--;?
chairs++;?
printf(“理發師理完了,此時正在等待的顧客數為:%d\n“count);?
sem_post(&barber);?
sem_post(&mutex);?
printf(“歡迎下次光臨!\n“);?
}?
}?
void?*Customer(void?*arg){?
sem_wait(&mutex);
printf(“請顧客%d坐\n“(int?*)(arg+1));?
if(chairs?>?0){?//如果當前有空余座位
count++;?//顧客數量+1?
chairs--;?//占用一個座位
printf(“正在等待的顧客為%d,請理發師加油!\n“count);?
sem_post(&customer);?//等待理發,喚醒理發師
sem_post(&mutex);?//允許其他顧客進門
sem_wait(&barber);?//當理發師空閑時開始理發
}else?{?//沒有空余座位,準備離
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-11-04?20:56??操作系統pv原理9道經典偽碼及理發師問題C語言實現\
?????文件???????35840??2015-11-04?19:58??操作系統pv原理9道經典偽碼及理發師問題C語言實現\9道題答案.doc
?????文件??????155655??2013-12-18?09:40??操作系統pv原理9道經典偽碼及理發師問題C語言實現\ex01.pv.pdf
?????文件????????1612??2015-11-04?20:47??操作系統pv原理9道經典偽碼及理發師問題C語言實現\理發師.c
- 上一篇:vc++最小化到托盤與啟動唯一
- 下一篇:Sim 卡驅動
評論
共有 條評論