操作系统练习题及答案Word格式.docx
《操作系统练习题及答案Word格式.docx》由会员分享,可在线阅读,更多相关《操作系统练习题及答案Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
![操作系统练习题及答案Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/22/7001dee3-cf5b-4b84-bef9-7e3487880d21/7001dee3-cf5b-4b84-bef9-7e3487880d211.gif)
4.引入进程的目的是使程序能正确地并发执行,以提高资源利用率和系统吞吐量,而引入线程的目的是减少并发执行的开销,提高程序执行的并发程度。
5.进程是由进程控制块、程序段和数据段组成,其中进程控制块是进程存在的唯一标志
6.进程的最基本特征是动态性和并发性,除此之外,它还有独立特征、异步性和结构特征。
7.由于进程的实现是程序的一次执行,所以进程有动态性的基本特征,该特征还表现在进程由创建而产生,由调度而执行,由撤销(终止)而消亡,即进程具有一定的生命期。
8.引入进程带来的好处是提高资源利用率和增加系统吞吐量。
9.当前正在执行的进程由于时间片用完而暂停执行时,该进程应转变为就绪状态;
若因发生某种事件而不能继续执行时,应转为阻塞状态;
若终端用户的请求而暂停执行时,它应转变为静止就绪状态。
10.用户为阻止进程继续运行,应利用挂起原语;
若进程正在执行,应转变为静止就绪状态;
以后,若用户要恢复其运行,应利用激活原语,此时进程应转变为活动就绪状态。
11.系统中共有5个用户进程,且当前CPU在用户态下执行,则最多可有4个用户进程处于就绪状态,最多可有4个用户处于阻塞状态。
12.同步机制应遵循的准则有空闲让进、忙则等待、有限等待和让权等待。
13.在记录型信号量机制中,S.value>
0时的值表示可用的临界资源数量;
每次wait操作意味着申请一个临界资源,因此应将S.value减1,当S.value小于0时,进程应阻塞。
14.在记录型信号量机制中,每次signal操作意味着释放一个临界资源,因此
应将S.value加1,当S.value<
0时,表示仍有请求该资源的进程被阻塞,此时应
唤醒相应阻塞队列中的首进程。
15.在利用信号量实现进程互斥时,应将临界区置于wait操作和signal操作之间。
16.在每个进程中访问临界资源的那段代码称为临界区。
为实现对它的共享,应保证进程互斥进入自己的临界区,为此,在每个进程的临界区前应设置进入区,临界区后应设置退出区。
17.进程通信的类型有共享存储器、消息系统、管道通信三类,其中管道通信利用共享文件进行通信。
18.为实现消息缓冲队列通信,应在PCBxxt增加消息队列首指针mq消息队列互斥信号量mutex、消息队列资源信号量Sm三个数据项。
19.在采用用户级线程的系统中,OS进行CPU调度的对象是进程;
在采用内核支持线程的系统中,CPU调度的对象是线程。
20.线程之所以能减少并发执行的开销是因为线程基本不拥有资源。
P76填空题
1.高级调度又称作作业调度,其主要功能是按照一定的算法从外存的后备队列中选若干作业进入内存;
低级调度又称作进程调度,其主要功能是按一定算法从就绪队列中选一个进程投入执行。
2.进程调度有抢占调度和非抢占调度两种方式。
3.在抢占调度方式中,抢占的原则有时间片原则、短作业有限和优先权优先。
4.在设计进程调度程序时,应考虑引起调度的因素、调度算法的选择和就绪队列的组织三个问题。
5.为了使作业的平均xx时间最短,应该选择短作业(进程)优先调度算法;
为了使当前执行的进程总是优先权最高的进程,则应选择立即抢占的高优先权优先调度算法;
而分时系统则常采用时间片轮转调度算法。
6.高响应比优先调度算法综合考虑了作业的运行时间和等待时间。
7.死锁产生的主要原因是竞争资源和进程推进顺序非法。
8.死锁产生的必要条件是互斥条件、请求与保持条件、不剥夺条件和环路等待条件。
9.通过破坏死锁产生的四个必要条件可进行死锁的预防,其中互斥条件一般是不允许破坏的,一次性分配所有资源破坏的是其中的请求与保持条件,资源的有序分配破坏的是其中的环路等待条件。
10.在避免死锁的方法中,允许进程动态地申请资源,但系统在进行分配运算
时应先计算资源分配的XX。
若此次分配不会导致系统进入不安全状态,便将资源分
配给它,否则进程等待。
11.解决死锁的方法有预防、避免、检测并解除等,一次性分配所有的资源采用的是其中的预防死锁方法,银行家算法采用的是其中的避免死锁方法。
12.撤销进程和剥夺资源是解除死锁的两种常用的方法。
二、简答题
P11例16
操作系统具有哪几大特征?
它们之间有何关系?
操作系统的特征有并发、资源共享、虚拟和异步性。
它们的关系如下
1并发和共享式操作系统最基本的特征。
为了提高计算机资源的利用率。
OS必然要采用多道程序设计技术,使多个程序共享系统的资源,并发地执行。
2并发和共享互为存在的条件。
一方面,资源的共享是以程序(进程)的并发执行为条件,若系统不允许程序并发执行,自然不存在资源共享问题;
另一方面,若系统不能对资源共享实施有效的管理,协调好各个进程对共享资源的访问,也必将影响到程序的并发执行,甚至根本无法并发执行。
3虚拟技术以并发和资源共享为前提。
为了使并发进程能更方便、更有效地共
享资源,操作系统常采用多种虚拟技术来逻辑上增加CPU和设备的数量以及存储器的容量,从而解决众多并发进程对有限的系统资源的争用问题。
4异步性是并发和共享的必然结果。
操作系统允许多个并发进程共享资源、相互合作,使得每个进程的运行过程受到其他进程的制约,不再“一气呵成”,这必然导致异步性特征的产生。
P12例18微内核结构具有哪些优点?
为什么?
微内核系统的优点如下:
1提高了系统的可扩展性。
在微内核结构中,OS的大部分功能都是由相对独立
的服务器来实现的,用户可以根据需要,选配其中的部分或全部服务器;
还可以随
着计算机硬件和OS技术的发展,相应地更新若干服务器或增加一些新的服务器。
2增强了操作系统的可靠性。
由于所有的服务器都是运行在用户态,它们不能直接访问硬件,因此,当某个服务器出现错误时,通常只会影响到它自己,而不会引起内核和其他服务器的损坏和崩溃。
3可移植性更好。
在微内核的OSxx所有与特定CPU和I/O设备硬件相关的代码均放在内核和内核下面的硬件隐藏层xx,而操作系统其他绝大部分(即各种服务器)均与硬件平台无关,因而,把操作系统移植到另一硬件平台上所需做的改动比较小。
4适用于分布式系统。
对用户进程(即客户)而言,如果他通过消息传递与服务器通信,那么他只需发送一个请求,然后等待服务器发来的响应,而根本无需知道这条消息在本地机就地处理还是通过网络送给远地机上的服务器。
P18进程的状态
1.进程的三种基本状态
1就绪状态。
进程已获得除CPU以外的所有必要资源,只要得到CPU便可立即执行。
2执行状态。
进程已得到CPU其程序正在CPUxX执行。
3阻塞状态。
正在执行的进程因某种时间(如I/O请求)的发生而暂时无法继续执行,只有相应事件完成后,才能去竞争CPU。
2.进程的挂起状态
操作系统练习题及答案“挂起”的实质是使进程不能继续执行,即使挂起后的进程处于就绪状态,它也不能参与CPU勺竞争。
因此,称被挂起的进程处于静止状态;
没被挂起的进程则处于活动状态。
处于静止状态勺进程,只有通过“激活”动作,才能转换成活动状态
P34例1
在操作系统中为什么要引入进程勺概念?
它会产生什么样勺影响?
在操作系统xx引入进程勺概念,是为了实现多个程序勺并发执行。
传统勺程序不能与其他程序并发执行,只有在为其创建进程后,才能与其他程序(进程)并发执行。
这是因为并发执行勺程序(即进程)是“停停走走”地执行,只有在为它创建进程后,在它停下时,方能将其现场信息保存在它的PCBxx待下次被调度执
行时,再从PCBxx恢复CPU®
场并继续执行,而传统的程序却无法满足上述要求。
建立进程所带来的好处是使多个进程能并发执行,这极大地提高了资源利用率和系统吞吐量。
但管理进程也需付出一定的代价,包括进程控制块及协调各个运行机构所占用的内存空间开销,以及为进行进程间的切换、同步及通信所付出的时间开销。
P36例4
PCB的作用是什么?
进程控制块的作用,是使一个在多道程序环境下不能独立运行的程序,成为一
个能独立运行的基本单位,即一个能与其他进程并发执行的进程
P58处理机调度的三个级别
1.高级调度
2.低级调度
分两种方式:
1非抢占方式
2抢占方式
抢占的原则有:
优先权原则、短作业优先原则、时间片原则
3.中级调度
P59调度算法
1.先来先服务算法(FCFS)
2.短作业(进程)有限(SJF/SPF)
3.高优先权有限(HPF)进程优先权的设置通常分成静态和动态两种:
①静态优先权
②动态优先权
4.高响应比优先调度算法(HRR)N
5.时间片轮转法(RR)
6.多级反馈队列调度算法(FB)
P66例2
试说明低级调度的主要功能
低级调度用于决定就绪队列中的哪个进程应获得处理机,并由分派程序把处理机
分配给该进程。
其主要功能有:
①保存当前进程的处理机现场信息
②按某种算法选择投入执行的新进程
3恢复新进程的现场,从而将处理机分配给新进程
P69例5为什么说多级反馈队列调度算法能较好地满足各方面用户的需要?
对终端型作业用户而言,他们提交的作业大多属于交换型作业,作业通常较小,
系统只要能使这些作业在第一个队列所规定的时间片内完成,便可使他们都感到满
意。
对于短批作业作业用户而言,开始时他们的作业像终端型作业一样,如果仅在
第一个队列中执行一个时间片即可完成,便可获得与终端型作业一样的响应时间;
对于稍长的作业,通常也只需在第二队列和第三队列各执行一个时间片即可完成,
其XX时间仍然很短。
对于长批处理作业用户而言,他们的作业将依次在第1,2,
n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理,
而且每往下降一个队列,其得到的时间片将随着增加,故可进一步缩短长作业的等
待时间
P70例7
对下面五个非周期性实时任务,按最早开始截止时间优先调度算法应如何进行CPU
调度?
进程
到达时间
执行时间
开始截止时间
A
10
20
110
B
C
40
50
D
90
E
60
70
P70例8
若有三个周期性任务,任务A要求每20ms执行一次,执行时间为10ms任务B要
求每50ms执行一次,执行时间为10ms;
任务C要求每50ms执行一次,执行时间为15ms
应如何按最低松弛度优先算法对它们进行CPU调度?
P72例12
在银行家算法中,若出现下面的资源分配情况:
ProcessAllocationNeedAvailable
P0003200121622
P213542356
P300320652
P400140656
试问:
1.该状态是否安全?
2.当进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?
3.如果系统立即满足P2的上述请求,则系统是否立即进入死锁状态?
三、编程题
P39例11
试写出相应的程序来描述图所示的前趋关系
前趋图中存在着如下的前趋关系:
S1—S2、S1—S3SPS4SPS5S3^S6S7、SgS7、S6^S7
因此可分别为它们设置初始值为0的信号量a、b、c、d、e、f、g、h,具体的程序
可描述如下:
vara,b,c,d,e,f,g,h:
semaphore:
=0,0,0,0,0,0,0,0;
begin
parbegin
S1;
signal(a);
signal(b);
end;
wait(a);
S2;
signal(c);
signal(d);
wait(b);
S3;
signal(e);
wait(c);
S4;
signal(f);
wait(d);
S5;
signal(g);
wait(e):
S6;
signal(h);
wait(f);
wait(g);
wait(h);
S7;
parend
end
P42例13
用信号量实现共享单位中的置换进程与打印进程
计算进程不断地计算出结果并将它放入单缓冲区中,打印进程则负责从单缓冲区中取出每一个结果进行打印。
从临界资源的角度考虑:
varfull,empty:
=0,1
cp:
repeat
computenextnumber;
wait(empty);
addthenumbertobuffer;
signal(full);
untilfalse
end9
pp:
wait(full);
takeanumberfrombuffer;
signal(empty);
printthenumber;
从同步的角度考虑:
varSA,SB:
=0,0;
computethefirstnumber;
addthenumbertobuffer;
signal(SA);
wait(SB);
signal(SA);
wait(SA);
signal(SB);