第二章补充习题.doc
《第二章补充习题.doc》由会员分享,可在线阅读,更多相关《第二章补充习题.doc(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1、桌上有一只盘子,最多可容纳两个水果,每次只能放入或取出一个水果。爸爸专向盘中放苹果,妈妈放专向盘中放桔子;两个儿子专等吃盘子中的桔子,两个女儿专等吃盘子中的苹果。请用P、V操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。答:本题中需设置4个信号量,其中empty表示还可以向盘中放几个水果,其初值为2;apple对应已放入盘中的苹果,orange对应已放入盘中的桔子,它们的初值均为0;mutex用来实现对盘子的互斥访问(包括放和取),其初值为1。相应的进程可描述为:father()while(1) P(empty); P(mutex); 向盘中放苹果; V(mutex); V(appl
2、e);mother()while(1) P(empty); P(mutex); 向盘中放桔子; V(mutex); V(orange);son () /* 两个儿子对应同一段代码 */while(1) P(orange); P(mutex); 从盘中取桔子; V(mutex); V(empty); 吃桔子;daughter() /* 两个女儿对应同一段代码 */while(1) P(apple); P(mutex); 从盘中取苹果; V(mutex); V(empty); 吃苹果;2、某招待所有100个床位,住宿者住入要先登记(在登记表上填写姓名及床位号),离去时要撤消登记(在登记表上删去姓名
3、和床位号)。请给出住宿登记及撤消登记过程的算法描述。答:本题中,被住宿者竞争的资源主要有床位和住宿登记表两种,可分别为它们设置初值为100的信号量bed及初值为1的信号量mutex。住宿登记过程的算法描述如下:P(bed);P(mutex);在登记表上填写姓名及床位号;v(mutex);撤消登记过程的算法描述如下:P(mutex);在登记表上删去姓名和床位号;V(mutex);V(bed);3、一阅览室,读者进入阅览室必须先在一张登记表(TB)上登记,该表为每一座位设一个表目,读者离开时要消掉其登记信息,阅览室共有100个座位。为了描述读者的动作,请用Pascal语言和P、V操作写出进程间的同
4、步算法。约定:(1)flag的值:0座位空闲,1座位被占用。(2)用语句i=getflag(0)可搜索到一个空座位i,用语句i.falg=0或1可给标志位赋值。(3)用i=getname(readername)可搜索到某读者所登记的座位号i;用i.name=0或i.name=readername可给姓名字段赋值,0表示消除读者姓名。(4)计数信号量用count,互斥信号量用mutex。 答:本题中,读者要竞争座位、登记表两种资源,故可分别为它们设置初值为100的信号量count,以及初值为1的信号量mutex。读者的动作可描述为:reader() while(1)P(count); /* 申请
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 补充 习题
限制150内