处理器调度算法设计从以下几个方面着手:
资源利用率、吞吐率、公平性、响应时间、周转时间、截止时间的保证、优先权原则等等。
cpu利用率 = cpu有效工作时间 / cpu总的运行时间
cpu总运行时间 = cpu有效工作时间+cpu空闲等待时间
吞吐率:单位时间内cpu处理的作业数
公平性:确保进程不会出现饿死现象,即某进程一直在等待,当得到资源时,进程已经没有执行的实际意义。
响应时间:从提交一个请求到接收到响应之间的时间间隔称为响应时间。
作业周转时间:批处理用户从作业提交给系统开始到作业完成为止的时间间隔。实际中,其是作业在系统里等待时间与运行时间之和。
平均作业周转时间:批作业总的周转时间除以作业数。
带权周转时间:作业的周转时间除以其实际的运行时间。即等待时间与运行时间之和除以运行时间。
平均作业带权周转时间:批作业所有带权周转时间之和除以作业数
截止时间:某个人物必须开始执行的最迟时间或者必须完成的最迟时间,实时系统调度性能的重要指标。
1、高级调度
主要有作业调度、长程调度。
高级调度发生在新进程的创建中,它确定一个进程能否被创建,或者能否被置成就绪状态
2、中级调度
主要有内存调度,进程在内存和外村间的对换。
反映到进程状态上就是进程的挂起和解除挂起状态,其根据系统的当前负荷情况决定停留在主存中的进程数。
3、低级调度
决定哪个就绪进程占用cpu,是面向进程/线程的调度
三种调度有可以通用的算法:
FCFS先来先服务算法:顾名思义,非剥夺式算法。
简单易实现,但效率不高。
SJF短作业优先算法,非剥夺算法。各个作业到达时间不一致
实现开销大,需预知作业长短并排序,且会使得长作业出现饥饿现象甚至饿死。
SRTF最短剩余时间优先算法,剥夺式算法,其是对SJF算法的改造。
HRRF高响应比调度算法:
响应时间:作业进入系统后的等待时间与估计计算时间之和称为该作业的响应时间。
响应比:作业的响应时间除以作业估计计算时间称作响应比。1+已等待的时间/估计计算时间
HRRF性能介于FCFS和SJF之间。