一、处理机调度的层级
1、高级调度
从外存的作业队列中选择一个作业调入内存,并且创建PCB,只能调入一次,调出一次。
2、中级调度
将暂时不经常使用的作业从内存中调出到外存中,当内存中的队列有空闲的时再将这些队列调入内存。
中级调度的发生频率是高于高级调度,相当于是在内存和外存之间调度作业。
考虑终极调度的发生处理机除创建,就绪,阻塞,运行三种状态之外还有就绪挂起和阻塞挂起状态。
3、低级调度
低级调度是内存和cpu之间的调度,即将内存中的作业队列按照调度的方式调入cpu进行处理。
4、三种调度的对比
二、调度算法的评价指标
1、cpu的利用率
cpu利用率=忙碌时间/使用时间
2、系统的吞吐量
单位时间完成作业的数量
系统的吞吐量=处理了多少作业/使用多少时间
3、周转时间
周转时间=作业完成时间-作业提交时间
平均周转时间=各作业周转时间之和/使用的时间
带权周转时间=周转时间/作业实际运行时间
平均带权周转时间=各带权周转时间之和/作业数
4、等待时间
进程到作业的等待时间
平均等待时间为进程/作业的等待之间的平均值
5、响应时间
从用户提交到系统响应的时间。
6、总结如下
三、处理机调度的时机切换与过程的调度方式
1、进程调度处理机(处理机对于不同进程的选择)
可以把处理机比作皇帝,各个进程比作皇帝的妃子,处理机的调度就是皇帝面见这些妃子的选择。
主动放弃处理机
进程的正常终止
主动请求阻塞
行动过程中发生异常而终止
被动放弃处理器(强迫放弃)
进程的时间片用完
处理机有更加紧急的事务要处理(如I|O请求发生中断)
有更高优先级的进程进入处理机
有一些情况处理机不能改变当前进程
中断处理的过程中处理机不能进行进程的切换
处理机运行的进程在操作系统内核的临界区时
在执行原语的过程中处理机不能切换进程,因为原语的执行具有原子性必须一气呵成。
2、进程调度的方法及进程调度的广义定义
非掠夺式调度方法(别称非抢占法):只允许进程主动放弃处理机,即便有更高优先级的进程进入也要等待当前进程结束后或者主动请求进出阻塞态。
掠夺式调度(别称抢占法):当有更高优先级的进程时,可以主动停止当前进 程,并储存进程的信息,处理机处理更高优先级的进程。
处理机的广义定义如下图:
四、进程调度的算法
1、先来先服务(FCFS)
类似与生活中的排队,先来的先获得处理机的服务。
2、短作业优先(SJF,Short Job First)
不需要过多思考,这个算法的使用方法和这个方法的名字一样,复习的时候看一眼抢占式和非抢占式的立体就行。
3、高响应比优先
调度处理机前先计算响应比,选择响应比高的进程进行服务。
4、时间片轮转(RR)
给每个进程分配相同时间的时间片,无论在该时间内是否能处理完都要结束。
5、优先级调度算法
按照优先级给不同的进程进行服务
6、多级反馈队列
(有些地方没看懂希望复习之后能弄懂)