版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、习题5答案习题55.1何谓与时间有关的错误?举例说明之。答:并发进程的执行实际上是进程活动的某种交叉,某些交叉次序可能得到错误结果由于具体交叉的形成与进程的推进速度有关,而速度是时间的函数,因而将这种错误称为与时间有关的错误。例子略。5.2什么是临界资源?什么是临界区?答:一次仅允许一个进程使用的资源称为临界资源;在每个进程中,访问临界资源的那段程序称为临界区。5.3试分析临界区的大小与系统并发性之间的关系。答:关于同一纽变量的临界区是不能并发执行的代码,临界区越大,并发性越差,因而编写并发程序应尽量缩小临界区域范围,5.4为何开关中断进程互斥方法仅在单CPU系统中是有效的?答:关中断方法不适
2、用于多CPU系统,因为关中断只能保证CPU不由一个进程切换到另外一个进程,从而防止多个进程并发地进入公共临界区域。但即使关中斷后,不同进程仍可以在不同CPU上并行执行关于同一组共享变量的临界区代码.5.5进程的互斥和同步有什么异同点?答:进程的同步和互斥是指进程在推进时的相互制约关系进程同步源于进程合作,是进程间共同完成一项任务是直接发生相互作用的关系。是进程之间的直接制约关系。进程互斥源于对临界资源的竞争,是进程之间的间接制约关系。5.6试说明进程互斥、同步和通信三者之间的关系。答:进程的同步和互斥是指进程在推进时的相互制约关系,已经在上题中给出了详细的解答。由于进程间存在制约关系,为了保证
3、进程的正确运行以及相互合作进程间的信息交换,就需要进程之间进行通信。进程通信是指进程间的信息交换,分为高级通信和低级通信,高级通信以较高的效率传送大批数据进程之间的互斥与同步也是一种通信,由于交换的信息量很小,因此这种进程通信称为低级进程通信。5.7同步机构应遵循哪些基本准则?答:a.空闲让进.忙则等待.有限等待.(1.让权等待.5.8试从物理概念上说明信号量P、V操作的含义。答:P(S)表示申请一个资源,S.value0表示有资源可用,其值为资源的数目;S.value=O表示无资源可用;S.value,则IS.valuel表示S等待队列中的进程个数.Y(S)表示释放一个资源,信号量的初值应该
4、大于等于0。5.9由V操作唤醒的进程是否一定能够直接进入运行状态?举例说明之。答:否.一般来说,唤醒是将进程状态由等待状态变成就绪状态,而就绪进程何时获得处理机则是由系统的处理机调度策略确定的。如果采用抢占式优先级调度算法,并且被唤醒的进程是当前系统中优先级最高的进程,那么该进程将被调度执行,其状态变成运行态。如果该进程不是系统中优先级最高的进程或系统釆用其它调度算法,那么该进程不会被调度执行,其状态将维持在就绪态。5.10我们为某临界区设置一把锁W,当W二1时,表示关锁;W二0时,表示锁打开。试写出开锁原语和关锁原语,并利用它们去实现互斥。答:开锁原语:voidunlock(W)W=o,关锁
5、原语:voidlock(W)while(W=l),w=r,利用开关锁原语实现互斥:semaphoreW=0,imin()cobeginPn()/*并发的进程Pl、P2Pn*/loclW),临界区,uiilockW),其余部分,coend5.11试写出相应的程序來描述图5.8所示的前趋图。图5.8前趋图答:(a丿设6个同步信号量fl、f2、f3、f4、F5、F6分别表示进程S】、S2.S3、S4.S5、Se是否执行完成,其初值均为0。这7个进程的同步描述如下:主程序如下:semaphorefl=f2=f3=f4=F5=f6=0;mam()cobeginSiO,S2O,SOSQSf,s(),S7(
6、方coend各个进程的语句形式如下:voidSi()voidS2()P(fl),V(f2),V(f2),voidS3OP(fl),V(,voidS4()P(f2),voidS)P(f2),V(f5),voidSP(f3),V(f6),voidSt()P(f4),P(f5丿,P(f6),(b)另一种做法:设7个同步信号量f2、f4、f5、f6、f7、f8分别表示进程S“S3、SS5.S6.S7.Sg是否可以开始执行,其初值均为0。semaphoeF2=f3=f4=F5=f6=f7=f8=0;主程序:略(类似a)这8个进程的语句形式如下voidSi()voidSvoidSi()voidS2()P(
7、f2),V(,V(f4),V(f5),voidS)voidS&JP(f5丿,P(f6),V(f8丿,voidSQvoidS4()P(f3丿,P(f4),V(f6),V(f8丿,V(f7),voidSt()voidSgOP(f7),p佝,p佝,V(f8);p佝,p佝,5.12在生产者一消费者问题中,如果缺少了V(full)或V(e叩ty),对执行结果会有何影响?答:生产者可以不断地往缓冲池送消息,如果缓冲池满,会覆盖原有数据,造成数据混乱。而消费者始终因P(full)操作将消费进程直接送入进程链表进行等待,无法访问缓冲池,造成无限等待。5.13在生产者一消费者问题中,如果将两个P操作即P(ful
8、l)和P(mutex)互换位置;或者是将V(full)和V(mutex)互换位置,结果会如何?答:a.容易造成死锁。b.从逻辑上来说应该是一样的。5.14画图说明管程由哪几部分组成?为什么要引入条件变量?答:图略.因为调用wait原语后,使进程等待的原因有多种,为了区别它们,引入了条件变量.5.15设S1和S2为两个信号灯变屋,卜列八组P、V操作哪些可以同时进行?哪些不能同时进行?为什么?(1)P(S1),P(S2)(3)V(S1),P(S2)(5)P(S1),P(S1)(7)V(S1),P(S1)(2)P(S1),V(S2)(4)V(S1),V(S2)(6)P(S2),V(S2)(8)V(S
9、2),V(S2)答:能同时进行的包括:、(3)、(4)。这些操作涉及不同信号量,属于关于不同组共享变量的临界区。不能同时进行的包括:(5)、(6)、(7)、(8)。这些操作涉及相同的信号量,属于关于同一组共享变量的临界区。5.16对生产者一消费者问题,假设缓冲区是无界的,试用信号灯与PV操作给出解法。答:由于是无界缓冲区,所以生产者不会因得不到缓冲区而被阻寒,不需要对空缓冲区进行管理,可以去掉在有界缓冲区中用来管理空缓冲区的信号量及其PV操作.Semaphoremutex_in=l:Semaphoremutex_out=l;Semaphoreempty=O;intin二0,out二0;生产者活
10、动:while生产者活动:whileproducenextproduct;P(mutex_in);Addtheproducttobufferin;in卄;V(mutex_in);消费者活动:曲订e(1)P(en?3ty);P(mutex_out);Taketheproductfrombufferoutout+;V(mutex_out);V(enty);5.17试用信号灯与PV操作实现司机与售票员之间的同步问题。设公共汽车上有一个司机和一个售票员,其活动如卜图所示.司机的活动Pl:俗栗员的活动P2:While(1)While(1)启动车辆;关车门;正常行车;售票;到站停车;开车门;为了安全起见,
11、显然要求:(1)关车门后方能启动车辆;(2)到站停车后方能开车门。答:定汶两个信号量,一个信号量start表示是否允许司机启动车辆,另一个信号量open表示是否允许售票员开车门。初始状态是车停在始发站,车门开着,等待乘客上车。因此,两个信号量的初值都是0。semaphorestart=0;semaphoreopen=0;司机的活动semaphoreopen=0;司机的活动Pl:wh订e(1)P(start);启动车辆;正常行车;到站停车;V(open);售票员的活动P2曲订e(1)关车门;V(start);售票;P(open);开车门;5.18考虑一个理发店,只有一个理发师,只有N张可供顾客等
12、待理发的椅子,如果没有顾客,则理发师睡觉:如果有一顾客进入理发店发现理发师在睡觉,则把他叫醒,试用信号量设计一个协调理发师和顾客的程序。答:题目中要求描述理发师和顾客的行为,因此需要两类进程Barber()和Customer()分别描述理发师和顾客的行为。当理发师睡觉时顾客进来需要唤醒理发师为其理发,当有顾客时理发师为其理发,没有的时候理发师睡觉,因此理发师和顾客之间是同步的关系,由于每次理发师只能为一个人理发,且可供等侯的椅子有限只有n个,即理发师和椅子是临界资源,所以顾客之间是互斥的关系。引入3个信号量和一个控制变量:控制变量waiting记录等候理发的顾客数,初值均为0;信号量custo
13、mers记录等候理发的顾客数,并用作阻塞理发师进程,初值为0;信号量barbers记录正在等候顾客的理发师数,并用作阻寒顾客进程,初值为0;信号量mutex用于互斥,初值为1.PV操作代码如下:intwaiting=0;等候理发的顾客数intchairs=n;/为顾客准备的椅子数semaphorecustomers=0,barbers=0,mutex=1;barber()while(TRUE);P(cutomers);P(mutex);waiting=waiti;V(barbers);V(mutex);cutwhile(TRUE);P(cutomers);P(mutex);waiting=wa
14、iti;V(barbers);V(mutex);cuthair();customer()P(mutex);if(waitingchairs)理完一人,还有顾客吗?/若无顾客,理发师睡眠进程互斥等候顾客数少一个理发师去为一个顾客理发开放临界区正在理发进程互斥waiting=waiting+1;V(customers);V(mutex);P(barbers);waiting=waiting+1;V(customers);V(mutex);P(barbers);gethaircut();/等候顾客数加1/必耍的话唤醒理发师开放临界区无理发师,顾客坐着养神/一个顾客坐卜理发/else/人满了,走吧/人
15、满了,走吧!519进程Z间有哪些基本的通信方式?它们分别有什么特点?适用丁哪些场合?答:进程通信根据交换信息量的多少分为高级通信和低级通信。低级通信一般只传送一个或几个字节的信息,以达到控制进程执行速度的作用(如PV操作);高级通信则要传送大量数据,目的不是为了控制进程的执行速度,而是为了交换信息。高级进程通信方式有很多种,大致可归并为三类:共享存储器.管道文件和消息传共享存储器:在内存种分配一片空间作为共享存储区。需要进行通信的进程把它附加到自己的地址空间中,不需要时则把它取消。管道文件:它是连接两个命令的一个打开文件。一个命令向该文件中写入数据,为写者;另一个命令从该文件中读出数据,为读者
16、消息传递:它以消息为单位在进程间进行数据交换。5.20试比较进程间的低级通信工具与高级通信工具。答:用户用低级通信工具实现进程通信很不方便,因为其效率低,通信对用户不透明,所有的操作都必须由程序员来实现。而高级通信工具则可弥补这些缺陷,用户可直接利用操作系统所提供的一组通信命令,高效地传送大量的数据。5.21试用信箱通信方式解决生产者一消费者问题。答:在本题解决方案中,使用了两个信箱mayproduce和mayconsume,两个信箱的大小均为N,即其中最多可以存放N条消息。当生产者生产了数据时,它将数据作为消息发送到信箱mayconsume,只要该信箱中有一条消息,消费者就可以开始消费。信箱
17、mayproduce最初填满了空消息,空消息的条数等于信箱的容量与mayconsume信箱中消息条数之差(其作用类似于用信号量机制解决生产者一消费者问题中的empty).当生产者向消费者发送一条消息时,mayproduce信箱中的消息条数减少,mayconsume信箱中的消息条数增加;当消费者接收一条消息时,mayconsume信箱中的消息条数减少,而mayproduce信箱中的消息条数增加系统中的消息总条数保持不变。constintcapacity=N;/*N为信箱容量*/null=.;广这里“”为空消息/inti;main()create_mailbox(mayproduce);/*创建信
18、箱mayproduce*/create_mailbox(mayconsume);for(i=1;i=capacity;i+)sendfmayproduce,nuII);cobeginproducer);consumer();coendproducer()厂生产者进程”/messagepmsg;/*message为消息类型負/while(true)receive(mayproduce,pmsg);厂等待空消息/pmsg=produce();/*生产一条消息*/send(mayconsume,pmsg);consumer()广消费者进程Tmessagecmsg;while(true)receive(mayconsume,cmsg);consume(cmsg);厂取出一条消息供消费*/send(mayproduce,nuII);5.22在消息传递
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民办合肥财经职业学院《教育法学》2025-2026学年期末试卷
- 江西工程学院《教育学原理》2025-2026学年期末试卷
- 2026年太原市尖草坪区社区工作者招聘考试备考题库及答案解析
- (2026)设计院规章制度(3篇)
- 2026年咸阳市秦都区城管协管招聘笔试备考题库及答案解析
- 2026年莱芜市钢城区社区工作者招聘考试备考试题及答案解析
- 2026年宜昌市夷陵区社区工作者招聘考试参考题库及答案解析
- 2026年江西省社区工作者招聘考试参考试题及答案解析
- 2026年江苏省宿迁市社区工作者招聘考试模拟试题及答案解析
- 2026年深圳市南山区社区工作者招聘考试模拟试题及答案解析
- 2026年湖南省新高考教学教研联盟(长郡二十校联盟)高三语文4月第二次联考(含参考答案)
- 2026年统编版小学二年级道德与法治下册每课教学设计(含目录)
- 决胜未来:中美六大未来产业演进图景
- 新时代廉洁文化建设三年行动计划(2026-2028年)
- DB44∕T 2792-2025 城镇内涝风险评估与治理技术标准
- Unit5Nature'sTemper(第3课时)SectionA4a-4d课件人教版英语八年级下册
- 创建鲁班奖工程实施指南
- 2025版建筑工程建筑面积计算规范
- 2026年市公务用车服务集团招聘考试笔试试题(含答案)
- 2026年顺德职业技术学院单招职业倾向性考试题库及答案详解一套
- 5.3民族区域自治制度 课件 2025-2026学年统编版道德与法治八年级下册
评论
0/150
提交评论