处理器调度
处理器调度的目标是以满足系统目标(如响应时间、吞吐率、处理器效率)的方法,把进程分配到一个或多个处理器中执行。
1、处理器调度的类型
处理器调度有三个层次:
长程调度:又称高级调度,作业调度,其决定是否能加入待执行的进程池中
中程调度:又称中级调度,平衡负载调度,其决定加入部分或全部在内存中的进程集合中
短程调度:又称低级调度,进程调度,其决定哪个可运行的进程将被处理器执行
在进程七态转换中就涉及到这三种转换:
从根本上说,调度属于队列管理方面的问题,用来在排队环境中减少延迟和优化性能
1.1 长程调度
长程调度程序决定哪一个程序可以进入系统中处理,因此,它控制着系统并发度。
所以,关于何时创建一个新进程的决策通常由要求的系统并发度来驱动。
1、创建的进程越多,每个进程可以执行的时间所占百分比就越小
2、每当一个作业中止时,调度程序可以决定增加一个或多个新作业
3、如果处理器的空闲时间片超过了一定的阀值,也可能会启动长程调度
1.2 中程调度
中程调度是交换功能的一部分。
1.3 短程调度
主要功能:
1、记住进程或者内核级线程的状态
2、决定某个进程或者内核级线程什么时候获得处理器,以及占用多长时间
3、把处理器分配个进程或内核级线程
4、回收处理器
2、处理器调度算法
短程调度的主要目标是按照优化系统一个或多个方面行为来分配处理器时间。通常的准则可以按照两维来分类:面向用户的准则和面向系统的准则。
具体可以细分为:
面向用户,与性能相关
周转时间
指的是一个进程提交到完成的时间间隔,包括实际执行的时间加上等待资源(包括处理器资源)的时间。
响应时间
对一个交互进程,这是指从提交一个请求到开始响应的时间间隔。应当使得交互式用于的响应时间尽可能小,或尽快出来处理实时任务
最后期限
当可以指定进程完成的最后期限时,调度原则将降低其他目标,使得最后满足期限的作业数目的百分比达到最大
面向系统,与性能相关
吞吐量
单位时间处理的进程数尽可能多TPS处理器利用率
这是处理器出于忙的状态的时间比。使cpu或者其他资源的使用率尽可能高而且能够并行工作
面向系统,其他
公平性
确保每个用户每个进程获得合理的CPU份额或其他资源份额
2.1 调度算法
先来先服务(FCFS)
选择等待服务时间最长的进程
轮转(RR)
使用时间片限制任何正在运行的进程只能使用一段处理器时间,并在所有就绪队列进程中轮转
最短进程优先(SPN)
选择预期处理时间最短的进程,并且不抢占该进程
最短剩余时间(SRT)
选择预期的剩余时间最短的进程。当一个进程就绪时,这个进程可能会被抢占
最高相应比优先(HRRN)
调度决策基于归一化周转时间的估计
反馈
建立一组调度队列,基于每个进程的执行历史和其他一些准则,把他们分配到各个队列中。