资源简介
包含操作系统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 卡驱动
相关资源
- crc16/32计算(crc16_32.c)
- libevent(timeout.cpp)
- TCP/IP与串口调试
- H264 封包解包 CH264_RTP_PACK
- MFC视频播放器源码(支持avi/wma/mp3等格
- CreatBitmap图片合成源码
- 基于opencv的模板匹配代码
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
- QT CAN例程
- mfc绘图大全(画直线、矩形、椭圆)
- c++ 虚拟摄像头
- 使用Qt实现Excel读取工具
- Tcp自定义命令调试工具
- vs2008 can总线通讯源码
- MFC控件重绘
- Qt TCP聊天室demo
- hook,捕获所有案件,查找所有窗口,
- C语言课设计算器
- C语言 学生兴趣管理系统
- (学习)VS2010之MFC入门到精通教程
- c语言实现火车订票系统(控制台)源
- 模拟笔记本电脑(C语言实现)
- c++ 简易贪吃蛇源码
- c语言实现竞技比赛打分系统
- 高精度加法(c++代码)
- fluent UDF求解圆柱涡致振动问题(VIV
- KMP算法C语言程序
- C++调用百度地图案例
评论
共有 条评论