计算机操作系统第二版答案郁红英.docx
- 文档编号:1679347
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:21
- 大小:266.13KB
计算机操作系统第二版答案郁红英.docx
《计算机操作系统第二版答案郁红英.docx》由会员分享,可在线阅读,更多相关《计算机操作系统第二版答案郁红英.docx(21页珍藏版)》请在冰豆网上搜索。
计算机操作系统第二版答案郁红英
计算机操作系统第二版答案(郁红英)
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调度,请给出各个进程的完成时间、周转时间、带
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 第二 答案 郁红英