内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列。 低级调度是根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分派程序将处理机分配给被选中的进程
中级调度又称为内存调度,目的是提高内存利用率和系统的吞吐量。把暂时不能运行的进程,调至外存等待,此时进程的状态称为就绪驻外存状态。实际上就是存储器管理中的对换功能。
2. 处理机调度算法的共同目标是:
1.提高资源利用率,尽可能使处理机和其他资源的处于忙碌状态。 2.使各个进程公平地获得合理的CPU时间。 3.保持系统资源使用的平衡性。 4.对所指定的策略强制执行。 批处理系统的目标: 1. 平均周转时间短。 2. 系统吞吐量高。 3. 处理机利用率高。
6. 之所以采用高响应比优先算法是为了弥补FCFS和SJF两种算法的缺点。FCFS算法只考虑了作业的等待时间而忽视了作业的运行时间,而SJF算法正好与之相反。如果我们为每一个作业引入一个动态优先级,令它随等待时间的延长而增加,这使长作业的优先级在等待期间不断地增加,等到足够时间后,必然有机会获得处理机,这样使饥饿现象发生的几率大大减小。
8. 抢占调度方式中,抢占的原则有两种:
1、基于时钟中断的抢占方式。在某实时任务到达后,如果它的优先级高于当前任务优先级,这时并不立即抢占当前处理机,而是等到时钟中断发生时才剥夺当前任务的执行,将处理机分配到高优先级任务。
2、立即抢占的方式。一旦出现外部中断,只要当前任务未处于临界区,便立即剥夺当前任务的执行,分配到请求中断的紧迫任务。 12. FCFS和SJF的比较:
FCFS调度算法严格按照任务的先来后到顺序进行处理机的分配,它不管任务的所需执行时间也不理睬其优先级,是最简单的调度算法。现已不作为主调度算法,而是与其他算法相结合形成一种更为有效的调度算法。
SJF算法可以让短作业能比长作业优先执行。它有明显的不足,包括必须预知作业的运行时间;对长作业非常不利,产生饥饿现象;未考虑作业的紧迫程度。 13. 确定时间片的大小:
取略大于一次典型的交互式所需要的时间,使大多是交互式进程能在一个时间片内完成,从而获得很小的响应时间。不能过大是因为这样使每个进程都能在一个时间片内完成,RR算法就退化成FCFS算法。
22. 什么事最低松弛度优先调度算法?
该算法在确定任务的优先级时,根据的是任务的紧急程度,紧急程度越高则优先级越大,优先执行。例如,一个任务在200ms时必须完成,而它本身运行时间为100ms,即称该任务的紧急程度或松弛程度为100ms。松弛度最低的排在最前面。 27. 何谓死锁,原因和必要条件?
如果一组进程的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件,那么该组进程是死锁的。死锁的起因通常源于多个进程对资源的争夺。产生的4个必要条件:
1.互斥条件。即某资源只能被一个进程占用。
2.请求和保持条件。请求进程被阻塞而已获得的资源又不释放。 3.不可抢占条件。未使用完之前不能被抢占。 4.循环等待条件。
30.P0发出的请求向量由(0,2,0)改为(0,1,0),问系统可否将资源分配给它? 解: 因为(0,1,0)小于need(7,4,3)且小于available(2,3,0)
可假设系统分配给P0(0,1,0)
则P0 allocation为0 2 0 need为7 3 3 available为2 2 0 利用安全性算法检查此时系统是否安全,如图所示
Work Need Allocation Work+Allocation P1 220 020 302 522 P3 522 011 211 733 P2 733 600 302 1035 P4 1035 431 002 1037 P0 1037 733 020 1057 可找到一个安全序列(P1,P3,P2,P4,P0),所以系统可以将资源分配给P0。 31. 题略。
解:(1)安全 可找到安全序列为(P0,P3,P4,P1,P2)
(2) 不能,若给P2分配(1,2,2,2)后,可用资源available变为(0,4,0,0),不能满足任何进程的需要,故系统进入不安全状态,不分配!!
因篇幅问题不能全部显示,请点此查看更多更全内容