您的当前位置:首页正文

操作系统课后练习精选(答案)

2024-10-18 来源:威能网
1. 什么是操作系统?它的主要功能是什么?

答:操作系统是用来管理计算机系统的软、硬件资源,合理地组织计算机的工作流程,以方便用户使用的程序集合;

其主要功能有进程管理、存储器管理、设备管理和文件管理功能。

2. 什么是分时系统?什么是实时系统?试从交互性、及时性、独立性、多路性和可靠性几个方面比较分时系统和实时系统。

答:分时系统:一个计算机和许多终端设备连接,每个用户可以通过终端向计算机发出指令,请求完成某项工作,在这样的系统中,用户感觉不到其他用户的存在,好像独占计算机一样。

实时系统:对外部输入的信息,实时系统能够在规定的时间内处理完毕并作出反应。 比较:(1)交互性:实时系统具有交互性,但人与系统的交互,仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样向终端用户提供数据处理、资源共享等服务。实时系统的交互性要求系统具有连续人机对话的能力,也就是说,在交互的过程中要对用户得输入有一定的记忆和进一步的推断的能力。

(2)及时性:实时系统对及时性的要求与分时系统类似,都以人们能够接受的等待时间来确定。而分时系统则对及时性要求更高。

(3)独立性:实时系统与分时系统一样具有独立性。每个终端用户提出请求时,是彼此独立的工作、互不干扰。

(4)多路性:实时系统与分时一样具有多路性。操作系统按分时原则为多个终端用户提供服务,而对于实时系统,其多路性主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。

(5)可靠性:分时系统虽然也要求可靠性,但相比之下,实时系统则要求系统高度可靠。

9.设内存中有三道程序,A,B,C,他们按A→B→C的先后次序执行,它们进行“计算”和“I/O操作”的时间如表1-2所示,假设三道程序使用相同的I/O设备。

表1-2 三道程序的操作时间

操作程序ABC计算I/O操作计算 203010305020102010

(1) 试画出单道运行时三道程序的时间关系图,并计算完成三道程序要花多

少时间。

计算ABBCCAI/O操作BC20506090170200140160190总时间=20+30+10+30+50+20+10+20+10=200

(2) 试画出多道运行时三道程序的时间关系图,并计算完成三道程序要花多

长时间。

ABCAI/O操作BI/O操作CI/O操作20总时间=130 第二章

ABC程序A程序B程序C13050607080901001201405. 假设系统就绪队列中有10个进程,这10个进程轮换执行,每隔300ms轮换一次,CPU在进程切换时所花费的时间是10ms,试问系统化在进程切换上的开销占系统整个时间的比例是多少? 答:因为每隔300ms换一次进程,且每个进程切换时所花费的时间是10ms,则系统化在进程切换上的开销占系统整个时间的比例是10/(300+10)=3.2% 6. 试述线程的特点及其与进程之间的关系。 答:(1)特点:线程之间的通信要比进程之间的通信方便的多;同一进程内的线程切换也因为线程的轻装而方便的多。同时线程也是被独立调度的分配的;

(2)线程与进程的关系:线程和进程是两个密切相关的概念,一个进程至少拥有一个线程,进程根据需要可以创建若干个线程。线程自己基本上不拥有资源,只拥有少量必不可少的资源(线程控制块和堆栈) 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) 试画图表示它们执行时的先后次序。

