目录
一、处理器调度
1.概念:从就绪队列中按照一定的算法选择一个进程并将处理机分配,实现并发。
2.层次:
高级调度(作业调度):从后备中挑出一个或多个,分配资源,建立进程,获得竞争处理器的权利。调入时调出PCB,调出时撤销PCB。
中级调度(内存调度):引入虚拟存储,将暂不运行的进程调至外存,进入挂起状态(就绪挂起/阻塞挂起),具备运行条件后重新载入内存。提高了内存利用率和系统吞吐量。 PCB常驻内存,记录挂起存放位置,进程状态,置于挂起队列中。
低级调度(进程调度):选取进程,分配处理器,是最基本的调度。
二、进程调度的时机、切换过程、调度方式
1.时机:
主动放弃:正常终止、发生异常而终止、主动请求阻塞(等待IO)。
被动放弃:时间片用完,IO中断,优先级高的进程进入队列。
无法调度切换:中断过程中,进程在内核程序临界区内,在原子操作的过程中。
2.调度方式:
非剥夺方式:只允许进程主动放弃处理器。
剥夺调度方式:有重要、紧急、优先级高的进程进入处理器,分配资源给它,暂停当前进程。
3.切换过程:一个进程让出处理器,由另一个进程占用
三、调度算法评价指标
1.CPU利用率=忙碌时间/总时间
2.系统吞吐量=完成作业数/花费时间。 单位时间内完成作业的数量。
3.周转时间=完成时间-提交时间。
平均周转时间=周转时间和/作业数。
带权周转时间=(完成时间-提交时间)/实际运行时间。
4.等待时间=建立进程的等待时间+在后备队列中等待的时间。 等待被服务的时间和。
5.响应时间:首次提交请求 到 首次提交响应的时间。
四、调度算法
1.先来先服务:按进入队列先后顺序服务,是非抢占式算法。公平,实现简单。对长作业有利。
2.短作业优先:追求最短平均等待时间,平均周转时间,平均带权周转时间。是非抢占式算法。对短作业有利。
最短剩余时间优先: 新进程加入 或 进程结束 ,重新计算剩余时间,执行剩余时间少的进程。
3.高响应比优先:考虑等待时间和要求服务的时间, 计算响应比,选择响应比高((等待时间+要求服务时间)/要求服务时间)的进程或者作业服务。是非抢占式算法。
4.时间片轮转:适用于分时操作系统,公平轮流为各个进程服务。是抢占式算法, 由时钟装置发出时钟中断通知CPU时间已到。
时间片要让切换进程的开销(时间片/切换开销)占比不超过1%。该算法中不区分进程紧急程度。
5.优先级调度算法:适用于实时操作系统,根据任务的紧急程度来决定处理顺序,选择优先级高的调度。
非抢占式算法,在进程主动放弃资源时发生新的调度。
抢占式:在 主动放弃 或 就绪队列发生变化 时发生抢占。
通常优先级:系统进程>用户进程;前台进程>后台进程;IO型进程>计算型进程。
6.多级反馈队列调度算法:适用于交互式操作系统,是抢占式算法。
1.设置多级就绪队列:优先级从高到低,时间片从小到大,不同级别对应不同时间片。
2.新的进程首先进入最高级别的队列,执行该级别对应的时间片,执行后进入下一级别队列。
3.当有新的进程进入,检查优先级,执行优先级高的,正在执行的进程若未执行完且存在更高级别的进程,则退回到当前级别中。