第三章处理机调度与死锁
1.处理机调度的层次:高级调度、低级调度、中级调度。
2.高级调度( High Level Scheduling):
又叫作业调度或长程调度( Longterm Scheduling),其主要功能是根据某种算法,把外存上处于后备队列中的哪些作业调入内存。也就是说它的调度对象是作业。
3.低级调度( Low Level Scheduling):通常也称为进程调度或短程调度( ShorttermScheduling),它所调度的对象是进程(或内核级线程)。决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。进程调度是最基本的调度,在三种类型的0s中都必须配置。
4.低级调度的功能
保存处理机的现场信息;按照某种算法选取进程;把处理机分配给进程。
5.进程调度方式
a)非抢占方式
b)抢占方式
6.先来先服务调度算法:是一种最基本的调度算法,既可用于作业调度也可用于进程调度。比较有利于长作业进程,而不利于短作业进程。
6.短作业优先调度算法:指对短作业或段进程优先调度算法可以分别用于作业调度和进程调度。该算法对长作业不利,完全未考虑作业的紧迫程度,不能保证紧迫性作业及时处理。该算法不一定真正做到短作业优先调度。
7.死锁( Deadlock)定义:
死锁是指两个或两个以上的进程在运行过程中,因争夺资源而造成的一种互相等待(谁也无法再继续推进)的现象,若无外力作用,它们都将无法推进下去。
8.产生死锁的原因
竞争资源。
进程间推进顺序非法。
9.产生死锁的必要条件:
1、互斥条件。一个资源一次只能被一个进程使用。
2、请求和保持条件(部分分配)。保留已经得到的资源,还要求其它的资源。
3、不可剥夺条件(不可抢占)。资源只能被占有者释放,不能被其它进程强行抢占。
4、环路等待条件(循环等待)。系统中的进程形成了环形的资源请求链。
预防死锁的方法1.摒弃请求和保持祭件2.摒弃不剥夺条件3.摒弃环路等待条件。
10.安全状态:
允许进程动态的申请资源,但在分配前,应先计算分配的安全性。所谓“安全状态”:指系统能按某种进程顺序(P1,P2,…,Pn),来为每个进程Pi分配其所需资源,直至最大需求,使每个进程都可以顺利完成。反之,则系统处于不安全状态不安全状态不一定发生死锁,但死锁一定属于不安全状态。