S2S1S3 (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操作描述购票者的工作过程。 semaphore empty=200;

semaphore mutex=1; semaphore waiting=0; void buy()

{ p(waiting); p(mutex); 买票; v(mutex); v(empty); }

void waiting()

{

p(empty); 等待; waiting++; }

2. 有4个进程P1、P2、P3、P4共享一个缓冲区,进程P1向缓冲区存入消息,进程P2、P3、P4从缓冲区中取消息,要求发送者必须等三个进程都取过本消息后才能发送下调消息。缓冲区内每次只能容纳一个消息,用P、V操作描述四个进程存取消息的情况。

答:semaphore p1=0;semaphore p2,p3,p4=1;

semaphore cout=0;semaphore mutex=1; void main()

{P(p2);P(p3);P(4); V(cout);} write p1() {P(p1);P(metux);P(cout); 存入消息;

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

{ P(mutex);P(p1); 读消息;

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

{ P(mutex);P(p1); 读消息;

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

{ P(mutex);P(p1); 读消息;

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

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

答:semaphore mutex=1; semaphore empty=n; semaphore full=0; int i,j; ITEM buffer[n]; ITEM data_p,data_c;

void producer()/*生产者进程*/ void consumer() /*消费者进程*/

{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 B C D E 到达时间 0 2 4 6 8 服务时间 3 6 4 5 2 若按先来先服务(FCFS)、时间片轮法(时间片q=1)、短进程优先(SPN)、最短剩余时间优先(SRT,时间片q=1)、响应比高者优先(HRRN)及多级反馈队列(MFQ,第一个队列的时间片为1,第i(i>1)个队列的时间片q=2(i-1))算法进行CPU调度,请给出各个进程的完成时间、周转时间、带权周转时间,及所有的进程的平均周转时间和平均带权周转时间。 答:

A到达时间FCFS服务时间完成时间周转时间带权周转03331B2697C44139D651812E8220126平均周转时间平均带权周转时间8.62.561.172.252.4

A到达时间服务时间时间片轮转完成时间周转时间0344B261816C441713D652014E821573.510.82.71平均周转时间平均带权周转时间带权周转1.332.673.252.8A到达时间SPN服务时间完成时间周转时间带权周转03331B2697C441511D652014E821131.5平均周转时间平均带权周转时间7.67.61.172.752.8

平均周转时间平均带权周转时间A到达时间SRT服务时间完成时间周转时间带权周转03331B2620183C44841D651591.8E8210217.21.56

平均周转时间平均带权周转时间A到达时间HRRN服务时间完成时间周转时间带权周转03331B2697C44139D652014E821573.582.141.172.252.8

A到达时间MFQ服务时间完成时间周转时间带权周转03331B2617152.5C4418143.5D6520142.8E821463平均周转时间平均带权周转时间10.42.56

4. 设系统中有5个进程P1、P2、P3、P4、P5,有3种类型的资源A、B、C,其中A资源

的数量是17,B资源的数量是5,C资源的数量是20,T0时刻系统状态如表4-9所示。 表4-9 T0时刻系统状态 进程 P1 P2 P3 P4 P5 A 2 4 4 2 3 已分配资源数量 B 1 0 0 0 1 C 2 2 5 4 4 A 5 5 4 4 4 最大资源需求量 B 5 3 0 2 2 C 9 6 11 5 4 A 3 1 0 2 1 仍然需求资源数 B 4 3 0 2 1 C 7 4 6 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进入内存后,内存的分布情况。

5111261250答:

321空130KB120KB56KB80KB

(2) 画出作业1、3完成后,内存的分布情况。

5111261250答:

2空空250KB56KB80KB

(3) 画出作业4、5进入内存后,内存的分布情况。

511空542126空1250156KB56KB80KB14KB80KB

2. 某系统采用页式存储管理策略,某进程的逻辑地址空间为32页,页的大小为2KB,物理地址空间的大小是4MB。 (1) 写出逻辑地址的格式。

151110页号页内位移0

(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) 写出该进程每一页在内存的起始地址。

页号0123块号起始地址24758KB16KB28KB35KB答:

(3) 逻辑地址4146对应的物理地址是多少?

答:4146除以4096得1余50,这页号为1,页内位移为50;1对应于4,这物理地址为4*4096+50=16434b。

4. 某段式存储管理系统的段表如图所示。

段号段长段始址015KB40KB18KB80KB210KB100KB

请将逻辑地址[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]不合法

第六章

因篇幅问题不能全部显示,请点此查看更多更全内容