欢迎来到天天文库
浏览记录
ID:55513290
大小:39.50 KB
页数:1页
时间:2020-05-15
《作业1-进程同步-答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、操作系统作业1、用记录型信号量解决以下问题,用类C语言编写进程同步算法。司机P1售票员P2REPEATREPEAT启动关门正常运行售票到站停开门UNTILFALSEUNTILFALSE2、两个进程合作完成数据计算和打印工作,计算进程未计算完就不可打印,反之也然,双方共用一个缓冲区,写出此算法。3、桌子上有一只盘子,最多可容纳两个水果,每次只能放人或取出一个水果。爸爸专向盘子中放苹果(apple),妈妈专向盘子中放桔子(orange),两个儿子专等吃盘子中的桔子,两个女儿专等吃盘子中的苹果。请用P、V操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。4、桌子上有一只盘子,每次只能放入
2、一只水果。爸爸专向盘中放苹果,妈妈专向盘中放桔子,一个儿子专等吃盘中的桔子,一个女儿专等吃盘中的苹果。请利用P、V操作写出父亲、母亲、儿子、女儿进程的同步算法。5、设有四个并发执行的进程P1、P2、P3、p4,其前趋图如下,试用信号量实现这四个进程同步。1Vars1,s2:semaphore:=0,0;parbegin司机P1REPEATwait(s1)启动正常运行到站停Signal(s2)UNTILFALSE售票员P2REPEAT关门Signal(s1)售票Wait(s2)开门UNTILFALSEparend2Varempty,full:semaphore:=1,0;parbegin
3、Calculate:beginrepeatwait(empty);计算;signal(full);untilfalse;endPrint:beginrepeatwait(full);打印;signal(empty);untilfalse;endparend3盘子为互斥资源,因可以放两个水果,empty初值为2;再设信号量mutex初值为1,控制对盘子的互斥访问;apple表示盘中苹果个数,orange表示盘中桔子个数,初值均为0。Varmutex,empty,apple,orange:semaphore:=1,2,0,0;parbeginFather:beginp(empty);P(m
4、utex);放苹果;V(mutex);V(apple);end;Mother:beginP(empty);P(mutex);放桔子;V(mutex);V(orange);End;Daughter:beginp(apple);P(mutex);取苹果;V(mutex);V(empty);End;Son:beginP(orange);P(mutex);取桔子;V(mutex);V(empty);End;Parend4在本题中,应设置三个信号量s、so、sa信号量s表示盘子是否为空,其初值为1;信号量so表示盘中是否有桔子,其初值为0;信号量sa表示盘中是否有苹果,其初值为0.同步描述如下:
5、vars,so,sa:semaphone:=1,0,0;parbeginfather();mother();son();daughter();parendfather()wait(s);将水果放入盘中;signal(sa);mother()wait(s);将水果放入盘中;signal(so);son()wait(so);从盘中取出桔子;signal(s);吃桔子;daughter()wait(sa);从盘中取出苹果;signal(s);吃苹果;5vara,b,c,d:semaphore:=0,0,0,0;parbeginP1:begin…signal(a);signal(b);endP
6、2:beginwait(a);…signal(c);endP3:beginwait(b);…signal(d);endP4:beginwait(c);wait(d);…endParend第1页共1页
此文档下载收益归作者所有