计算机操作系统课后答案 下载本文

内容发布更新时间 : 2024/12/22 18:03:24星期一 下面是文章的全部内容请认真阅读。

答案

1. 答:①为了从变化角度动态地分析研究可以并发执行的程序,真实的反应系统的独立性、

并发性、动态性和相互制约,操作系统中不得不引入进程的概念。 ②为了防止操作系统及其关键的数据结构受到用户程序破坏,将处理机分为核心态和用户态。对进程进行创建、撤销以及在某些进程状态之间的转换控制。

2. 答:①运行状态→就绪状态:此进程根据自身的情况插入到就绪队列的适当位置,系统

收回处理及转入进程调度程序重新进行调度。 ②运行状态→阻塞状态:一个进程从运行状态道阻塞状态后。系统会调用进程调度程序重新选择一个进程投入运行。 3.

(1) 答:为支持多进程的并发执行,系统必须建立的数据结构式PCB,不同状态进程的

PCB用链表组织起来,形成就绪队列、阻塞队列。

(2) 答:阻塞原句、唤醒原句、挂起原句、激活原句

(3) 答:创建原句:建立进程的PCB,并将进程投入就绪队列。 撤销原句:删除进程的PCB,并将进程在其队列中摘除。

阻塞原句:将进程PCB中进程的状态从运行状态改为阻塞状态,并将进程投入阻塞队列。

唤醒原句:将进程PCB中进程的状态从阻塞状态改为就绪状态,并将进程从则色队列摘下,投入到就绪队列中。

4. 答:进程控制块(PCB)是为了描述进程的动态变化而设置的一个与进程相联系的数据

结构,用于记录系统管理进程所需信息。PCB是进程存在的唯一标识,操作系统通过PCB得知进程的寻在。

为了进程管理,进程控制块包括以下几方面。

(1) 进程的描述信息,包括进程标识符、进程名等。 (2) 进程的当前状况。 (3) 当前队列链接指针。 (4) 进程的家族关系。

为了中断处理,进程控制块的内容应该包括处理机状态信息和各种寄存器的内容,如通用寄存器、指令计数器、程序状态字(PSW)寄存器及栈指针等。 为了内存管理的需要,进程控制块的内容应该包括进程使用的信号量、消息队列指针等。

为了设备管理,进程控制块的内容应该包括进程占有资源的情况。

5. 答:就绪队列中有10个进程,这10个进程轮换执行,每隔进程的运行时间是300ms,

切换另一个进程所花费的总时间是10ms,隐刺系统化在进程切换上的时间开销占系统整个时间的比例是:10//(300+10)=3.2%.

6. 答:线程是进程内的一个相对独立的运行单元,是操作系统调度和分派的单位。线程只

拥有一点必不可少的资源(一组寄存器和栈),但可以和铜属于一个进程的其他线程共享进程拥有的资源。

线程是进程的一部分,是进程内的一个实体;一个进程可以有多个线程,但至少必须有一个线程。 7.

(1) 答:1表示新进程创建后,进入高优先级就绪队列;3表示进程因请求I/O活等待某

件事儿阻塞;4表示进程运行的时间片到;6表示进程I/O完成或等待的时间到达;7表示进程运行完成而退出。

(2) 答:3→2是因果变迁,当一个进程从运行态变为阻塞态时,此时CPU空闲,系统首

先到高优先级队列中选择一个进程投入运行。

4→5是因果变迁,当一个进程运行完毕时,此时CPU空闲,系统首先到高优先级队列中选择进程,但如果高优先级队列为空,则从低优先队列中选择一个进程投入运行。

7→2 是因果变迁,当一个进程运行完毕时,CPU空闲,系统首先到高优先级队列中选择一个进程投入运行。

3→6不是因果变迁。一个进程阻塞时由于自身的原因而发生的,和另一个进程等待的时间到达没有因果关系。

(3) 答:当进程调度时,首先从高优先级就绪队列选择一个进程,赋予它的时间片为

100ms。如果高优先级就绪队列为控,则从低优先级就绪队列选择进程,但赋予该进程的时间片为500ms。

这种策略一方面照顾了短进程,一个进程如果在100ms运行完毕它将退出系统,更主要的是照顾了I/O量大的进程,进程因I/O进入阻塞队列,当I/O完成后它就进入了高优先级就绪队列,在高优先级就绪队列等待的进程总是优于低优先级就绪队列的进程。而对于计算量较大的进程,它的计算如果在100ms的时间内不能完成,它将进入低优先级就绪队列,在这个队列的进程被选中的机会要少,只有当高优先级就绪队列为空,才从低优先级就绪队列选择进程,但对于计算量大的进程,系统给予的适当照顾时间片增大为500ms。

8.

(1) 答:是。若系统中没有运行进程,系统会马上选择一个就绪进程队列中的进程投入

运行。只有在就绪队列为空时,CPU才会空闲。

(2) 答:不一定。当系统中所有进程分别等待各自希望发生的事件时,它们都处于阻塞

