操作系统课后练习精选答案.docx
- 文档编号:3979507
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:14
- 大小:563.07KB
操作系统课后练习精选答案.docx
《操作系统课后练习精选答案.docx》由会员分享,可在线阅读,更多相关《操作系统课后练习精选答案.docx(14页珍藏版)》请在冰豆网上搜索。
操作系统课后练习精选答案
操作系统课后练习精选(答案)
5.
6.
7.根据图2-18,回答以下问题。
(1)进程发生状态变迁1、3、4、6、7的原因。
答:
1表示操作系统把处于创建状态的进程移入就绪队列;3表示进程请求I/O或等待某事件;4表示进程用行的时间片用完;6表示I/O完成或事件完成;7表示进程完成。
(2)系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,这种变迁称为因果变迁。
下述变迁是否为因果变迁:
3~2,4~5,7~2,3~6,是说明原因。
答:
3→2是因果变迁,当一个进程从运行态变为阻塞态时,此时CPU空闲,系统首先到高优先级队列中选择一个进程。
4→5是因果变迁,当一个进程运行完毕时,此时CPU空闲,系统首先到高优先级队列中选择进程,但如果高优先级队列为空,则从低优先队列中选择一个进程。
7→2是因果变迁,当一个进程运行完毕时,CPU空闲,系统首先到高优先级队列中选择一个进程。
3→6不是因果变迁。
一个进程阻塞时由于自身的原因而发生的,和另一个进程等待的时间到达没有因果关系。
(3)根据此进程状态转换图,说明该系统CPU调度的策略和效果。
答:
当进程调度时,首先从高优先级就绪队列选择一个进程,赋予它的时间片为100ms。
如果高优先级就绪队列为空,则从低优先级就绪队列选择进程,并且赋予该进程的时间片为500ms。
这种策略一方面照顾了短进程,一个进程如果在100ms运行完毕它将退出系统,更主要的是照顾了I/O量大的进程,进程因I/O进入阻塞队列,当I/O完成后它就进入了高优先级就绪队列,在高优先级就绪队列等待的进程总是优于低优先级就绪队列的进程。
而对于计算量较大的进程,它的计算如果在100ms的时间内不能完成,它将进入低优先级就绪队列,在这个队列的进程被选中的机会要少,只有当高优先级就绪队列为空,才从低优先级就绪队列选择进程,但对于计算量大的进程,系统给予的适当照顾时间片增大为500ms。
8.回答以下问题。
(1)若系统中没有运行进程,是否一定没有就绪进程?
为什么?
答:
是,因为当CPU空闲时,系统就会在就绪队列里调度进程,只有当就绪队列为空时,系统中才没有运行程序。
(2)若系统中既没有运行进程,也没有就绪进程,系统中是否就没有阻塞进程?
解释。
答:
不一定,当运行的程序都因为请求I/O或等待事件时而进入阻塞,系统中就没有就绪进程。
(3)如果系统采用优先级调度策略,运行的进程是否一定是系统中优先级最高的进程?
为什么?
答:
不一定,若优先级高的进程进入阻塞状态时,而且优先级高的就绪队列里没有等待的进程,这时就会调度优先级低的就绪队列的进程。
9.假如有以下程序段,回答下面的问题。
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.设有一个售票大厅,可容纳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++;
}
2.有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);}
3.分析生产者——消费者问题中多个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,消费者进程无法执行,造成死锁。
第四章
1.系统中有5个资源被4个进程所共享,如果每个进程最多需要2个这种资源,试问系统是否会产生锁死?
答:
不会产生死锁;因为因为资源数可以满足进程的需要,当其中的一个进程争取到剩下的一个资源可以执行,当执行完成以后会释放资源,供其他进程使用,所以不会产生死锁。
2.计算机系统有8台磁带机,由N个进程竞争使用,每个进程最多需要3台。
问:
N为多少时,系统没有死锁的危险?
答:
当n为1、2、3时,没有死锁的危险;因为当n小于3时,每个进程分配2台磁带机,还有磁带机剩余,那么当其中的一个进程得到剩余的磁带机则可运行,运行结束后会释放磁带机,供其他进程使用,系统不会有死锁的危险;当n为4时,每台分配2台时没有剩余,则会产生死锁,当大于5时同样会死锁。
3.系统有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调度,请给出各个进程的完成时间、周转时间、带权周转时间,及所有的进程的平均周转时间和平均带权周转时间。
答:
4.设系统中有5个进程P1、P2、P3、P4、P5,有3种类型的资源A、B、C,其中A资源的数量是17,B资源的数量是5,C资源的数量是20,T0时刻系统状态如表4-9所示。
表4-9T0时刻系统状态
进程
已分配资源数量
最大资源需求量
仍然需求资源数
A
B
C
A
B
C
A
B
C
P1
2
1
2
5
5
9
3
4
7
P2
4
0
2
5
3
6
1
3
4
P3
4
0
5
4
0
11
0
0
6
P4
2
0
4
4
2
5
2
2
1
P5
3
1
4
4
2
4
1
1
0
(1)计算每个进程还可能需要的资源,并填入表的“仍然需要资源数”的栏目。
(2)T0时刻系统是否处于安全状态?
为什么?
答:
处于安全状态,因为序列
(3)如果T0时刻进程P2又有新的资源请求(0,3,4),是否实施资源分配?
为什么?
答:
不实施资源分配,因为将所有资源都分配给p2时,p2的C是5,不能够运行,进入死锁。
(4)如果T0时刻,若进程P4又有新的资源请求(2,0,1),是否实施资源分配?
为什么?
答:
实施;因为p4请求资源后,存在安全状态。
(5)在(4)的基础上,若进程P1又有新的资源请求(0,2,0),是否实施资源分配?
为什么?
答:
不实施;
第五章
1.在系统中采用可变分区存储管理,操作系统占用低地址部分的126KB,用户区的大小是386KB,采用空闲分区表管理空闲分区。
若分配时从高地址开始,对于下述的作业申请序列:
作业1申请80KB;作业2申请56KB;作业3申请120KB;作业1完成;作业3完成;作业4申请156KB;作业5申请80KB。
使用首次适应法处理上述作业,并回答以下问题。
(1)画出作业1、2、3进入内存后,内存的分布情况。
答:
(2)画出作业1、3完成后,内存的分布情况。
答:
(3)画出作业4、5进入内存后,内存的分布情况。
答
2.某系统采用页式存储管理策略,某进程的逻辑地址空间为32页,页的大小为2KB,物理地址空间的大小是4MB。
(1)写出逻辑地址的格式。
(2)该进程的页表有多少项?
每项至少占多少位?
答:
因为进程的逻辑地址空间为32页,因此该进程的页表项有32项。
页表中应存储每页的块号。
因为物理地址空间大小是4MB,4MB的物理地址空间内分成4MB/2KB=2K个块,因此块号部分需要11位(二进制),所以页表中每项占11位。
(3)如果物理地址空间减少一半,页表的结构有何变化?
答:
当减少一半时,有2MB/2KB=1K个块,因此块号部分需要10位(二进制),所以页表中每项占10位。
3.某页式存储管理系统,内存的大小为64KB,被分为16块,块号为0、1、2、……、15。
设某进程有4页,其页号为0、1、2、3,被分别装入内存的2、4、7、5,问:
(1)该进程的大小是多少字节?
答:
总共64KB,16页,则每页有4KB。
该进程有四页,则进程的大小为16KB。
(2)写出该进程每一页在内存的起始地址。
答:
(3)逻辑地址4146对应的物理地址是多少?
答:
4146除以4096得1余50,这页号为1,页内位移为50;1对应于4,这物理地址为4*4096+50=16434b。
4.某段式存储管理系统的段表如图所示。
请将逻辑地址[0,137]、[1,9000]、[2,3600]、[3,230]转换成物理地址。
答:
[0,137]:
40*1024+137=41097B
[1,9000]:
80*1024+9000=90920B
[2,3600]:
100*1024+3600=106000B
[3,230]不合法
第六章
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课后 练习 精选 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)