- 26
- 0
- 约2.65千字
- 约 12页
- 2020-05-08 发布于河北
- 举报
大学男女洗澡问题
第四小组
问题描述
假设一个大学为了卖弄其政治上的正确性,准备把美国最高法院的信条“平等但隔离其本身就是不平等”运用在种族上也运用在性别上,从而结束校园内长期使用的浴室按性别隔离的做法。但是,为了迁就传统习惯,学校颁布法令:当有一个女生在浴室里,那么其他女生可以进入,但是男生不行。反之亦然。在每个浴室的门上有一个滑动指示符,表示当前处于以下的三种可能状态之一:空 有女生 有男生用你偏好的编写伪代码(女生进入,男生进入,女生离开,男生离开)请用P.V操作
PV操作
PV操作及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的。信号量S是一个整数,S大于等于零时代表可供并发进程使用的资源实体数,但S小于零时则表示正在等待使用共享资源的进程数。
P操作申请资源:(1)S减1;(2)若S减1后仍大于等于零,则进程继续执行;(3)若S减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转入进程调度。
V操作 释放资源:(1)S加1;(2)若相加结果大于零,则进程继续执行;(3)若相加结果小于等于零,则从该信号的等待队列中唤醒一个等待进程,然后再返回原进程继续执行或转入进程调度。
问题分析(流程图)
设计思路(以男生为例)
一、当一个男生想进入澡堂的时候,他要判断:
①澡堂是不是满了 P(empty)
②澡堂里有没有女生 P(g)
如果满了,或者有女生,那么P操作就会调用阻塞原语来阻塞男生进程,其结果表现为男生必须等待
其中,g是根据女生人数生成的一个信号量。
二、如果男生可以进入澡堂,即P(empty)和P(g)均未阻塞
//男生进入澡堂
boynum++;
三、进入澡堂之后,调用V(mutex)释放资源,来允许其他人进入
四、//洗澡,离开 boynum--;
五、如果最后一个男生洗完澡之后,就通知正在等待的女生进入(如果有的话)(进程通信)
if(boynum==0) V(b);
六、释放澡堂资源
设计要点和关键技术
线程的同步与互斥
信号量上的P、V操作算法
使用JAVA开发平台
伪代码
int boynum=0; //表示澡堂中男生人数,初始值为0
int girlnum=0; //表示澡堂中女生人数,初始值为0
boolean b=1; //表示澡堂中是否有男生,b=1表示没有男生,b=0表示有男生
boolean g=1; //表示澡堂中是否有女生,g=1表示没有女生,g=0表示有女生
int empty=n; //表示澡堂的容量,最多能容纳多少人,表示空位置的个数
boolean mutex=1; //互斥信号量
boy(){ //男生进程
P(mutex); //控制男女生不能同时进入澡堂
p(empty); //进入条件一:澡堂满时不能进入
g=have(girlnum); //当girlnum0时(有女生),返回0;当girlnum=0时(没女生),返回1
P(g); //进入条件二:有女生时不能进入
//男生进入澡堂
boynum++;
V(mutex); //放在这个位置是为了避免澡堂只被一个人占用的情况
//洗澡,离开
boynum--;
if(boynum==0) V(b); //最后一个男生离开澡堂后,即boynum=0,就通知女生进入(唤醒正在等待的女生进程)
V(empty);
}
girl(){ //女生进程
P(mutex);
P(empty);
b=have(boynum);
P(b);
//女生进入澡堂
girlnum++;
V(mutex);
//洗澡,离开
girlnum--;
if(girlnum==0) V(g);
V(empty);
}
boolean have(int num){
if(num0)
您可能关注的文档
最近下载
- 22G101 三维彩色立体图集.docx VIP
- 旅游景区质量等级划分与评价细则.doc VIP
- 深度解析(2026)《ISO 277992016 Health informatics — Information security management in health using ISOIEC 27002》(20标准解读.pptx VIP
- 大学生创新与创业基础教程(大学生创新创业教育课程)全套教学课件.pptx
- 22G101图集下载的文档.pptx VIP
- 《大学生创新创业教育(第三版)微课版》全套教学课件.pptx
- 中国集装箱行业十四五发展分析及投资前景与战略规划研究报告2025-2028版.docx VIP
- gnss全球导航卫星系统.pptx VIP
- 重庆市2026年高二(上)期末联合检测(康德卷)数学+答案.pdf VIP
- 2025年11月26日达州兴川能源有限公司国家电投川东北高效清洁煤电综合利用一体化项目21000MW新建燃煤机组配套500kV升压站工程.pdf VIP
原创力文档

文档评论(0)