计算机操作系统基础笔记( 四 )


中级调度的目的是为了解决内存紧张问题 。
低级调度又称为进程调度或短程调度 。是最基本的调度,在三种类型的操作系统中都必须配置它 。(批处理、分时和实时)
分为:
1. 非抢占方式
2. 抢占方式,原则:1)优先权原则 2)短作业优先原则 3)时间片原则
三个基本原则:
(1)排队器
(2)分派器(调度程序)
(3)上下文切换机制
低级调度的功能:
(1)按某种算法选取进程(调度) 。
(2)保存处理机的现场信息(上下文切换第一步骤)
(3) 把处理器分配给进程(上下文切换第二步骤)
调度算法先来先服务-FCFS按照作业/进程进入系统的先后次序,遵循先进入系统者先调度 。
优点:
1. 有利于长作业/进程
2. 有利于CPU繁忙型作业/进程
缺点:
1. 不利于短作业/进程,尤其是来的较晚的短作业/进程
2. 不利于I/O繁忙型作业/进程
用于批处理系统,不适于分时系统
短作业/进程优先算法-SJF/SPF按照运行时间长短进行调度,运行时间越短越优先调度 。不可抢占 。
优点:
1. 能有效降低作业/进程的平均等待时间
2. 提高系统的吞吐量
缺点:
1. 不利于长作业/进程
2. 未考虑作业/进程紧迫程度,不能保证紧迫作业/进程被及时处理
3. 运行时间无法准确估计,不能真正保证短作业/进程优先
4. 无法实现人机交互
高优先权优先算法-HPF分类:
1. 静态优先权,简单易行,开销小,但是不够精确,还可能导致低优先权作业/进程长期得不到调度
2. 动态优先权,更好的调度性能,可防止长作业/进程长期垄断处理机
高响应比优先调度算法-HRRN响应比/优先权=等待时间+要求服务时间要求服务时间=响应时间要求服务时间响应比/优先权=等待时间+要求服务时间要求服务时间=响应时间要求服务时间
此处的要求服务时间,准确来说是指剩余的需要服务的时间 。
HRRN是介于FCFS和SJF/SPF之间的一种这种算法,相比于SJF/SPF有着更低的吞吐量和更高的系统开销 。
对短作业有利,一定程度上是先来先服务,也对长作业有利,但由于计算响应比,会增加系统开销 。
时间片轮转算法-RR系统将所有就绪进程按先来先服务原则排成队列 。
就绪进程直接置于队尾,若此时正处于某一进程的时间片,该进程是位于队首的
多级反馈队列调度算法-FB原理:
1. 设置多个就绪队列,并为各个队列赋予不同的优先级
2. 一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度
3. 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行
调度过程:
1. 按优先级由高到低设置多个队列RQ0 ,RQ1 … RQn ,高优先级队列时间片小
2. 刚进入系统的进程按FCFS放入最高的RQ0中
3. 进程一次时间片没执行完,就降至下一级队列,以此类 推,降至最低优先级队列后,一直在此队列中不再下降
4. 系统优先调度高优先级队列中的进程,仅当RQ0 空闲时才调度RQ1 队列进程,以此类推
5. 如果是抢占式,当前时间片未用完时有进程进入高优先级队列时,将当前进程置于其所在队列的末尾,而后开始执行高优先级队列的时间片
实时调度常用的调度方式:
1. 非抢占式轮转调度方式
2. 非抢占式优先权调度方式
3. 抢占式调度优先权调度方式
4. 立即抢占的优先权调度方式
由上往下,响应时间数量级逐个降低,要求更为严格,所需资源也更多 。
常用的高优先权优先的实时调度算法:
1. 最早截止时间优先算法-EDF,截止时间越早越优先 。
2. 最低松弛度优先算法-LLF,松弛度:截止时间-剩余所需时间-当前时间,主要用于可抢占调度方式,当松弛度为0时,必须立即抢占CPU 。
产生死锁的原因

  1. 竞争资源
  2. 进程推进顺序非法
m个同类资源被n个进程共享,设一个进程最多可以请求多x个资源
m > n * (x-1) 时,系统不会发生死锁 。
产生死锁的必要条件
  1. 互斥条件
  2. 请求与保持条件
  3. 不剥夺条件
  4. 环路等待条件
处理死锁的基本办法预防死锁破坏死锁必要条件的后三者之一,互斥条件因为一些资源固有特性的限制,难以破坏,对于打印机这样的设备可以通过SPOOLing技术对互斥条件予以破坏 。


推荐阅读