答:高级调度的主要任务:用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程,分配必要的资源,然后,再将新创建的进程插入就绪队列上。
低级调度的主要任务:用于决定就绪队列中的哪个进程应获得处理机,然后再由调度分派程
序执行将处理机分配给该进程的具体操作。
引入中级调度的主要目的:是为了提高系统资源的利用率和系统吞吐量。
答:作业调度每次要接纳多少个作业进入内存,取决于多道程序度,即允许多少个作业同时在内存中运行。多道程序度的确定应根据系统的规模和运行速度等情况做适当的折衷。
接纳哪些作业取决于所采用的作业调度算法。不同的算法满足用户对OS不同的需求。
答:相同点:两种调度算法都可用于作业调度与进程调度
不同点:
FCFS调度算法每次都从就绪队列中选择一个最先进入系统的进程,分配CPU让它运行。该算法有利于长进程,不利于短进程。
SPF算法每次都从就绪队列中选择一个运行时间最短的进程,将CPU分配给它运行。该算法有利于短进程,不利于长进程。
答:时间片应略大于一次典型的交互需要的时间。
一般因考虑三个因素:系统对应时间的要求、就绪队列中进程的数目和系统的处理能力。
答:死锁:指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。
原因:竞争资源和进程间推进非法。
必要条件:互斥条件、请求和保持条件、不剥夺条件、环路等待条件。
答:预防死锁:破坏死锁的四个必要条件中的一个或多个来预防死锁。
避免死锁:和预防死锁的区别就是,在资源动态分配过程中,用某种方式防止系统进入不安全的状态。
检测死锁:系统不设置任何死锁防止措施。系统提供一种机制,当运行进程出现死锁时,能及时发现死锁。
解除死锁:检测到系统发生死锁后,通过某种措施把死锁进程从死锁状态解除出来。
1)非抢占优先权调度算法。
2)立即抢占的优先权调度算法。
3)时间片轮转调度算法。
4)基于时钟中断抢占的优先权调度算法、
按实时要求的严格程度由低到高的顺序是什么,请写出分析过程。
答:由低到高为:3-1-4-2。
时间片轮转调度算法:当实时进程到达后,系统将其排在就绪队列最后,每个进程依次运行一个时间片,当进程数较多的情况下,轮道实时进程运行需要经过若干进程,而运行结束则需要若干轮,因此其实时性最低。
非抢占式优先权调度算法:对实时进程可以赋以最高优先级,因此当实时进程到达时,该实时进程等待时间只是当前在CPU上运行进程的剩余时间,一旦当前进程运行结束,实时进程可以马上运行直到运行结束,故实时性要求较低。因此,该调度算法可以满足一定实时性的任务。
基于时钟中断的抢占式优先权调度算法:实时任务到达后,如果该任务的优先级别高于当前任务的优先级并不立即抢占当前任务的处理机,而是等到时钟中断到来时,调度程序才剥夺当前任务的执行,将处理机分配给新到的高优先权任务,故实时性要求较高。
抢占式优先权调度算法中,系统同样把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要就绪队列中出现了另一个优先权更高的进程,进程调度程序就立即停止当前进程运行的执行,重新将处理机分配给新到的优先权最高的进程,故实时性要求最高。
1)试写出各作业的执行顺序;
2)求各作业的周转时间及平均周转时间。
3)求各作业的带权周转时间及平均带权周转时间。
(1) 作业运行顺序:J1-J3-J2-J4
(2) 计算周转时间及平均周转时间
平均周转时间=(120+155+85+125)/4=121.25
(3) 求各作业的带权周转时间及平均带权周转时间。
平均带权周转时间=(1+3.88+3.4+4.17)/4=3.11
问:
(1)列出所有作业进入内存的时刻及结束时刻。
(2)计算作业的平均周转时间。
答:(1)
(2)平均周转时间=(70+30+90+90)/4=70分钟
(1) 该状态是否安全?
(2) 若进程P2提出请求Request(1, 2, 2, 2)后,系统能否将资源分配给它?
答:(1)P0时刻安全性检查:
P0时刻系统安全,有安全序列P0,P3,P4,P1,P2
(2) 按银行家算法检查P2提出的请求Request(1, 2, 2, 2):
Request(1, 2, 2, 2)
此时可用资源Available(0,4,0,0)已经不能满足任何进程的需要,所以不能将资源分配给P2。