欢迎来到天天文库
浏览记录
ID:51503951
大小:195.79 KB
页数:8页
时间:2020-03-25
《计算机操作系统教程--核心与设计原理习题5答案 (2).pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、习题5答案习题55.1何谓与时间有关的错误?举例说明之。答:并发进程的执行实际上是进程活动的某种交叉,某些交叉次序可能得到错误结果。由于具体交叉的形成与进程的推进速度有关,而速度是时间的函数,因而将这种错误称为与时间有关的错误。例子略。5.2什么是临界资源?什么是临界区?答:一次仅允许一个进程使用的资源称为临界资源;在每个进程中,访问临界资源的那段程序称为临界区。5.3试分析临界区的大小与系统并发性之间的关系。答:关于同一组变量的临界区是不能并发执行的代码,临界区越大,并发性越差,因而编写并发程序应尽量缩小临界区域范围。5.4为何开关中断进程互斥方法
2、仅在单CPU系统中是有效的?答:关中断方法不适用于多CPU系统,因为关中断只能保证CPU不由一个进程切换到另外一个进程,从而防止多个进程并发地进入公共临界区域。但即使关中断后,不同进程仍可以在不同CPU上并行执行关于同一组共享变量的临界区代码.5.5进程的互斥和同步有什么异同点?答:进程的同步和互斥是指进程在推进时的相互制约关系。进程同步源于进程合作,是进程间共同完成一项任务是直接发生相互作用的关系。是进程之间的直接制约关系。进程互斥源于对临界资源的竞争,是进程之间的间接制约关系。5.6试说明进程互斥、同步和通信三者之间的关系。答:进程的同步和互斥是
3、指进程在推进时的相互制约关系,已经在上题中给出了详细的解答。由于进程间存在制约关系,为了保证进程的正确运行以及相互合作进程间的信息交换,就需要进程之间进行通信。进程通信是指进程间的信息交换,分为高级通信和低级通信,高级通信以较高的效率传送大批数据。进程之间的互斥与同步也是一种通信,由于交换的信息量很小,因此这种进程通信称为低级进程通信。5.7同步机构应遵循哪些基本准则?答:a.空闲让进.b.忙则等待.c.有限等待.d.让权等待.5.8试从物理概念上说明信号量P、V操作的含义。答:P(S)表示申请一个资源,S.value>0表示有资源可用,其值为资源的
4、数目;S.value=0表示无资源可用;S.value<0,则
5、S.value
6、表示S等待队列中的进程个数。V(S)表示释放一个资源,信号量的初值应该大于等于0。5.9由V操作唤醒的进程是否一定能够直接进入运行状态?举例说明之。答:否。一般来说,唤醒是将进程状态由等待状态变成就绪状态,而就绪进程何时获得处理机则是由系统的处理机调度策略确定的。如果采用抢占式优先级调度算法,并且被唤醒的进程是当前系统中优先级最高的进程,那么该进程将被调度执行,其状态变成运行态。如果该进程不是系统中优先级最高的进程或系统采用其它调度算法,那么该进程不会被调度执行,其状态将
7、维持在就绪态。5.10我们为某临界区设置一把锁W,当W=1时,表示关锁;W=0时,表示锁打开。试写出开锁原语和关锁原语,并利用它们去实现互斥。答:开锁原语:voidunlock(W){W=0;}关锁原语:voidlock(W){while(W==1){};W=1;}利用开关锁原语实现互斥:semaphoreW=0;main(){cobeginPn()/*并发的进程P1、P2、……Pn*/{lock(W);临界区;unlock(W);其余部分;}……coend}5.11试写出相应的程序来描述图5.8所示的前趋图。S1S1S2S2S3S3S4S5S4S5
8、S6S7S6S7S8(a)(b)图5.8前趋图答:(a)设6个同步信号量f1、f2、f3、f4、f5、f6分别表示进程S1、S2、S3、S4、S5、S6是否执行完成,其初值均为0。这7个进程的同步描述如下:主程序如下:semaphorefl=f2=f3=f4=f5=f6=0;main(){cobeginS1();S2();S3();S4();S5();S6();S7();coend}各个进程的语句形式如下:voidS1()voidS2()voidS3(){{{……P(f1);P(f1);V(f1);…………V(f1);V(f2);V(f3);}V(f
9、2);}}voidS4()voidS5()voidS6()voidS7(){{{{P(f2);P(f2);P(f3);P(f4);………………P(f5);V(f4);V(f5);V(f6);P(f6);}}}……}(b)另一种做法:设7个同步信号量f2、f3、f4、f5、f6、f7、f8分别表示进程S2、S3、S4、S5、S6、S7、S8是否可以开始执行,其初值均为0。semaphoref2=f3=f4=f5=f6=f7=f8=0;主程序:略(类似a)这8个进程的语句形式如下:voidS1()voidS2()voidS3()voidS4(){{{{…
10、…P(f2);P(f3);P(f4);V(f2);………………V(f3);V(f4);V(f6);V(f8)
此文档下载收益归作者所有