状态,此时系统中既没有运行进程,也没有就绪进程。这种情况出现时,如果各个进程没有相互等待关系,只要等待的时间发生了,进程就会从等待状态转化为就绪状态。但如果处于阻塞状态的进程相互等待彼此占有的资源,系统就有可能发生死锁。

(3) 答:不一定。因为高优先级的进程有可能处于等待状态,进程调度程序只能从就绪

队列中挑选一个进程投入运行。被选中进程的优先级在就绪队列中是最高的,但在整个系统中它不一定是最高的,等待队列中进程的优先级有可能高于就绪队列中所有进程的优先级。

9.

(1) 答: P1和P2并发执行的条件是,当且仅当

R(P1)∩W(P2) ∪R(P2) ∩W(P1) ∪W(P1)∩W(P2)={}

(2)

S2 S1 S3

(3) 答:R(S1)={x},W(S2)={a},R(S2)={a},W(S2)={b},R(S3)={a},W(S3)={c}

所以W(S1) ∩R(S2)={a}, 因此S1和S2不能并发执行。

W(S1)∩R(S2)={a}, 因此S1和S3也不能并发执行。

而R(S2) ∩W(S3) ∪R(S3) ∩W(S2) ∪W(S2) ∩W(S3)={}, 因此S2和S3可以并发执行。

第三章 进程同步与通信

思考与练习题

1. 一下进程之间存在相互制约关系吗?若存在,是什么制约关系?为什么?

(1) 几个同学去图书馆借同一本书。 (2) 篮球比赛中两队同学争抢篮板球。

(3) 果汁流水线生产中捣碎、消毒、灌装、装箱等各道工序。 (4) 商品的入库出库。 (5) 工人做工与农民种粮。

2. 在操作系统中引入管程的目的是什么?条件变量的作用是什么? 3. 说明P、V操作为什么要设计成原语。

4. 设有一个售票大厅,可容纳200人购票。如果厅内不足200人则允许进入,超过则在厅

外等候;售票员某时只能给一个购票者服务,购票者买完票后就离开。试问: (1) 购票者之间是同步关系还是互斥关系? (2) 用P、V操作描述购票者的工作过程。

5. 进程之间的关系如图3-16所示,试用P、V操作描述它们之间的同步。

6. 有4个进程P1、P2、P3、P4共享一个缓冲区,进程P1向缓冲区存入消息,进程P2、

P3、P4从缓冲区中去消息,要求发送者必须等三个进程都去过本消息后才能发送下调消息。缓冲区内每次只能容纳一个消息,用P、V操作描述四个进程存取消息的情况。 7. 分析生产者——消费者问题中多个P操作颠倒引起的后果。 8. 读者——写者问题中写者优先的实现。

9. 写一个用信号量解决哲学家进餐问题不产生锁死的算法。 10. 一个文件可有若干个不同的进程所共享,每个进程具有唯一的编号。假定文件可

有满足下列限制的若干个不同的进程同时访问,并发访问该文件的哪些进程的编号的总和不得大于n,设计一个协调对该文件访问的管程。 11. 用管程解决读者——写者问题,并采用公平原则。

答案

1. (1) (2) (3) (4)

答:存在互斥关系,因为同一本书只能借给一个同学。

答:存在互斥关系,因为篮球只有一个,两队只能有一个队抢到球

答:存在同步关系,因为最后一道工序的开始依赖于前一道工序的完成。

答:存在同步关系,因为商品若没有入库就无法出库,若商品没有出库,装满了库房,也就无法再入库。

(5) 答:工人与农民之间没有相互制约关系。

2. 答:引入管程的目的是为了实现进程之间的同步和互斥。优于使用信号量在解决同步和

互斥问题时要设置多个信号量,并使用大量的P、V操作,其中P操作的排列次序不当,还会引起系统死锁,因此引入另外一种同步机制。 3. 答:用信号量S表示共享资源,其初值为1表示有一个资源。设有两个进程申请该资源,

若其中一个进程先执行P操作。P操作中的减1操作有3跳及其指令组成:去S送寄存器R;R-1送S。若P操作不用原语实现,在执行了前述三条指令中的2条,即还未执行R送S时(此时S值仍为1),进程被剥夺CPU,另一个进程执行也要执行P操作,执行后S的值为0,导致信号量的值错误。正确的结果是两个进程执行完P操作后,信号量S的值为-1,进程阻塞。 4.

(1) 答:购票者之间是互斥关系。 (2)

答: semaphore empty=200; semaphore mutex=1; void buyer() { P(empty); P(mutex); 购票; V(mutex); V(empty); } 5. 答:

semaphore a,b,c,d,e,f,g=0,0,0,0,0,0,0;

void P1() void P2() void P3() void P4() void P5() void P6() { S1; { P(a); { P(b); { P(c); { P(d); { P(e) V(a); S2; S3; S4; S5; P(f) V(b); V(e); V(c); V(f); V(g); P(g) } } V(d); } } S6; } }