目录
一、调度的概念
1.1调度的层次
1.1.1高级调度(作业调度)
1.1.2中级调度(内存调度)
1.1.3低级调度(进程调度)
1.2状态模型
1.3调度的时机
1.4调度方式
1.5进程的切换与过程
二、调度算法的评价指标
2.1CPU利用率
2.2吞吐量
2.3周转时间
2.4带权周转时间
2.5等待时间
2.6响应时间
三、调度算法
3.1先来先服务(FCFS)
3.2短作业优先(SJF)
3.3高响应比优先(HRRN)
3.4时间片轮转调度算法(RR)
3.5优先级算法
3.6多级反馈队列调度算法
3.7多级队列调度算法
一、调度的概念
多道程序中,进程数量往往多于处理机个数,因此进程争用处理机的情况在所难免。处理机调度是对处理机进行分配
1.1调度的层次
1.1.1高级调度(作业调度)
按一定的原则从外存的作业后备队列中挑选一个作业调入内存,并创建进程,每个作业只调入一次,调出一次,作业调入时会建立PCB,调出时才撤销PCB
1.1.2中级调度(内存调度)
按某策略决定将哪个处于挂起状态的进程重新调入内存
内存不够时,可将某些进程的数据调出外存。等内存空闲或者进程需要运行时再重新调入内存
1.1.3低级调度(进程调度)
按照某种算法从就绪队列中年选择一个进程为其分配处理机
1.2状态模型
1.3调度的时机
1.4调度方式
非剥夺调度方式,又称非抢占式方式。即允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动进入阻塞态
剥夺调度方式:又称抢占式方式,当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的处理机,将处理机分配给更重要紧迫的进程
1.5进程的切换与过程
二、调度算法的评价指标
2.1CPU利用率
2.2吞吐量
单位时间内完成作业的数量
2.3周转时间
指从作业被提交给系统开始,到作业完成为止的这段时间间隔
2.4带权周转时间
2.5等待时间
指进程/作业处于等待处理机状态时间之和,等待时间越长,用户满意度越低
对进程:等待时间为进程建立后等待被服务的时间之和
对作业:不仅考虑建立进程后的等待时间,还有加上作业在外存后备队列中等待时间
2.6响应时间
指用户提交请求到首次产生响应所用时间
三、调度算法
3.1先来先服务(FCFS)
思想:类似队列先来先到
规则:按照作业/进程到达先后顺序进行服务
是否可抢占式:非抢占式
优点:公平、算法实现简单
缺点:对长作业有利,对短作业不利
不会饥饿
3.2短作业优先(SJF)
思想:追求最少的平均等待时间,最少的平均周转时间,最少的平均带权周转时间
规则:最短作业/进程优先得到服务
是否可抢占式:非抢占式,也有抢占式-----最短剩余时间优先算法
优点:"最短的"平均等待时间、平均周转时间
缺点:不公平。对短作业有利,长作业不利。
一直有短作业,长作业就会得不到服务会有饥饿现象
3.3高响应比优先(HRRN)
思想:要综合考虑作业/进程的等待时间和要求服务时间
规则:在每次调度时计算各个作业/进程的响应比,选择响应比最高的作业/进程为其服务 响应比=(等待时间+要求服务时间)/要求服务时间
是否可抢占式:非抢占式
优点:综合考虑等待时间和运行时间。等待时间相同时,要求服务时间短的优先。要求服务时间相同时,等待时间长的优先。对长作业来说,随着等待时间越来越长,响应比越来越大,避免饥饿
不会饥饿
3.4时间片轮转调度算法(RR)
思想:公平、轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响应
规则:按照各进程到达就绪队列得顺序,轮流让各个进程执行一个时间片。若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队
是否可抢占式:抢占式
优点:公平、需要快,适合分时操作系统
缺点:由高频率的进程切换,因此有一定开销,不区分任务紧急程度
不会饥饿
时间片太大会退化先来先服务调度算法,并会增大进程响应时间,因此时间片不能太大
进程切换太频繁,也不能太小
3.5优先级算法
思想:根据紧急程度决定处理顺序
规则:每个作业/进程有各自的优先级,优先级高的先调度
是否可抢占式:抢占式/非抢占式都有
优点:优先级区分紧急程度。可灵活地调整对各作业/进程的偏好程度
缺点:源源不断有优先级高的任务到来,会有饥饿
会饥饿
3.6多级反馈队列调度算法
思想:对其他调度算法的折中权衡
规则:1.设置多级就绪队列,各级队列优先级高到低,时间片小到大,2.新进程到第1级队列按FCFS原则排队分配时间片,若时间片完进程还未结束,则进入下一级队列队尾,如果已经是最后一级就放回队列队尾3.只有第k级队列为空时,才会为k+1级队头进程分配时间片
优点:
是否可抢占式:抢占式
会饥饿
3.7多级队列调度算法