计算机操作系统第二版答案郁红英.docx

上传人:b****1 文档编号:1679347 上传时间:2022-10-23 格式:DOCX 页数:21 大小:266.13KB
下载 相关 举报
计算机操作系统第二版答案郁红英.docx_第1页
第1页 / 共21页
计算机操作系统第二版答案郁红英.docx_第2页
第2页 / 共21页
计算机操作系统第二版答案郁红英.docx_第3页
第3页 / 共21页
计算机操作系统第二版答案郁红英.docx_第4页
第4页 / 共21页
计算机操作系统第二版答案郁红英.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

计算机操作系统第二版答案郁红英.docx

《计算机操作系统第二版答案郁红英.docx》由会员分享,可在线阅读,更多相关《计算机操作系统第二版答案郁红英.docx(21页珍藏版)》请在冰豆网上搜索。

计算机操作系统第二版答案郁红英.docx

计算机操作系统第二版答案郁红英

计算机操作系统第二版答案(郁红英)

LT

 

答:

当进程调度时,首先从高优先级就绪队列选择一个进程,赋予它的时间片为100ms。

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

这种策略一方面照顾了短进程,一个进程如果在100ms运行完毕它将退出系统,更主要的是照顾了I/O量大的进程,进程因I/O进入阻塞队列,当I/O完成后它就进入了高优先级就绪队列,在高优先级就绪队列等待的进程总是优于低优先级就绪队列的进程。

而对于计算量较大的进程,它的计算如果在100ms的时间内不能完成,它将进入低优先级就绪队列,在这个队列的进程被选中的机会要少,只有当高优先级就绪队列为空,才从低优先级就绪队列选择进程,但对于计算量大的进程,系统给予的适当照顾时间片增大为500ms。

5.回答以下问题。

(1)若系统中没有运行进程,是否一定没有就绪进程?

为什么?

答:

是,因为当CPU空闲时,系统就会在就绪队列里调度进程,只有当就绪队列为空时,系统中才没有运行程序。

(2)若系统中既没有运行进程,也没有就绪进程,系统中是否就没有阻塞进程?

解释。

答:

不一定,当运行的程序都因为请求I/O或等待事件时而进入阻塞,系统中就没有就绪进程。

(3)如果系统采用优先级调度策略,运行的进程是否一定是系统中优先级最高的进程?

为什么?

答:

不一定,若优先级高的进程进入阻塞状态时,而且优先级高的就绪队列里没有等待的进程,这时就会调度优先级低的就绪队列的进程。

6.假如有以下程序段,回答下面的问题。

S1:

a=3-x;

S2:

b=2*a;

S3:

c=5+a;

(1)并发程序执行的Bernstein条件是什么?

答:

若P1与P2R并发执行,当且仅当R(P1)∩W(P2)∪R(P2)∩W(P1)∪W(P1)∩W(P2)={}时才满足。

(2)试画图表示它们执行时的先后次序。

(3)利用Bernstein条件证明,S1、S2和S3哪两个可以并发执行,哪两个不能。

答:

R(s1)={x},W(s1)={a};R(s2)={a},W(s2)={b};R(s3)={a},W(s3)={c};

(1).R(s1)∩W(s2)∪R(s2)∩W(s1)∪W(s1)∩W(s2)={a},则s1与s2不能并发执行;

(2).R(s1)∩W(s3)∪R(s3)∩W(s1)∪W(s1)∩W(s3)={a},则s1与s3不能并发执行;

(3).R(s2)∩W(s3)∪R(s3)∩W(s2)∪W(s2)∩W(s3)={},则s2与s3可以并发执行。

习题三

1.一下进程之间存在相互制约关系吗?

若存在,是什么制约关系?

为什么?

(1)几个同学去图书馆借同一本书。

答:

互斥关系;因为他们要借同一本书,不可能同时借到,所以互斥。

(2)篮球比赛中两队同学争抢篮板球。

答:

互斥关系;因为争抢同一个篮板,存在互斥关系。

(3)果汁流水线生产中捣碎、消毒、灌装、装箱等各道工序。

答:

同步关系;他们必须相互协作才能使进程圆满完成。

(4)商品的入库出库。

答:

同步关系;因为商品出库可以为入库提供空间。

(5)工人做工与农民种粮。

答:

没有制约关系。

2.在操作系统中引入管程的目的是什么?

条件变量的作用是什么?

答:

用信号量可以实现进程的同步于互斥,但要设置许多信号量,使用大量的P、V操作,而且还要仔细安排P操作的排列次序,否则将会出现错误的结果或是死锁现象。

为了解决这些问题引进了管程;

条件变量的作用是使进程不仅能被挂起,而且当条件满足且管程再次可用时,可以恢复该进程并允许它在挂起点重新进入管程。

3.说明P、V操作为什么要设计成原语。

答:

用信号量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.设有一个售票大厅,可容纳200人购票。

如果厅内不足200人则允许进入,超过则在厅外等候;售票员某时只能给一个购票者服务,购票者买完票后就离开。

试问:

(1)购票者之间是同步关系还是互斥关系?

答:

互斥关系。

(2)用P、V操作描述购票者的工作过程。

semaphoreempty=200;

semaphoremutex=1;

semaphorewaiting=0;

voidbuy()

{p(waiting);

p(mutex);

买票;

v(mutex);

v(empty);

}

voidwaiting()

{

p(empty);

等待;

waiting++;

}

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

semaphoreA,B,C,D,E,F,G=0;

{S1,V(A),V(B)};

{P(A),S2,V(C)};

{P(B),S3,V(D),V(E)};

