第四章处理机调度4.3习题4.3.1选择最合适的答案1.某系统采用了银行家算法,则下列叙述正确的是()。A.系统处于不安全状态时一定会发生死锁B.系统处于不安全状态时可能会发生死锁C.系统处于安全状态时可能会发生死锁D.系统处于安全状态时一定会发生死锁2.银行家算法中的数据结构包括有可利用资源向量Available、最大需求矩阵Max、分配矩阵Allocation、需求矩阵Need,下列选项正确的是()。A.Max[i,j]=Allocation[i,j]+Need[i,j]B.Need[i,j]=Allocation[i,j]+Max[i,j]C.Max[i,j]=Available[i,j]+Need[i,j]D.Need[i,j]=Available[i,j]+Max[i,j]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.优先权调度算法8.在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和()相同。A.先来先服务调度算法B.短作业优先调度算法C.时间片轮转调度算法D.长作业优先调度算法9.作业从后备作业到被调度程序选中的时间称为()。A.周转时间B.响应时间C.等待调度时间D.运行时间10.资源静态分配法可以预防死锁的发生,它们使死锁四个条件中的()不成立。A.互斥条件B.请求和保持条件C.不可剥夺条件D.环路等待条件4.3.2选择所有正确答案1.下列选项中,()可能是非抢占方式进程调度中引起调度的原因。A.当前的运行进程调用阻塞原语而进入阻塞状态B.当前的运行进程提出申请I/O而阻塞C.有更高优先级的进程到达而从执行状态变为就绪状态D.正在执行的进程执行了P原语操作,由于资源不足而阻塞2.选择排队作业中等待时间最长的作业被优先调度,该调度算法不可能是()。A.先来先服务调度算法B.高响应比优先调度算法C.优先权调度算法D.短作业优先调度算法3.作业控制块JCB连成一串而形成的一个排队队列,该队列称为()。A挂起队列B.阻塞队列C.就绪队列D.后备队列4.下列哪个选项描述的时间属于响应时间的一部分()。A.处理机对请求信息进行处理的时间B.从键盘输入的请求信息传送到处理机的时间C.所形成的响应回送到终端显示器的时间D.用户查看响应回送到的信息5.下列四个选项描述的时间组成了周转时间,其中可能发生多次的是()。A.等待I/O操作完成的时间B.作业在外存后备队列上等待作业调度的时间C.进程在CPU上的执行时间D.进程在就绪队列上等待进程调度的时间6.下面列出的是选择调度方式和算法的4个面向用户的准则。其中,不完全适用于实时系统的准则是()。A.优先权准则B.响应时间快C.截止时间的保证D.周转时间短7.下面列出了选择调度方式和算法的4个准则。其中,对批处理、分时、实时系统都可以采用的是()。A.周转时间短B.响应时间快C.截止时间的保证D.优先权准则8.下列选项中,()是分时系统中确定时间片大小需要考虑的因素。A.各类资源的平衡利用B.就绪队列中进程的数目C.系统的处理能力D.系统对响应时间的要求9.下面列出的选项中,属于可剥夺性资源的有()。A.CPUB.内存C.磁盘D.磁带机10.在多级队列调度和多级反馈队列调度的叙述中,正确的是()。A.多级反馈队列调度中就绪队列的设置不是象多级队列调度一样按作业性质划分,而是按时间片的大小划分B.多级队列调度用到优先权,而多级反馈队列调度中没有用到优先权C.多级队列调度中的进程固定在某一个队列中,而多级反馈队列调度中的进程不固定D.多级队列调度中每个队列按作业性质不同而采用不同的调度算法,而多级反馈队列调度中除了个别队列外,均采用相同的调度算法4.3.3判断正误,简要说明理由1.作业调度能够使作业获得CPU。2.在多道程序系统中,系统的现有空闲可用资源能否满足一个后备作业J的资源要求,是选择作业J进入内存的必要条件。3.短作业(进程)优先调度算法具有最短的平均周转时间,因此这种算法是最好的算法。4.在优先权调度算法中确定静态优先权时,一般说,计算进程的优先权要高于磁盘I/O进程的优先权。5.摒弃不可剥夺条件的方法可用于预防多个打印进程死锁的发生。6.操作系统处理死锁,只要采用预防、解除、检测、避免之中的一种就足够了。7.如果系统在所有进程运行前,一次性地将其在整个运行过程所需的全部资源分配给进程,即所谓“静态分配”法,是可以预防死锁发生的。8.多个进程竞争比进程数目少的资源时就可能产生死锁,而当资源数目大于进程数目时就一定不会发生死锁。9.在银行家算法中,对某时刻的资源分配情况进行安全分析,如果该时刻状态是安全的,则存在一个安全序列,且这个安全序列是唯一的。10.进程调度算法各种各样,但是如果选择不当,就会造成死锁。4.3.4简答题1.高级调度和低级调度的主要任务是什么?为什么要引入中级调度?2.在作业调度中需作出哪些决定?3.在剥夺调度中,有哪些剥夺原则?4.在OS中引起进程调度的主要因素有哪些?5.在选择调度方式和调度算法时,应遵循的原则是什么?6.在批处理系统、分时系统和实时系统中,各采用哪几个进程(作业)调度算法?7.为什么说多级反馈队列能较好地满足各种用户的需要?8.在多用户分时系统中,时间片轮转调度的算法在确定时间片的大小时,应考虑哪些因素?9.为实现实时调度,对实时系统提出了哪些要求?10.目前常用的调度方式和算法,能否应用到实时系统中?11.在多处理机系统中,比较有代表性的线程调度方式有哪几种?12.试比较自调度和成组调度?13.在OS/2中采用哪种调度方式和调度算法?14.何为死锁?产生死锁的原因和必要条件是什么?15.在解决死锁问题的几个方法中,哪种方法最容易实现?哪种方法使资源的利用率最高?16.请详细说明可通过哪些途径预防死锁?17.在银行家算法的例子中,如果P0发出的请求向量由Request0(0,2,0)改为Request0(0,1,0),问系统可否将资源分配给它?4.4习题解答要点4.4.1选择最合适的答案1.B2.B3.B4.D5.D6.A7.D8.A9.C10.B4.4.2选择所有正确答案1.ABD2.BCD3.D4.ABC5.ACD6.AD7.D8.BCD9.ABC10.ACD4.4.3判断题1.错误作业调度是高级调度。它只能使某作业获得使用CPU的资格。而只有进程调度或线程调度才能使作业真正获得CPU。2.错误多道系统中的资源分配有两种方法:静态分配:作业调度的功能之一是审查系统能否满足用户作业的资源要求;之二是按照一定的算法选取作业。动态分配:进程所需的资源是在运行中分配的,作业调度并不考虑当前空闲的资源量,只是按照一定的算法选取作业。3.错误前半句话讲的正确,但由此说短作业(进程)优先调度算法是最好的,就不正确了。因为一个算法的好坏要看其是否适于系统的需要而判定。4.错误因为磁盘I/O进程属于系统进程。而系统在确定进程的静态优先权时遵循的原则是:系统进程的优先权高于一般用户进程的优先权(除非用户的进程特别紧迫或重要)5.错误因为摒弃不剥夺条件的方法可预防死锁的发生。6.错误因为,操作系统要兼顾资源的使用效率和安全性两个方面,常见的是,将预防、解除、检测、避免四种处理混合起来使用。举例来说,只有检测死锁而无解除死锁,检测出死锁又有什么用呢?7.正确因为资源的“静态分配”方法,可以摒弃“请求和保持”条件,是可以预防死锁的。8.错误进程是否发生死锁,需要考虑每个进程申请资源的数目、所申请资源的种类、进程推进情况等因素。不能简单地比较进程数目和资源数目就来确定是否死锁。9.错误系统在调用银行家算法进行安全检查时,只要找到一个安全序列就可断定系统是安全的。但安全序列可能不止一个,有的情况下可能是只有一个,有的情况下可能有2个或者更多。10.错误如果进程调度算法选择不当,会造成某些进程的长期等待。我们将这种进程称为“饥饿”进程(长期“饥饿”的极端情况是“饿死”)。“饿死”和“死锁”具有完全不同的含义。4.4.4简答题1.高级调度和低级调度的主要任务以及引入中级调度原因如下:高级调度又称为作业调度。它是批处理系统中使用的一种调度。其主要任务是,按照某种算法从外存的后备队列上选择一个或多个作业调入内存,并为它们创建进程、分配必要的资源,然后再将创建的进程控制块挂入就绪队列上。低级调度又称进程调度。它是距离硬件最近的一级调度。其主要任务是,按照某种算法从就绪队列上选择一个(或多个)进程,使其获得CPU。引入中级调度的目的是为了提高内存利用率和系统吞吐量。其功能是,让那些暂时不能运行的进程不再占用宝贵的内存资源,而是调出到外存上等待。此时的进程状态为挂起状态。当这些进程重新具备运行条件且内存空闲时,由中级调度选择一部分挂起状态的进程调入内存,将其状态变为内存就绪状态。2.在作业调度中需作出的决定如下:作业调度需要按照多道程序度(即,最大道数)决定一次接纳多少作业进入内存。如果太少将导致系统资源利用率低,且系统吞吐量低;太多将导致内存空间紧张,系统服务质量下降,使作业运行周期过长。作业调度需要决定接纳哪些作业进入内存。常用的算法是,先来先服务,短作业优先,最高优先级调度、响应比高者优先等。3.在剥夺进程调度中,剥夺原则如下:时间片原则。在轮转算法中,CPU轮流为诸多进程服务,每个进程运行完自己的时间片后,系统就将它的CPU剥夺过来,交给下一个进程使用。优先级原则。为紧迫的作业赋予较高的优先级,这种作业到达系统,或者由阻塞状态被唤醒后,若其优先级高于当前运行的进程的优先级,可以剥夺其CPU。短作业(进程)优先原则。若一个作业(进程)到达系统,其运行长度比当前运行的进程长度明显的短,则剥夺它的CPU。4.引起进程调度的主要因素主要有:一个进程运行完毕;一个正在运行的进程被阻塞;在抢占式调度中,一个高优先级的进程被创建;在抢占式调度中,一个高优先级进程由阻塞被唤醒;在轮转式调度中,正在运行的进程运行完一个时间片。5.在选择调度方式和调度算法时,应遵循的原则如下:面向用户准则。首先,对于用户的紧迫性作业,系统能够及时地处理,不至于运行延误。其次,对于批处理系统,还应追求作业的周转时间短;分时系统中作业的响应时间块;实时系统中作业的截止时间有保证。面向系统准则。系统的吞吐量高,处理机的利用率高,各类系统资源能够得到平衡利用。6.批处理系统、分时系统和实时系统中的主要调度算法如下:批处理系统中的作业调度算法有先来先服务(FCFS)、短作业优先(SJF)、优先级调度(HPF)和高响应比优先(RF)。批处理系统的进程调度算法有:先进先出(FIFO)、短进程优先(SPF)、优先级调度(PRI)和高响应比优先(RF)。分时系统中只设有进程调度(不设作业调度),其进程调度算法只有轮转法(RR)一种。实时系统中只设有进程调度(不设作业调度),其进程调度算法有:轮转法、优先级调度算法。前者适用于时间要求不严格的实时系统;后者用于时间要求不严格的实时系统。后者又可细分为:非抢占式优先级调度、抢占式优先级调度、基于时钟中断的抢占式优先级调度。注意,一个纯粹的实时系统是针对特定应用领域设计的专用系统。作业提交的数量不会超过系统规定的多道程序度,因而可全部进入内存。若将实时系统与批处理系统结合的话,就可以让作业量超过多道程序度,使优先级低的作业呆在外存的后备队列上。7.多级反馈队列能较好地满足各种用户