• 大小: 153KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-01-07
  • 语言: C/C++
  • 标签: 操作系统  pv原理  C  

资源简介

包含操作系统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

评论

共有 条评论