操作系统 第三章 处理机调度与死锁 (2)
3.3 进程调度
3.3.1 进程调度的任务、机制和方式
1. 进程调度的任务
(1) 保存处理机的现场信息;
(2) 按某种算法取进程;
(3) 把处理机分配给进程。
2. 进程调度机制
3. 进程调度方式
1.) 非抢占方式
可能引起进程调度的因素归结为:
① 正在执行的进程执行完毕,或因发生某事件而使其无法再继续运行;
② 正在执行的进程因提出I/O请求而暂停执行;
③ 在进程通信或同步过程中,执行了某种原语操作,如Blocks原语。
优点: 实现简单,系统开销小,适用于大多数的批处理系统。
缺点: 不能用于分时系统和大多数实时系统,很难满足交互性作业和实时任务的需求。
2.)抢占方式
优点: 可以防止一个长进程长时间地占用处理机,以确保处理机能为所有进程提供更为公平的服务。
缺点: 抢占方式较复杂,所需付出的系统开销较大。
“抢占”的原则:
① 优先权原则:指允许优先级高的新到进程抢占当前进程的处理机。
② 短进程优先原则;:指允许新到的短进程可以抢占当前长进程的处理机。
③ 时间片原则:当正在执行的进程的一个时间片用完后,便停止该进程的执行而重新进行调度。
3.3.2 轮转(RR)调度算法
一个较为可取的时间片大小是略大于一次典型交互所需要的时间,使大多数交互式进程能在一个时间片内完成。
周转时间=完成时间-到达时间
带权周转时间=周转时间/服务时间
平均周转时间=周转时间/作业个数
平均带权周转时间=带权周转时间/作业个数
下图示出时间片分别为q=1和q=4时对平均周转时间的影响。
3.3.3 优先级调度算法
1. 优先级调度算法的类型
(1) 非抢占式优先级调度算法;
(2) 抢占式优先级调度算法。
2. 优先级的类型
1) 静态优先级:是在创建进程时确定,在进程的整个运行期间保持不变。
确定进程优先级大小的依据:
(1)进程类型;
(2) 进程对资源的需求;
(3) 用户要求。
优点: 简单易行,系统开销小;
缺点: 不够精确,可能会出现优先级低的进程长期没有被调度的情况。
2)动态优先级
动态优先级是在创建进程时赋予该进程一个初始优先级,然后其优先级随着进程的执行情况的变化而改变,以便获得更好的调度性能。
3.3.4 多队列调度算法
将系统中的进程就绪队列从一个拆分为若干个,将不同类型或性质的进程固定分配在不同的就绪队列,不同的就绪队列采用不同的调度算法,一个就绪队列的进程可以设置不同的优先级,不同的就绪队列本身也可以设置不同的优先级。
3.3.5 多级反馈队列调度算法
1. 调度机制
(1) 设置多个就绪对列。
(2) 每个队列都采用FCFS算法。
(3) 按队列优先调度。
以上具体内容查看书本95-96页
2. 调度算法的性能
如果规定第一个队列的时间片略大于多数人机交互所需之处理事件时,便能较好地满足各种类型用户的需要。
终端型用户、短批处理作业用户、长批处理作业用户。