3.1 处理机调度的层次和目标
3.1.1处理机调度的层次
高级调度
调度的对象是作业,将后备队列中的程序放入内存中、为他们创建进程、分配资源并放入就绪队列;
分时、实时系统不设高级调度
低级调度
调度的对象是进程、根据某种算法将进程分配给处理机。一般多到批处理系统、分时、实时操作系统都必须配置这种调度
中级调度
又称为内存调度。目的是提高内存利用率和系统吞吐率,其会把暂时不用的内存带入外存并放入就绪驻外队列;当处理机又有空闲是,会将其从调入内存并放到就绪队列当中
汇总:进程调度使用频率最高,效率也最高。作业调度耗时最长一般用于一批作业新进入或者退出。中级调度介于两者之间
3.1.2处理机调度的目标
公共目标:
资源利用率
公平性
平衡性
策略强制执行:比如某些安全策略必须强制执行
批处理系统的目标:
平均周转时间短
系统吞吐量高
处理机利用率高
分时系统:
响应时间快
均衡性
实时系统:
截止时间的保证
可预测性
3.2.3调度算法
先来先服务算法
短作业算法
优先级调度算法
优先权=(等待时间+要求服务的时间)/要求服务的时间
3.5 死锁概述
3.5.1 资源问题
可重用性资源:设备、文件、信号量
可消耗性资源:临时资源、消息
可抢占性资源:CPU、主存
不可抢占性资源:外接设备等
3.5.2 计算机中的死锁
竞争不可抢占资源引起的死锁
3.5.2 死锁的定义、必要条件、和处理
死锁的定义:如果一组进程中的每个进程都在等待仅有该组进程中的其他进程才能引发的事件,那么该组进程是死锁的
产生死锁的必要条件:
互斥条件:资源时排他性使用
请求和保持条件:进程已经保持了至少一个资源,但又获取其他资源,该资源被其他进程占有,此时请求资源被阻塞但是又保持自身占有的资源不放
不可抢占条件:资源只能被自己释放,不能释放其他人的资源
循环等待条件:必然存在资源循环的等待链
处理死锁的方法:预防死锁、避免死锁、检测死锁、解除死锁
3.5.3 预防死锁
破坏请求和保持条件:
第一种协议:进程在原型之前就请求到左右的资源,在程序运行中途不再请求新的资源
第二种协议:对第一种协议的改进,可以理解为分部请求资源
破坏不可抢占条件:
当进行获得一个资源时,如果要继续获得另外的资源,如果获取资源失败,需要释放当前已经获得的资源并保存现场
破坏循环等待条件:
人为将资源按大小编号,当进程已经请求了编号较低的资源时,下次请求只能编号较低的资源。如果一定要请求编号较低的资源,则必须释放当前编号较高的资源。因为总有一个资源占据较高编号的资源,此后他继续申请的较高编号的资源必然是空闲的,因此进程可以一直向前推进
3.5.4 避免死锁
系统安全状态