1、高级调度与低级调度的主要任务是什么?为什么要引入中级调度
答:高级调度的主要任务是根据某种算法,决定将外存上处于后备队列中的哪几个作业调入内存,为它们创建进程、分配必要的资源并将它们放入就绪队列;
低级调度的主要任务是根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分派程序将处理机分配给被选中的进程。
引入中级调度的目的:提供内存利用率和系统吞吐率
2、处理机调度算法的共同目标是什么?批处理系统的调度目标又是什么?
答:共同目标:资源利用率、公平性、平衡性、策略强制执行
批处理系统的调度目标:平均周转时间、系统吞吐量高、处理机利用率高
3、何谓作业、作业步和作业流
答:作业不仅包含了通常的程序和数据而且还应配有一份作业说明书,系统根据该说明书来对程序的运行进行控制。
在作业运行期间每个作业都必须经过若干个相对独立又相互关联的顺序加工步骤才能得到结果,其中的每一个加工步骤就称为一个作业步。
作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流
4、在什么情况下需要使用作业控制块JCB,其中包含了哪些内容
答:为了管理和调度作业,在多道批处理系统中为每个作业设置了一个作业控制块JCB。
包含了:作业标识、用户名称、用户账号、作业类型、作业状态、调度信息、资源需求、资源使用情况等。
5、在作业调度中应如何确定接纳多少个作业和接纳哪些作业
答:接纳多少个作业取决于多道程序度,即允许多少个作业同时在内存中允许;
接纳哪些作业取决于所采用的调度算法。
6、为什么要引入高响应比优先调度算法?它有何优点
答:因为高响应比优先调度算法既考虑了作业的等待时间又考虑了作业运行时间,从而改善了处理机调度的性能。
7、试说明低级调度的主要功能
答:保存处理机的现场信息、按某种算法选取进程、把处理器分配给进程
8、在抢占调度方式中,抢占的原则是什么
答:优先权原则,指允许优先级高的新到进程抢占当前进程的处理机;
短进程优先原则,指允许新到的短进程可以抢占当前长进程的处理机;
时间片原则,指各进程按时间片轮转进行时,当正在执行的进程的一个时间片用完后,便停止该进程的执行而重新进行调度。
9、在选择调度方式和调度算法时,应遵循的准则是什么
答:面向用户:周转时间短、响应时间快、截止时间的保证、优先权的准则
面向系统:系统吞吐量高、处置机利用率好、各类资源的平衡利用
10、在批处理系统、分时系统和实时系统中,各采用哪几种进程(作业)调度算法
答:批处理系统:先来先服务、短作业优先、优先级、高响应比优先调度算法
分时系统:轮转调度算法、优先级调度算法、多队列调度算法、多级反馈队列调度算法、基于公平原则调度算法
实时系统:最早截止时间优先、最低松弛度优先
11、何为静态和动态优先级?确定静态优先级的依据是什么
答:静态优先级是在创建进程时确定的,在进程的整个运行期间保持不变;
动态优先级是指在创建进程之处,先赋予其一个优先级,然后其值随进程的推进或等待时间的增加而改变,以便获得更好的调度性能。
确定静态优先级的依据:进程类型、进程对资源的需求、用户要求。
12、试比较FCFS和SJF两种进程调度算法
答:FCFS将按照作业到达的先后顺序来进行调度,是优先考虑在系统中等待时间最长的作业
SJF是以作业的长短来计算优先级,也就是该作业所需执行时间的长短
13、在时间片轮转法中,应如何确定时间片大小
答:一个较为可取的时间片大小是略大于一次典型的交互所需要的时间,使大多数交互式进程能在一个时间片内完成,从而可以获得很小的响应时间。
14、通过一个例子来说明通常的优先级调度算法为什么不能适用于实时系统
答:实时系统的调度算法很多,主要是基于任务的开始截止时间和任务紧急/松弛程度的任务优先级调度算法,通常的优先级调度算法不能满足实时系统的调度实时性要求而不适用。
15、为什么说多级反馈队列调度算法能较好地满足各方面用户的需求
答:由于终端型用户提交的作业多属于交互型作业,通常较小,系统只要能使这些作业在第一队列规定的时间片内完成,便可使终端型用户感到满意;
对于短批处理作业用户,如果可以在第一队列中执行完成,便获得与终端型作业一样的响应时间,对于稍长的短作业也只需在第二和第三队列各执行一个时间片完成,其周转时间较短;
对于长批处理作业用户,它将依次在第1,2,....,n个队列中运行,然后再按轮转方式运行,用户不必担心其长作业长期得不到处理。
16、为什么说传统的几种调度算法都不能算是公平调度算法
答:因为传统的几种调度算法所保证的只是优先运行,并不保证作业占用了多少处理机的时间。
17、保证调度算法是如何做到调度的公平性的
答:如果系统中有n个类型相同的进程同时运行,为了公平起见,须保证每个进程都获得相同的处理机时间1/n。
18、公平分享调度算法又是如何做到调度的公平性的
答:在该调度算法中,调度的公平性主要是针对用户而言,使所有的用户能获得相同的处理机时间或所要求的时间比例。
19、为什么在实时系统中,要求系统(尤其是CPU)是具有较强的处理能力
答:在实时系统中,若处理机的处理能力不够强,则可能因为处理机忙不过来,而致使某些实时任务不能得到及时处理,从而导致发生难以预料的后果。
20、按调度方式可将实时调度算法分为哪几种
答:非抢占调度算法:非抢占式轮转调度算法、非抢占式优先调度算法
抢占式调度算法:基于时钟中断的抢占式优先级调度算法、立即抢占的抢占式优先级调度算法
21、什么是最早截止时间优先调度算法?举例说明之
答:该算法是根据任务的截止时间来确定任务的优先级,任务截止时间越早,其优先级越高,具有最早截止时间的任务排在任务队列的队首。调度程序在选择任务时,总是选择就绪队列的第一个任务,为之分配处理机。
22、什么是最低松弛度优先调度算法?举例说明之
答:该算法在确定任务的优先级时,根据的是任务的紧急(或松弛)程度,任务紧急程度越高,赋予该任务的优先级就越高,以使之优先执行。
23、何谓“优先级倒置”现象,可采取什么方法来解决
答:优先级倒置现象是指高优先级进程(或线程)被低优先级进程(或线程)延迟或阻塞。
一种是低优先级进程在进入临界区后所占用的处理机就不允许被抢占;
另一种是建立在动态优先级继承基础上的,该方法规定,当高优先级进程要进入临界区去使用临界资源时,如果已有一个低优先级进程正在使用该资源,此时一方面高优先级进程被阻塞,另一方面由低优先级进程继承高优先级进程的优先级,并一直保持低优先级进程退出临界区。
24、试分别说明可重用资源和可消耗资源的性质
答:可重用资源是一种可供用户重复使用多次的资源,它具有如下性质:
每一个可重用资源中的单元只能分配给一个进程使用,不允许多个进程共享;
进程在使用可重用资源资源时,须按照这样的顺序:请求资源、使用资源、释放资源;
系统中每一类可重用资源中的单元数目是相对固定的,进程在运行期间既不能创建也不能删除它。
可消耗资源又称临时性资源,它是在进程运行期间,由进程动态地创建和消耗的,具有如下性质:
每一类可消耗资源的单元数目在进程运行期间是可以不断变化的,有时可以有许多有时为0;
进程在运行过程中,可以不断地创造可消耗性资源的单元,将它们放入该资源的缓冲区中,以增加该资源类的单元数目;
进程在运行过程中,可以请求若干个可消耗性资源单元,用于进程的消耗,不再将它们返回给该资源类中。
25、试举例说明竞争不可抢占资源所引起的死锁
答:不可抢占资源,即一旦系统把某资源分配给该进程后,就不能强行收回,只能在进程用完后自行释放。
例如,系统中只有一台扫描仪R1和一台刻录机R2,有两个进程P1和P2,它们都准备将扫描的文档刻录到CD光盘上,进程P1先请求了扫描仪R1并获得成功,进程P2先请求CD刻录机R2也获得了成功。后来,P1又请求刻录机R2,因它已被分配给了P2而阻塞。P2又请求扫描仪,也因被分配给了P1而阻塞,此时两个进程都被阻塞,双方都希望对方可以释放自己所需的资源从而造成死锁。
26、为了破坏“请求和保持”条件而提出了两种协议,试比较这两种协议
答:第一种协议规定所以进程在开始运行之前,必须一次性地申请其在整个运行过程中所需的全部资源,优点是简单、易行且安全,缺点是资源被严重浪费严重恶化了资源利用率、使进程经常会发生饥饿线性
第二种协议允许一个进程只获得运行初期所需的资源后,便开始运行,在运行过程中再逐步释放已分配给自己的且已用毕的全部资源,然后再请求新的所需资源。这不仅能使进程更快地完成任务,提高设备的利用率,还可以减少进程发送饥饿的机率。
27、何谓死锁?产生死锁的原因和必要条件是什么
答:如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的;
产生死锁的原因:对资源的竞争和进程推进顺序不当
产生死锁的必要条件:互斥条件即在一段时间内某资源只能被一个进程占用;
请求和保持条件,进程已经保持了至少一个资源但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程被阻塞但对自己获得的资源保持不放;
不可抢占条件,进程已获得的资源在未使用完之前不能被抢占,只能在进程使用完成时自己释放;
循环等待条件,在发送死锁时,必然存在一个进程-资源的循环链。
28、在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法使资源利用率最高
答:预防死锁最易实现,解除死锁资源利用率最高
29、请详细说明可通过哪些途径预防死锁
答:破坏“请求和保持”条件:当一个进程在请求资源时,它不能持有不可抢占资源。
破坏“不可抢占”条件:当一个已经保持了不可被抢占资源的进程,提出新的资源请求而不能被满足时,它必须释放已保持的所有资源,待以后需要时再重新申请。
破坏“循环等待”条件:对系统所有资源类型进行线性排序并赋予不同的序号,规定每个进程必须按序号递增的顺序请求资源
30、在银行家算法的例子中,如果P0发出的请求向量由Request(0,2,0)改为Request(0,1,0),问系统可否将资源分配给它
答:Request(0,1,0)<=need(7,4,3)
Request(0,1,0)<=Available(2,3,0)
先假定可为P0分配资源,并修改有关数据,此时的Available(2,2,0)
进行安全性检查如下:
可以找到一个安全序列{P1,P3,P2,P4,P0},系统可以将资源分配给它。
31、在银行家算法中,若出现下述资源分配情况,试问
Process | Allocation | Need | Available |
P0 | 0032 | 0012 | 1622 |
P1 | 1000 | 1750 | |
P2 | 1354 | 2356 | |
P3 | 0332 | 0652 | |
P4 | 0014 | 0656 |
(1)该状态是否安全
(2)若进程P2提出Request(1,2,2,2)后,系统能否将资源分配给它?
答:(1)是安全状态,可以找到一个安全序列{P0,P3,P1,P2,P4}
(2)提出Request(1,2,2,2)此时Availble(0,4,0,0)已不能满足任何进程的需要,故系统进入不安全状态,此时系统不分配资源。