第三章 调度与死锁
三级调度
高级调度,也叫作业调度,是指从外存后备队列中选择若干作业进入内存,并为它们分配资源、创建进程的过程。
中级调度,又称进程对换,是指按一定的调度算法,将内存中处于等待状态的某些进程调至外存对换区,腾出内存空间,以将外存对换区上已具备执行条件的进程重新调入内存的过程。
低级调度,也叫进程调度,是指按一定的调度算法,从就绪进程中选择一个进程,并将CPU分派给它的过程。
进程调度概念
从就绪进程中选择一个进程,并将CPU分派给它:
保存现场;
按某种算法选择就绪进程;
分派CPU。
进程调度方式
非抢占方式
抢占方式
具体算法
先来先服务
短进程优先(保证作业平均周转时间最短)
时间片轮转(适用于分时系统)
高优先权优先(适用于实时系统)
动态优先权,优先权变化的原则
高响应比优先
响应比=(等待时间+要求服务时间)/要求服务时间
多级反馈队列(性能好)
周转时间,平均周转时间的计算
死锁(Deadlock):两个或两个以上的进程,其中每个进程都无限等待被另一个进程所占有的且永远无法释放的资源,这种现象称为进程死锁,这一组进程就称为死锁进程。
引起死锁的原因
竞争临界资源
进程推进顺序非法
引起死锁的必要条件
互斥条件
请求与保持条件
不剥夺条件
环路等待条件
预防死锁(事先破坏一个或几个必要条件)
互斥条件(一般不能被破坏,只有少部分资源
可用虚拟设备技术破坏该条件)
请求与保持条件(一次性分配所有资源)
不剥夺条件
环路等待条件(资源有序分配)
避免死锁(在分配资源前进行安全性检查,避免系统进入不安全状态)
不安全状态≠死锁状态;
不安全状态很可能导致死锁状态的发生,但不是必然导致死锁状态的发生;
银行家算法
给Max, Allocation, Need的其中2个,求另一个;
安全性检查;
给某进程的一个请求,判断能不能为其分配资源。
死锁定理
简化资源分配图,如果资源分配图能完全简化,则系统中没有死锁;否则系统存在死锁。