操作系统复习题2.docx
- 文档编号:12863058
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:24
- 大小:33.87KB
操作系统复习题2.docx
《操作系统复习题2.docx》由会员分享,可在线阅读,更多相关《操作系统复习题2.docx(24页珍藏版)》请在冰豆网上搜索。
操作系统复习题2
一、选择题
1.在进程的组成部分之中,进程在运行中不可修改的部分是_B_____。
A.私用程序段B.共享程序段
C.数据段D.进程控制块
2.响应比高者优先作业调度算法是以计算时间和___D___来考虑的。
A.输入时间B.完成时间C.周转时间D.等待时间
3.在消息缓冲通信中,消息队列属于____A__资源。
A.临界B.共享C.永久D.可剥夺
4.进程间的同步是指进程间在逻辑上的相互___B___关系。
A.联接B.制约C.继续D.调用
5.最适合于分时系统的进程调度算法是____D__。
A.先来先服务(FCFS)B.最短作业优先(SSJF)
C.优先数法D.轮转法(RR)
6.进程A和进程B通过共享缓冲区协作完成数据处理,进程A负责生产数据并放入缓冲区,进程B从缓冲区中读数据并输出。
进程A和进程B之间的关系是___B___。
A.互斥关系B.同步关系C.互斥和同步D.无制约关系
7.在优先级调度中,_____C_类进程可能被“饿死”,即长时间得不到调度。
A.短进程B.长进程C.低优先级进程D.大内存进程
8.进程从运行状态到阻塞状态可能是由于____C__。
A.进程调度程序的调度B.现运行进程的时间片耗尽
C.现运行进程执行了wait操作D.现运行进程执行了signal操作
9.银行家算法在解决死锁问题中是用于_____B_的。
A.预防死锁B.避免死锁C.检测死锁D.解除死锁
10.___D___不是进程调度算法。
A.时间片轮转法B.先来先服务方法
C.响应比高者优先法D.均衡调度算法
11.下面关于线程的叙述中正确的是___A___。
A.线程包含CPU现场,可以独立执行程序B.每个线程有自己独立的地址空间
C.线程之间的通信必须使用系统调用函数D.进程只能包含一个线程
12.并发进程之间____D__。
A.彼此无关B.必须同步C.必须互斥D.可能需要同步或互斥
13.当一个进程运行时,系统可能基于某种原则强行将其撤下,把处理器分配给其他进程,这种调度方式是_B_____。
A.非剥夺方式B.剥夺方式C.中断方式D.查询方式
14.信号量S不能用于____D__操作。
A.signalB.waitC.赋初值D.运算表达式
15.____D__是一种只能进行wait操作和signal操作的特殊变量
A.调度B.进程C.同步D.信号量
16.分配给进程占用处理机的时间到而强迫进程P让出处理器,或有更高优先级的进程要运行,迫使正在运行的进程P让出处理器,则进程P状态变化的情况为___A___
A.运行态->就绪态B.运行态->等待态
C.就绪态->运行态D.等待态->就绪态
17.下面关于进程的叙述中正确的是__A____。
A.进程获得CPU运行是通过调度得到的
B.优先级是进程调度的重要依据,一旦确定就不能改变
C.在单CPU的系统中,任何时刻都有一个进程处于运行状态
D.进程申请CPU得不到满足时,其状态变为阻塞
18.操作系统通过___B___对进程进行管理。
A.进程B.进程控制块C.进程启动程序D.进程控制区
19.若一个进程拥有100个线程,这些线程属于用户级线程,它们在系统调度执行时间上占用的时间片个数是___A___。
A.1B.100C.1/100D.0
20.解除死锁通常不采用的方法是__D____。
A.终止一个死锁进程B.终止所有死锁进程
C.从死锁进程处抢夺资源D.从非死锁进程处抢夺资源
21.到其他3种状态的进程状态是__D____。
A.就绪B.阻塞C.完成D.执行
22.信号量的初值为2,当前值为-3,则表示等待进程有__C____。
A.1个B.2个C.3个D.5个
23.wait操作可能导致__C____。
A.进程就绪B.进程结束C.进程阻塞(等待)D.新进程创建
24.在操作系统中为避免系统的死锁采用___A___。
A.银行家算法B.破坏占有并等待条件
C.死锁检测和恢复D.破坏非剥夺条件
25.下列的进程状态变化中不可能发生的变化是_A_____。
A.等待→运行B.运行→等待C.运行→就绪D.等待→就绪
26.如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的初值应设置为___C___。
A.3B.1C.2D.0
27.进程之间交换数据不能通过__C____途径进行。
A.共享文件B.消息传递C.访问进程地址空间D.访问共享存储区域
28.进程控制块PCB不包括的内容是___D___。
A.CPU现场B.进程优先级C.进程运行状态D.文件缓冲区
29.PCB是描述进程状态和特性的数据结构,一个进程__D____。
A.可以有多个PCB B.可以和其他进程共用一个PCB
C.可以没有PCB D.只能有唯一的PCB
30.资源顺序分配法破坏了死锁发生的___D___必要条件。
A.互斥占用B.占有等待C.非剥夺D.循环等待
31.进程和程序的本质区别是_B_____。
A.内存和外存B.动态和静态特征
C.共享和独占使用计算机资源D.顺序和非顺序执行指令
32.设有两个进程共享3个同类资源,为使系统不死锁,每个进程最多可以申请__C____资源。
A.0B.1C.2D.3
33.作业调度中的先来先服务算法是以____C__为出发点考虑的。
A.作业执行时间B.作业的周转时间
C.作业等待时间D.等待时间加运行时同
34.设m为同类资源数,n为系统中的并发进程数。
当n个进程共享m个互斥资源时,每个进程的最大需求是w。
下列情况下,系统会死锁的是_D_____。
A.m=2,n=l,w=2B.m=2,n=2,w=1
C.m=4,n=3,W=2D.m=4,n=2,w=3
35.用于解决进程间互斥的方法是___B___。
①信号量及wait、signal操作②加锁与解锁③信箱方式
④消息缓冲方式⑤特权指令方式
A.③、④和⑤B.①和②C.①和③D.②和⑤
36.在操作系统中,每个进程具有独立性,进程之间又具有相互制约性。
对于任何两个并发进程,它们__C____。
A.必定无关B.必定相关C.可能相关D.可能相同
二、简答题
1.什么是线程?
进程和线程的关系是什么?
线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度实体。
在具有多线程机制的操作系统中,处理机调度的基本单位不是进程而是线程。
一个进程可以有多个线程,而且至少有一个可执行线程。
进程和线程的关系是:
(1)线程是进程的一个组成部分。
(2)进程的多个线程都在进程的地址空间活动。
(3)资源是分给进程的,而不是分给线程的,线程在执行中需要资源时,系统从进程的资源分配额中扣除并分配给它。
(4)处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。
(5)线程在执行过程中,需要同步。
2.进程能自己将自己唤醒吗?
进程能自己将自己撤销吗?
唤醒进程和撤消进程都是要通过CPU上运行程序来实现的。
一个进程入睡了,它就不可能被调度到CPU上运行;一个进程在撤消前必须先进入终止状态,而处于终止状态的进程不可能被调度到CPU上运行。
因此,进程被唤醒、被撤消都不能由自己来完成,只能由别的进程实现。
3.父进程创建子进程之后,父子进程间的关系是什么?
一个进程创建子进程之后,进程与产生的进程之间的关系是父子关系,分别成为进程和子进程。
子进程一经产生就与你进程并发执行,子进程共享父进程和子进程。
子进程一经产生就与你进程并发执行,子进程共享父进程的正文段和已经打开的文件。
4.简述引进线程的好处。
(1)以线程作为系统调度的基本单位,减少了系统的时空开销。
以进程为系统调度的基本单位的系统中,进程的切换是很频繁的。
在切换中由于要保留当时的运行环境,还要设置新选中的进程的运行环境,这既花费了处理机的时间,又增加了主存的空间,从而也限制了系统进程的数量和进程的切换速度。
(2)引进线程提高了系统的并行能力。
线程作为进程内的一个可执行实体,减少了并行粒度。
线程作为调度的基本单位而不是资源分配的基本单位,调度更为容易,而且采用线程提高系统的并行能力比采用进程更为有效。
(3)同一进程的线程共享进程的用户地址空间,所以同一进程的线程间的通信更容易实现。
5.当一个进程的父进程被撤销时,该进程是撤销好还是不撤销好?
在实际系统中,两种处理办法都是可行的,且各有优缺点。
若撤消,则该进程的任务可能还没有完成,这显然是不利的,特别是当该进程的运行结果对其他进程的运行很重要(如该进程是其他进程的前趋进程,没有它的运行结果其他进程无法运行)时;若不撤消,则该进程又可能成为不可控的"孤儿",从而产生不可预测的结果。
比较好的做法是,当一个进程的父进程被撤消时,可以将该进程"过继"给系统内一个级别较高的进程(如Unix中的1#进程),让它有一个"新的父亲",这样既可以继续完成其任务又不会成为不可控的。
6.为什么说进程同步问题关系到OS的成败?
同步机制应遵循的准则是什么?
进程同步问题若处理不当,有可能会产生种种"与时间有关性错误",特别是当两个或多个进程共享了公共变量而又没有互斥地使用这些变量时,极有可能导致用户程序运行结果的不正确,这量种灾难性的后果。
这种OS显然是不成功的,是用户不敢使用的。
有以下四条准则:
空闲让进、忙则等待、有限等待、让权等待。
7.进程之间存在哪几种相互制约关系?
各是什么原因引起的?
下列活动分别属于哪种制约关系?
(1)若干同学去图书馆借书。
(2)两队举行篮球比赛。
(3)流水线生产的各道工序。
(4)商品生产和消费。
进程间存在着两种相互制约的关系:
直接制约关系(即同步问题)和间接制约关系(即互斥问题)。
同步问题是存在逻辑关系的进程之间相互等待产生的制约关系,互斥问题是相互无逻辑关系的进程间竞争使用相同的资源所发生的制约关系。
(1)属于互斥关系,因为书的个数是有限的,一本书只能借给一个同学。
(2)属于互斥关系,篮球只有一个,两队都要争夺。
(3)属于同步关系,各道工序的开始都依赖前道工序的完成。
(4)属于同步关系,商品没生产出来,消费无法进行,商品未消费完,生产也无需进行。
8.高级调度和低级调度的主要任务是什么?
为什么引入中级调度?
(1)高级调度又称为作业调度。
它是批处理系统中使用的一种调度。
其主要任务是按照某种算法从外存的后备队列上选择一个或多个作业调入内存,并为其创建进程、分配必要的资源,然后再将所创建的进程控制块插入就绪队列中。
(2)低级调度又称进程调度。
它是距离硬件最近的一级调度。
其主要任务是按照某种算法从就绪队列上选择一个(或多个)进程,使其获得CPU。
(3)引入中级调度的目的是为了提高内存利用率和系统吞吐量。
其功能是,让那些暂时不能运行的进程不再占用宝贵的内存资源,而是调其到外存上等候。
此时的进程状态为挂起状态。
当这些进程重新具备运行条件且内存空闲时,由中级调度选择一部分挂起状态的进程调入内存并将其状态变为就绪状态。
9.在剥夺调度中,有哪些剥夺原则?
(1)时间片原则。
在轮转算法中,CPU轮流为诸多进程服务,每个进程运行完自己的时间片后,系统就将CPU剥夺过来,交给下一个进程使用。
(2)优先级原则。
为紧迫的作业赋予较高的优先级,这种作业到达系统或由阻塞状态被唤醒后,若其优先级高于当前运行的进程的优先级,可以剥夺当前运行进程的CPU。
(3)短作业(进程)优先原则。
若一个作业(进程)到达系统,其运行长度比当前运行的进程长度明显的短,则剥夺当前运行的进程CPU。
10.引起进程调度的主要因素。
1)一个进程运行完毕。
(2)一个正在运行的进程被阻塞。
(3)在抢占式调度中,一个高优先级的进程被创建。
(4)在抢占式调度中,一个高优先级进程由阻塞唤醒。
(5)在轮转式调度中,正垢进程运行完一个时间片。
11.何为死锁?
产生死锁的原因和必要条件是什么?
比较三种解决死锁的方法?
(1)死锁是指多个进程因竞争资源而造成的一种僵持状态。
若无外力作用,这些进程都将永远处于阻塞状态,不能再运行下去。
(2)产生死锁的原因有:
资源不足、进程推进次序不当。
(3)产生死锁的必要条件有:
互斥条件、请求和保持条件、非剥夺条件、环路等待条件。
比较三种解决死锁的方法:
(1)预防死锁方法,主要是破坏产生死锁的必要条件。
该方法是最容易实现的,但系统资源利用率较低。
(2)避免死锁方法,比较实用的有银行家算法(BankerAlgorithm)。
该算法需要较多的数据结构,实现起来比较困难,但资源利用率最高。
(3)检测死锁方法是基于死锁定理设计的。
定期运行该算法对系统的状态进行检测,发现死锁便予以解除。
其中,需要比较一下各咱死锁解除方案的代价,找到代价最小的方案。
该方法最难实现,资源利用率较高。
12.试比较说明进程和程序的区别有哪些?
(1)每个进程实体中包含了程序段和数据段这两个部分,因此说进程是与程序是紧密相关的。
但从结构上看,进程实体中除了程序段和数据段外,还必须包含一个数据结构,即进程控制块PCB。
(2)进程是程序的一次执行过程,因此是动态的;动态性还表现在进程由创建而产生、由调度而执行、由撤消而消亡,即它具有一定的生命周期。
而程序则只是一组指令的有序集合,并和永久地存放在某种介质上,其本身不具有运动的含义,因此是静态的。
(3)多个进程实体可同时存放在内存中并发地执行,也正是引入进程的目的。
而程序(在没有为它创建进程时)的并发执行具有不可再现性,因此程序不能正确地并发执行。
(4)进程是一个能够独立运行、独立分配资源和独立接受调度的基本单位。
而因程序不具有PCB,所以它是不可能在多道程序环境下独立运行的。
(5)程与程序不一一对应。
同一个程序的多次运行,将形成多个不同的进程;同一个程序的一次执行也可以产生多个进程;而一个进程也可以执行多个程序。
三、应用题
1.有一个理发师,一把理发椅和n把供等候理发的顾客坐的椅子。
如果没有顾客,则理发师便在理发椅子上睡觉;当一个顾客到来时,必须唤醒理发师,进行理发;如果理发师正在理发时,又有顾客来到,则如果有空椅子可坐,他就坐下来等,如果没有空椅子,他就离开。
为理发师和顾客各编一段程序描述他们的行为,要求不能带有竞争条件。
#defineCHAIRS/*为等候的顾客准备的椅子数*/
semaphorecustomers=0;
semaphorebarbers=0;
semaphoremutex=1;/*用于互斥*/
intwaiting=0;
voidbarber()
{
while
(1)
{
wait(customers);
wait(mutex);
waiting=waiting-1;
signal(mutex);
理发;
signal(barbers);
}
}
voidcustomers()
{
wait(mutex);
if(waiting { waiting=waiting+1; signal(mutex): signal(customers); 坐下等待; wait(barbers); } else { signal(mutex); } } 2.计算进程PC和打印进程P01、P02共享一个单缓冲区,计算进程负责计算,并把计算结果放入单缓冲中;打印进程P01、P02则负责从单缓冲中取出计算结果进行打印,而且对每个计算结果,P01和P02都需分别打印一次。 请用记录型信号量描述上述进程间的同步关系。 为了实现计算进程和打印进程之间的同步,并使单缓冲中的每个计算结果都被两个打印进程分别打印一次。 可设置四个信号量: full1表示缓冲中是否有可供P01打印的计算结果,full2表示缓冲中是否有可给P02打印的计算结果;emptypl、empty2则表示计算结果是否已被P01l、P02取走,只有当一个结果被两个打印进程都取走后,缓冲区才变空,计算进程才可将下一个计算结果放入单缓冲。 相应的同步算法可描述如下: Varempty1,enpty2,full1,full2: semaphore: =1,1,0,0; begin Parbegin PC: begin Repeat computrtnextnumber; P(empty1): P(empty2); addthenumbertobufer; V(full1); V(full2); Untilfalse; end P01: begin repeat P(full1); takefrombufer; V(emptyl): printlastnumber; untilflase; end P02: begin Repeat P(full2); takefrombuffer; V(empty2); printlastnumber; untilfalse end parend end 3.设有三个进程,输入进程(input)、计算进程(compute)和输出进程(output),它们通过共享两个缓冲区buf1和buf2协作完成任务。 如下图所示 三个进程之间的合作关系如下: (1)输入进程使用put()函数把数据送到buf1,供计算进程调用calculate()函数计算; (2)计算进程每次调用get()函数从buf1取出已输入的可计算的数据进行计算,并把计算结果使用put()函数把数据送到buf2送入buf供输出进程打印; (3)输出进程调用get()函数把buf2中的数据使用print()函数输出。 定义合适的信号量,并用伪代码完成实现过程。 信号量: nonf1、none1: 输入进程与计算进程同步,buf1是否为空; nonf2、none1: 计算进程与输出进程同步,buf2是否为空; s1、s2: 分别互斥使用buf1和buf2 procedureinput begin wait(nonf1) wait(s1) put(data); signal(s1); signal(none1); untilfalse end; procedurecompute begin wait(none1); wait(s1); data=get(); data=calculate(data); signal(s1); signal(nonf1); wait(nonf2); wait(s2); put(data); signal(s2); signal(none2); untilfalse end; procedureoutput begin wait(none2); wait(s2); data=get(); print(data); signal(s2); signal(nonf2); untilfalse end; 4.设系统中有三类资源A、B和C,又设系统中有5个进程P1,P2,P3,P4和P5。 在T0时刻系统状态如下: 最大需求量已分配资源量剩余资源量 ABCABCABC P1 P2 P3 P4 P5 1210003163 175100 235135 064002 065001 (1)系统是否处于安全状态? (请给出详细的判断过程)如是,则给出进程安全序列。 (2)如果进程P5申请1个资源类A和1个资源类C,能否实施分配? 为什么? (1)利用安全性算法对T0时刻的资源分配情况进行分析,结果如下: Work Need Allocation Work+Allocation Finish P3 163 100 135 298 true P1 298 127 003 2911 true P2 2911 075 100 3911 true P4 3911 064 002 3913 true P5 3913 062 001 3914 true 系统处于安全状态,安全序列为: P3,P1,P2,P4,P5。 (2)P1发出请求向量Request1(1,0,1),系统按银行家算法进行检查: 1)Request1(1,0,1)<=Need1(1,2,6) 2)Request1(1,0,1)<=Available(1,6,3) 3)系统先假定可为P1分配资源,并修改Available、Allocation1、Need1向量,资源变化情况如下: maxAllocationAvailableNeed ABCABCABCABC P11210004062016 P2175100075 P3235135100 P4064002062 P5065001064 剩余资源可满足P4,分给P4给还后(0,6,4)可满足P5,分配P5归还后(0,6,5)不满足其它进程要求,即不能实施分配,因为分配后找不到安全序列,系统将处于不安全状态。 5.设有五道作业,它们的提交时间和运行时间见下表,试给出在如下表所示的三种调度算法下,作业的执行顺序,以及平均周转时间和带权平均周转时间: (1)先来先服务调度算法; (2)短作业优先调度算法; (3)响应比高优先调度算法。 作业提交和运行时间表 作业名 提交时间/h 需执行时间/h J1 10.1 0.8 J2 10.3 0.5 J3 10.5 0.4 J4 10.6 0.3 J5 10.7 0.2 (1)采用先来先服务(FCFS)算法。 作业名 提交时间/h 需执行时间/h 开始运行时间/h 完成时间/h J1 10.1 0.3 10.1 10.4 J2 10.3 0.5 10.4 10.9 J3 10.5 0.4 10.9 11.3 J4 10.6 0.3 11.3 11.6 J5 10.7 0.2 11.6 11.8 J1,J2,J3,J4,J5 T=[(10.4-10.1)+(10.9-10.3)+(11.3-10.5)+(11.6-10.6)+(1l.8-10.7)]/5 =3.8/5=0.76h T=[(10.4-10.1)/0.3+(10.9-10.3)/0.5+(11.3-10.5)/0.4+(11.6-10.6)/0.3+(1l.8-10.7)/0.2]/5 =13.033/5=2.61 (2)短作业优先调度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 复习题