10、先来先服务算法以( )去选作业,可能会使计算时间短的作业等待时间过长。
A.进入输入井的先后次序 B.计算时间的长短 C.响应比的高低 D.优先数的大小 11、.在进行作业调度时.要想兼顾作业等待时间和计算时间,应选取( )。
A均衡调度算法 B.高优先级优先调度算法 c.先来先服务算法 D.高响应比优先算法 12、.作业调度的关键在于( )。
A.选择恰当的进程管理程序 B.选择恰当的作业调度算法 C.友好的用户界面 D.用户作业准备充分 13、作业调度算法提到的响应比是指( )。
A.作业计算时间与等待时间之比 B.作业等待时间与计算时间之比 C.系统调度时间与作业等待时间之比 D.作业等待时间与系统调度时间之比 14、作业调度选择一个作业装入主存后,该作业能否占用处理器必须由( )来决定。
A设备管理 B.作业控制 C.驱动调度 D、进程调度 15、交互作业的特点是采用( )的方式工作。
A.作业控制语句 B.人机对话 c.作业说明书 D.作业信息文件 (二)填空题
1、完成一个作业一般要经过若干加工步骤,作业的每一个加工步骤称为一个______ 2、一个作业执行时要分若干作业步,作业步的顺序是由_____用户_______指定的。
3、操作系统为用户提供了说明作业加工步骤的两种手段,_____作业控制语言_____和____操作控制命令___ 4、作业控制方式有_______批处理_____和__交互____。
5、在批处理时操作系统按各作业的控制说明书的要求,分别控制相应的作业按指定的步骤去执行,这种控制方式称为_____批处理__。
6、采用交互方式时必须在计算机上直接操作,为此也称它为_____联机控制方式_____。
7、用户准备批处理作业,除了要准备好源程序和初始数据外,还必须有用作业控制语言编写的______。 8、常用的作业调度算法有先来先服务算法、______、响应比最高者优先算法。
9、一个理想的调度算法应该是既能_提高效率_,又能使进入系统的作业_及时___得到计算结果。
10、先来先服务算法仅从输入井的先后次序去选作业,可能会使计算时间____短____的作业等待时间过___。 11、短作业优先算法只考虑用户估计的计算时间,可能使计算时间__长____的作业等待太_久__。 12、采用短作业优先算法,肯定能使______最小。
13、响应比最高者优先算法综合考虑作业的______和______
14、确定作业的优先级可以由___用户 来提出自己作业的优先数,也可以由__OS___根据作业的缓急程度、作业类型等因素综合考虑。
15、作业调度与_进程调度___相互配合才能实现多道作业的并行执行。
16、操作系统根据作业步控制语句创建一个进程,并使该进程处于____就绪___状态。 (三)简答题
1、什么是作业和作业步? 2、何谓作业调度?
3、设计作业调度程序需考虑哪些因素? 4、常用的作业调度算法有哪些?
5、什么叫周转时间和平均周转时间?在作业调度中,用户和系统如何看待它们? 6、作业调度与进程调度在作业执行过程中的作用分别是什么? 7、交互式作业的特点是什么? 8、分时操作系统如何调度终端作业? (四)应用题
1、假定在一处理上执行以下5个作业:
分别画出采用FCFS、SJF调度算法的填写如下调度图。并找出最优算法。
作业情况 调度算法 服务时间 4 6 5 3 2 作业名 到达时间 1 2 3 4 5 0 1 2 3 4 平均 完成时间 FCFS 带权周转时间 完成时间 SJF 周转时间 带权周转时间
周转时间 第三章-2 处理机管理
(一)单项选择题
l、系统出现死锁的根本原因是( )。
A.作业调度不当 B.系统中进程太多 C.资源的独占性 D.资源管理和进程推进顺序都不得当 2、死锁的预防是根据( )采取措施实现的。
A.配置足够的系统资源B.使进程的推进顺序合理C.破坏产生死锁的四个必要条件之一 D.防止系统进入不安全状态 3、采用按序分配资源的策略可以预防死锁.这是利用了使( )条件不成立。 A.互斥使用资源 B循环等待资源 c.不可抢夺资源 D.占有并等待资源 4、可抢夺的资源分配策略可预防死锁,但它只适用于( )。 A.打印机 B.磁带机 c.绘图仪 D.主存空间和处理器 5、进程调度算法中的( )属于抢夺式的分配处理器的策略。
A.时间片轮转算法 B.非抢占式优先数算法 c.先来先服务算法 D.分级调度算法 6、用银行家算法避免死锁时,检测到( )时才分配资源。
A.进程首次申请资源时对资源的最大需求量超过系统现存的资源量 B.进程己占用的资源数与本次申请资源数之和超过对资源的最大需求量
C.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足尚需的最大资源量 D进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足本次申请量,但不能满足尚需的最大资源量
7、实际的操作系统要兼顾资源的使用效率和安全可靠,对资源的分配策略,往往采用 ( )策略。 A死锁的预防 B.死锁的避免 c.死锁的检测 D.死锁的预防、避免和检测的混合 (二)填空题
l、若系统中存在一种进程,它们中的每一个进程都占有了某种资源而又都在等待其中另一个进程所占用的资源。这种等待永远不能结束,则说明出现了______。
2、如果操作系统对_资源使用不当__或没有顾及进程_并发执行时__可能出现的情况,则就可能形成死锁。 3、系统出现死锁的四个必要条件是:互斥使用资源,______,不可抢夺资源和______。
4、如果进程申请一个某类资源时,可以把该类资源中的任意一个空闲资源分配给进程,则说该类资源中的所有资源是_等价___。
5、如果资源分配图中无环路,则系统中_无死锁___发生。
6、为了防止死锁的发生,只要采用分配策略使四个必要条件中的_一个条件不成立__。
7、使占有并等待资源的条件不成立而防止死锁常用两种方法:___静态分配资源____和___释放已占资源____. 8、静态分配资源也称_预分配资源_,要求每—个进程在_开始执行前__就申请它需要的全部资源。 9、释放已占资源的分配策略是仅当进程______时才允许它去申请资源。
10、抢夺式分配资源约定,如果一个进程已经占有了某些资源又要申请新资源,而新资源不能满足必须等待时、系统可以______该进程已占有的资源。
11、目前抢夺式的分配策略只适用于______和______。
12、对资源采用______的策略可以使循环等待资源的条件不成立。
13、如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于______。 14、只要能保持系统处于安全状态就可______的发生。 15、______是一种古典的安全状态测试方法。
16、要实现______,只要当进程提出资源申请时,系统动态测试资源分配情况,仅当能确保系统安全时才把资源分配给进程。
17、可以证明,M个同类资源被n个进程共享时,只要不等式______成立,则系统一定不会发生死锁,其中x为每个进程申请该类资源的最大量。
18、______对资源的分配不加限制,只要有剩余的资源,就可把资源分配给申请者。
19、死锁检测方法要解决两个问题,一是______是否出现了死锁,二是当有死锁发生时怎样去______。
21、如果资源类中含有若干个资源,应根据进程对各类资源的占有量、______和各类资源的______来考虑是否有死锁存在。 22、解除死锁的方法有两种,一种是______一个或几个进程的执行以破坏循环等待,另一种是从涉及死锁的进程中______ 23、中断某个进程并解除死锁后,此进程可从头开始执行,有的系统允许进程退到发生死锁之前的那个______开始执行。 24、操作系统中要兼顾资源的使用效率和安全可靠,对不同的资源采用不同的分配策略,往往采用死锁的______、避免和______的混合策略。 (三)简答题
1、何谓死锁?产生死锁的原因是有哪些? 2、可以通过哪些途径防止死锁的产生?
3、什么叫系统处于安全状态?常用什么方法保持系统处于安全状态? 4、简述解决死锁问题的三种方法。
5、用抢夺资源的方法解除死锁时要注意什么问题? (四)应用题
1、若有10个同类资源供三个进程共享,下表列出了这三个进程目前己占资源和最大需求量的情况,现在这三个进程P1,P2,P3又分别申请1个、2个、1个资源,请问:
(1)能否先满足进程P2的要求?为什么? (2)如何为这三个进程分配资源比较合适?
进程 已占资源数 最大需求量 P1 3 7 P2 3 8 P3 2 3
2、现有五个进程A,B,c,d,E共享Rl,R2,R3,R4这四类资源,进程对资源的需求量和目前分配情况如下表。若系统还有剩余资源数分别为R1类2个,R2类6个,R3类2个和R4类1个,请按银行家算法回答下列问题:
(1)目前系统是否处于安全状态?
(2)现在如果进程D提出申请(2,5,0,0)个资源,系统是否能为它分配资源?
进程 已占资源数 最大需求量 R1 R2 R3 R4 R1 R2 R3 R4 A 3 6 2 0 5 6 2 0 B 1 0 2 0 1 0 2 0 C 1 0 4 0 5 6 6 0 D 0 0 0 1 5 7 0 1 E 5 3 4 1 5 3 6 2
3、假设系统配有相同类型的m个资源,系统中有n个进程,每个进程至少请求一个资源(最多不超过m)。请证明,当n个进程最多需要的资源数之和小于(m+n)时,该系统不会发生死锁。
4、若某一系统有同类资源12个,进程A,B,c所需的资源总数分别为5,10,7。下表中列出了这些进程向系统申请资源的次序和数量,请回答:(1)如采用银行家算法分配资源.请写出完成第5次分配后各进程的状态及所占资源量. (2)请继续完成以后的资源分配,直到全部进程满足资源分配的要求。 次序 进程 申请量 次序 进程 申请量 1 B 4 5 B 2 2 C 3 6 A 2 3 A 3 7 B 4 4 C 2 8 C 2
第一章 练习题参考答案 (一)单项选择题
1.B 2.D 3 A 4 C 5.D 6.C 7.D 8.B 9.C 10.B 11.C 12.D 13.B 14.B (二)填空题
1.数据处理 2.软件 3.程序 4资源管理 5.共享资源 6.高效地工作 7.分时操作系统 8.作业 9.作业说明书 10.主存储器 11.工作效率 12.时间片 l 3交互性 14.前台,后台 15.高可靠性和安全性 16.资源 17.没有 18.存储管理 19.处理器管理 20.按文件名 21. SPOOL (三)简答题
1.计算机系统是按用户的要求接收和存储信息,自动进行数据处理并输出结果信息的系统。计算机系统由硬件系统和软件系统组成。硬件系统是计算机系统赖以工作的实体,软件系统保证计算机系统按用户指定的要求协调地工作。 2.计算机系统的资源包括两大类:硬件资源和软件资源。硬件资源主要有中央处理器、主存储器、辅助存储器和各种输入输出设备。软件资源有编译程序、编辑程序等各种程序以及有关数据。
3.操作系统是计算机系统的一种系统软件,它统一管理计算机系统的资源和控制程序的执行。
4.操作系统是一种系统程序,其目的是为其他程序的执行提供一个良好的环境。它有两个主要设计目标:一是使计算机系统使用方便,二是使计算机系统能高效地工作。
5.从操作系统提供的服务出发,操作系统可分为:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。
6.用户准备好要执行的程序、数据和控制作业执行的说明书,由操作员输入到计算机系统中等待处理,操作系统选择作业并按其作业说明书的要求自动控制作业的执行。采用这种批量化处理作业的操作系统称为批处理操作系统。 7.批处理多道系统能极大地提高系统的工作效率,表现在四个方面:(1)多道作业并行工作,减少了处理器的空闲时间;(2)作业调度可以合理选择装入主存储器中的作业,充分利用计算机系统的资源;(3)作业执行过程中不再访问低速设备,而直接访问高速的磁盘设备,缩短执行时间;(4)作业成批输入,减少了从操作到作业的交接时间。
8.在分时系统中、系统把CPU时间划分成许多时间片,每个终端每次可以使用由一个时间片规定的cPu时间,多个终端用户就这样轮流地使用cPU,每人都得到了及时响应,感到好像自己独占了一台计算机。
9.网络操作系统把计算机网络中的各台计算机有机地联合起来,实现各计算机之间的通信及网络中各种资源的共享。 l0.从资源管理的观点出发,操作系统具有五大功能:(1)处理器管理。为用户合理分配处理器时间,提高处理器工作效率。(2)存储管理。为用户分配主存空间,保护主存中的程序和数据不被破坏,提高主存空间的利用率。(3)文件管理。管理用户信息,为用户提供按文件名存取功能,合理分配文件的存储空间。(4)设备管现。负责设备约分配、启动以及虚拟设备的实现等.(5)作业管理。实现作业调度和控制。
第二章-2 进程同步与通信 练习题参考答案 (一)单项选择题
1.D 2.D 3.A 4.c 5.c 6.D 7.B 8.A 9 B 10 B 11.C 12.B 13.C 14.D (二)填空题
1.顺序 2.顺序性 3封闭性,可再现件 4.进程本身 5.相同 6.可同时执行的 7并发性 8.无关 9.有交往的 10.共享 11.占用处理器的时间,执行的速度 12.共享资源 13共享变量 14.相关临界区 15互斥执行 16.互斥 17.不可被中断,原语 18.P操作,v操作 19.只有一个 20.同步 21.同步机制 22.进程互斥,同步 23.P操作,v操作 24.前,后 25.同步 26.竞争,固定的必然关系,必然的 27.低级通信方式 28.进程通信 29.信件 30.send,receive 31.直接通信,间接通信 32.一对 33.信箱说明,信箱体 34.进程同步 35.线程 36.调度,并发 37.轻型进程 38.等待态,就绪态,运行态 39并发性,公共缓冲区 40.P操作,v操作 41.资源分配,调度和执行 (三)简答题
1.进程的顺序性是指进程在顺序的处理器上严格地按顺序执行。若系统中存在一组可同时执行的过程,则该组程序具有并发性。可同时执行的进程是指这些进程执行时在时间上是重叠的,即一个进程的工作没有全部完成之前,另一个进程就可以开始工作。
2.有交往的并发进程可能会同时使用共享资源,如果对这种情况不加控制,由于进程占用处理器的时间、执行的速度和外界的影响等,就会引起与时间有关的错误。只要使若干并发进程的相关临界区互斥执行,就可避免造成这类错误。 3.临界区是指并发进程中与共享变量有关的程序段。相关临界区是指并发进程中涉及到相同变量的那些程序段。 4.管理相关临界区有三点要求:(1)一次最多让一个进程在临界区执行;(2)任何一个进入临界区执行的进程必须在有限的时间内退出临界区;(3)不能强迫一个进程无限地等待进入它的临界区。
5.信号量S的物理意义如下: s>0时,S表示可使用的资源数或表示可使用资源的进程数。s=0时,表示无资源可供使用和表示不允许进程再进入临界区。s<0时,│S│表示等待使用资源的进程个数或表示等待进入临界区的进程个数。 6.Pv操作是指在信号量上进行的P操作和v操作。假定信号量为s,则P(s)和v(s)的定义如下: Procedure p(Var s:semaphore); begin s:=s-1; if s<0 then w(s) end; Procedure v(Var s:semaphore); begin s:=s+1; if s<=0 then r (s) end;
其中,W(s)表示将调用P(s)过程的进程置成“等待信号量s”的状态,且将其排入等待队列。R(s)表示释放一个“等待信号量s”的进程,该进程从等待队列退出并加入就绪队列中.
7.(1)对每一个共享资源(含变量)都要设立信号量,互斥时对一个共享资源设一个信号量,同步时对一个共享资源可能要设两个或多个信号量,视由几个进程来使用该共享变量而定。(2)互斥时信号量的初值可大于或等于1,同步时,至少有一个信号量的初值大于等于1。(3)Pv操作一定要成对调用,互斥时在临界区前后对同一信号量作Pv操作,同步时则对不同的信号量作Pv操作,Pv操作的位置一定要正确。(4)对互斥和同步混合问题.PV操作可能会嵌套,—般同步的Pv操作在外,互斥的Pv操作在内。
8通过专门的通信机制实现进程间交换大量信息的通信方式称为进程通信。最基本的通信原语有send原语和receive原语,前者负责发送信件,后者负责接收信件。
9.直接通信是固定在一对进程间进行的,而间接通信时以信箱为媒体实现通信。因此在send和receive原语中,第一个参数互不相同。直接通信时分别为接收者进程名和发送者进程名,而间接通情时均为信箱名。
10.在采用线程技术的操作系统中,线程与进程的根本区别在于:进程是资源的分配单位,而线程是调度和执行单位。 (四)应用题
1 分析:本题可参考读者写者问题,相当于两组读者使用一个共享文件的互斥问题。对共享资源AB路段设一个信号量s,对A、B两端的共享计数器cA和cB应设两个信号量sA和SB。所设计的程序段如下: BEGIN s,sa,ab: semaphore; ca,cb:integer; s:=1; sa:=1; sb:=1; Cobegin
Process car-ai;{I=1,2,……}
Begin p(sa); ca:=ca+1; if ca=1 then p(s); v(sa); {使信号灯A端绿,B端红,车辆从A端驶入AB段} p(sa); ca:=ca-1; if ca=0 then begin {A,B两端都亮红灯2分钟} v(s) end; end; Process car-bj;{j=1,2,……}
Begin p(sb); cb:=cb+1; if cb=1 then p(s); v(sb); {使信号灯B端绿,A端红;车辆从B端驶入AB段} p(sb); cb:=cb-1; if cb=0 then begin {A,B两端都亮红灯2分钟} v(s) end; end; coend; end;
2分析:此题类似于两个生产者消费者问题。采样过程相当于生产者,转换过程相当于消费者,显示过程为消费者,而转换过程还充当生产者。为此设立三个信号量:SS表示采集的微电压值能否存入缓冲区,初值为1;Sc表示缓冲区中是否有微电压值要转换成温度值,,初值为0;sD表示缓冲区是否有温度值要显示,初值为0。解决此同步问题的程序段为: BEGIN ss,sc,sd: semaphore; buffer : integer; ss:=1; sc:=0; sd:=0; Cobegin Process sample;
Begin L1: get a sample; p(ss); buffer:= sample; v(sc); goto L1 end; Process convert;
Begin L2: p(sc); take a sample from buffer; convert the sample to temperature; buffer:= temperature; v(sd); goto L2 end; Process display;
Begin L3: p(sd); take a temperature from buffer; v(ss); display the temperature; goto L3 end; Coend; end;
3.分析:本题也可看作是两个生产者消费者问题。Reader进程为生产者,Executor进程既是消费者又是生产者,Printer进程为消费者,由于这里有两个缓冲区,所以要设四个信号量:sR表示是否能把数据存入缓冲区B1,初值为1;SEl表示缓冲区Bl中是否已存有数据可供处理,初值为0;SE2表示是否把处理过的数据存入缓冲区B2,初值为1;sP表示缓冲区B2中是否已存有数据可供打印,初值为0。用Pv操作管理这三个并发进程的程序如下: BEGIN sr,se1,se2,sp: semaphore; b1,b2 : integer; sr:=1; se1:=0; sp:=0; se2:=1; Cobegin