{P(D),S4,V(F)};

{P(E),S5,V(G)};

{P(C),P(F),P(G),S6};

6.有4个进程P1、P2、P3、P4共享一个缓冲区,进程P1向缓冲区存入消息,进程P2、P3、P4从缓冲区中取消息,要求发送者必须等三个进程都取过本消息后才能发送下调消息。

缓冲区内每次只能容纳一个消息,用P、V操作描述四个进程存取消息的情况。

答:

semaphorep1=0;semaphorep2,p3,p4=1;

semaphorecout=0;semaphoremutex=1;

voidmain()

{P(p2);P(p3);P(4);

V(cout);}

writep1()

{P(p1);P(metux);P(cout);

存入消息;

V(p1);V(metux);}

Readp2()

{P(mutex);P(p1);

读消息;

V(p1);V(p2);V(metux);}

Readp3()

{P(mutex);P(p1);

读消息;

V(p1);V(p3);V(metux);}

Readp4()

{P(mutex);P(p1);

读消息;

V(p1);V(p4);V(metux);}

7.分析生产者——消费者问题中多个P操作颠倒引起的后果。

答:

semaphoremutex=1;

semaphoreempty=n;

semaphorefull=0;

inti,j;

ITEMbuffer[n];

ITEMdata_p,data_c;

voidproducer()/*生产者进程*/voidconsumer()/*消费者进程*/

{while(true){while(true)

{{P(mutex);

P(mutex);P(full);

P(empty);data_c=buffer[j];

buffer[i]=data_p;j=(j+1)%n;

i=(i+1)%n;V(mutex);

V(mutex);V(empty);

V(full);}}

}}

 

若把生产者进程的P操作颠倒,消费者进程的P操作颠倒(如图),则生产者进程执行到V(mutex)时,消费者就可以执行P(mutex)但由于full=0,消费者进程不可执行P(full);当生产者进程执行完V(full)后,full=1,但由于mutex=0,消费者进程无法执行,造成死锁。

8.读者——写者问题中写者优先的实现。

答:

semaphoreWmutex,Rmutex=1;

intRcount=0;

semaphoremutex=1

voidreader()/*读者进程*/

{while(true)

{P(mutex);

P(Rmutex);

If(Rcount==0)P(wmutex);

Rcount=Rcount+1;

V(Rmutex);

V(mutex);

…;

read;/*执行读操作*/

…;

P(Rmutex);

Rcount=Rcount-1;

if(Rcount==0)V(wmutex);

V(Rmutex);}

}

voidwriter()/*写者进程*/

{while(true)

{P(mutex);P(wmutex);

…;

write;/*执行写操作*/

…;

V(Wmutex);

V(mutex);

}}

9.写一个用信号量解决哲学家进餐问题不产生锁死的算法。

semaphorechopstick[5]={1,1,1,1,1};

semaphoremutex=1;

voidphilosopher(){while(true)

{P(mutex);

P(chopstick[i]);

P(chopstick[(i+1)%5]);

V(mutex);

…;

eat;

…;

V(chopstick[i]);

V(chopstick[(i+1)%5]);

…;

think;

…;}

}

10.一个文件可有若干个不同的进程所共享,每个进程具有唯一的编号。

假定文件可由满足下列限制的若干个不同的进程同时访问,并发访问该文件的哪些进程的编号的总和不得大于n,设计一个协调对该文件访问的管程。

答:

11.用管程解决读者——写者问题,并采用公平原则。

答:

习题四

1.某进程被唤醒后立刻投入运行,能说明该系统采用的是可剥夺调度算法吗?

答:

不能说明,因为如果现在就绪队列中没有进程,那么唤醒的进程会立刻投入运行。

2.在哲学家进餐问题中,如果将先拿起左边筷子的哲学家称为左撇子,先拿起右边筷子的哲学家称为右撇子。

请说明在同时存在左、右撇子的情况下,任何的就坐安排都不能产生锁死。

答:

任何的就坐安排都不会构成环路,这就符合避免死锁的条件,所以不会产生死锁。

3.系统中有5个资源被4个进程所共享,如果每个进程最多需要2个这种资源,试问系统是否会产生锁死?

答:

不会产生死锁;因为因为资源数可以满足进程的需要,当其中的一个进程争取到剩下的一个资源可以执行,当执行完成以后会释放资源,供其他进程使用,所以不会产生死锁。

4.计算机系统有8台磁带机,由N个进程竞争使用,每个进程最多需要3台。

问:

N为多少时,系统没有死锁的危险?

答:

当n为1、2、3时,没有死锁的危险;因为当n小于3时,每个进程分配2台磁带机,还有磁带机剩余,那么当其中的一个进程得到剩余的磁带机则可运行,运行结束后会释放磁带机,供其他进程使用,系统不会有死锁的危险;当n为4时,每台分配2台时没有剩余,则会产生死锁,当大于5时同样会死锁。

5.系统有5个进程,它们的到达时间和服务时间如表4-8所示。

新进程(没有运行过)与老进程(运行过的进程)的条件相同时,假定系统选新进程运行。

表4-8进程情况

进程名

到达时间

服务时间

A

0

3

B

2

6

C

4

4

D

6

5

E

8

2

若按先来先服务(FCFS)、时间片轮法(时间片q=1)、短进程优先(SPN)、最短剩余时间优先(SRT,时间片q=1)、响应比高者优先(HRRN)及多级反馈队列(MFQ,第一个队列的时间片为1,第i(i>1)个队列的时间片q=2(i-1))算法进行CPU调度,请给出各个进程的完成时间、周转时间、带

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1