计算机操作系统教程--核心与设计原理习题5答案.pdf
《计算机操作系统教程--核心与设计原理习题5答案.pdf》由会员分享,可在线阅读,更多相关《计算机操作系统教程--核心与设计原理习题5答案.pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、习题 5 答案 习题习题 5 5.1 何谓与时间有关的错误?举例说明之。答:并发进程的执行实际上是进程活动的某种交叉,某些交叉次序可能得到错误结果。由于具体交叉的形成与进程的推进速度有关,而速度是时间的函数,因而将这种错误称为与时间有关的错误。例子略。5.2 什么是临界资源?什么是临界区?答:一次仅允许一个进程使用的资源称为临界资源;在每个进程中,访问临界资源的那段程序称为临界区。5.3 试分析临界区的大小与系统并发性之间的关系。答:关于同一组变量的临界区是不能并发执行的代码,临界区越大,并发性越差,因而编写并发程序应尽量缩小临界区域范围。5.4 为何开关中断进程互斥方法仅在单 CPU 系统中
2、是有效的?答:关中断方法不适用于多 CPU 系统,因为关中断只能保证 CPU 不由一个进程切换到另外一个进程,从而防止多个进程并发地进入公共临界区域。但即使关中断后,不同进程仍可以在不同 CPU 上并行执行关于同一组共享变量的临界区代码.5.5 进程的互斥和同步有什么异同点?答:进程的同步和互斥是指进程在推进时的相互制约关系。进程同步源于进程合作,是进程间共同完成一项任务是直接发生相互作用的关系。是进程之间的直接制约关系。进程互斥源于对临界资源的竞争,是进程之间的间接制约关系。5.6 试说明进程互斥、同步和通信三者之间的关系。答:进程的同步和互斥是指进程在推进时的相互制约关系,已经在上题中给出
3、了详细的解答。由于进程间存在制约关系,为了保证进程的正确运行以及相互合作进程间的信息交换,就需要进程之间进行通信。进程通信是指进程间的信息交换,分为高级通信和低级通信,高级通信以较高的效率传送大批数据。进程之间的互斥与同步也是一种通信,由于交换的信息量很小,因此这种进程通信称为低级进程通信。5.7 同步机构应遵循哪些基本准则?答:a.空闲让进.b.忙则等待.c.有限等待.d.让权等待.5.8 试从物理概念上说明信号量 P、V 操作的含义。答:P(S)表示申请一个资源,S.value0 表示有资源可用,其值为资源的数目;S.value=0 表示无资源可用;S.value0,则|S.value|表
4、示 S 等待队列中的进程个数。V(S)表示释放一个资源,信号量的初值应该大于等于 0。5.9 由 V 操作唤醒的进程是否一定能够直接进入运行状态?举例说明之。答:否。一般来说,唤醒是将进程状态由等待状态变成就绪状态,而就绪进程何时获得处理机则是由系统的处理机调度策略确定的。如果采用抢占式优先级调度算法,并且被唤醒的进程是当前系统中优先级最高的进程,那么该进程将被调度执行,其状态变成运行态。如果该进程不是系统中优先级最高的进程或系统采用其它调度算法,那么该进程不会被调度执行,其状态将维持在就绪态。5.10 我们为某临界区设置一把锁 W,当 W=1 时,表示关锁;W=0 时,表示锁打开。试写出开锁
5、原语和关锁原语,并利用它们去实现互斥。答:开锁原语:void unlock(W)W=0;关锁原语:void lock(W)while(W=1);W=1;利用开关锁原语实现互斥:semaphore W=0;main()cobegin Pn()/*并发的进程 P1、P2、Pn*/lock(W);临界区;unlock(W);其余部分;coend 5.11 试写出相应的程序来描述图 5.8 所示的前趋图。答:(a)设 6 个同步信号量f1、f2、f3、f4、f5、f6 分别表示进程S1、S2、S3、S4、S5、S6是否执行完成,其初值均为 0。这 7 个进程的同步描述如下:主程序如下:semaphor
6、e fl=f2=f3=f4=f5=f6=0;main()cobegin S1();S2();S3();S5 S3 S6S7 S2 S4 S1 S1S3 S2S4S5S6S7 S8(a)(b)图 5.8 前趋图 S4();S5();S6();S7();coend语句形式如下:d S2()1);void S3()1);各个进程的void S1()voi V(f1);V(f1);P(f V(f2);V(f2);P(f V(f3);v4()2);voi2);v6()3);void S7()4);oid S P(f V(f4);d S5()P(f V(f5);oid S P(f V(f6);P(fP(f
7、5);P(f6);)另一种做法:f2、f3、f4、f5、f6、f7、f8 分别表示进程S2、S3、S4、S5、S6、S7、主如下:2()2);void S3()3);void S4()4);(b设 7 个同步信号量S8是否可以开始执行,其初值均为 0。semaphore f2=f3=f4=f5=f6=f7=f8=0;程序:略(类似 a)这 8 个进程的语句形式void S1()void S V(f2);V(f3);P(f V(f4);V(f5);P(f V(f6);V(f7);P(f V(f8);void S5()5);void S6()6);v7()7);void S8()8);P(f V(
8、f8);P(f V(f8);oid S P(f V(f8);P(fP(f8);P(f8);P(f8);12 在生产者一消费者问题中,如果缺少了 V(full)或 V(empty),对执行结果会有可以不断地往缓冲池送消息,如果缓冲池满,会覆盖原有数据,造成数据混5.何影响?答:生产者乱。而消费者始终因 P(full)操作将消费进程直接送入进程链表进行等待,无法访问缓冲池,造成无限等待。5.13 在生产者一消费者问题中,如果将两个 P 操作即 P(full)和 P(mutex)互换位置;样的。5.14什么要引入条件变量?种,为了区别它们,引入了为两个信号灯变量,下列八组 P、V 操作哪些可以同时进
9、行?哪些不能)P(S1),P(S2)(2)P(S1),V(S2)答:能同时进行的及不同信号量,属于关于不用信号灯与 PV 操作给出解法。冲区next product;t to bufferin;in);消费者活动:);t from bufferout;out);17 试用信号灯与 PV 操作实现司机与售票员之间的同步问题。设公共汽车上有一个司;售票员的活动 P2:或者是将 V(full)和 V(mutex)互换位置,结果会如何?答:a.容易造成死锁。b从逻辑上来说应该是一 画图说明管程由哪几部分组成?为答:图略。因为调用 wait 原语后,使进程等待的原因有多条件变量。5.15 设 S1 和
10、S2同时进行?为什么?(1(3)V(S1),P(S2)(4)V(S1),V(S2)(5)P(S1),P(S1)(6)P(S2),V(S2)(7)V(S1),P(S1)(8)V(S2),V(S2)包括:(1)、(2)、(3)、(4)。这些操作涉同组共享变量的临界区。不能同时进行的包括:(5)、(6)、(7)、(8)。这些操作涉及相同的信号量,属于关于同一组共享变量的临界区。5.16 对于生产者消费者问题,假设缓冲区是无界的,试答:由于是无界缓冲区,所以生产者不会因得不到缓冲区而被阻塞,不需要对空缓进行管理,可以去掉在有界缓冲区中用来管理空缓冲区的信号量及其 PV 操作。Semaphore mut
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 教程 核心 设计 原理 习题 答案
限制150内