概念
调度:按照一定的算法在就绪队列中选择一个作业进行服务。
必要性:
提高计算机软硬件资源的利用率,是实现多道程序并行的必要条件。
层次
作业调度
是指在外存中处于就绪状态的作业中按照一定的算法选择一个放入内存,并建立PCB,分配志愿等。对于作业而言作业调度只有一次。
内存调度
是指在内存不足时将进程的部分数据调出内存,但保留进程的PCB在内存之中。调出的进程又称处于挂起状态。
进程调度
按照一定的算法在就绪队列中选择一个进程进行服务。由于涉及到分配CPU,因此进程调度属于OS内核程序。
进程调度的时机
理论上:进程请求调度—>进程调度程序执行,选择新的就绪进程—>进程切换
实际上:
处理中断的过程中
进程处于OS临界区中
原子操作中
无法实现进程的调度,置系统的请求调度标志后需等待当前事件完成才可进行调度。进程切换往往在进程调度后立刻发生。此时需要将原进程当前切换点的现场信息推入当前进程的内核区,并恢复新进程的运行环境。
进程调度分为剥夺式和非剥夺式。
部分指标
周转时间=结束时间-提交时间
带权周转时间=周转时间/工作时间
响应时间=第一次响应的时间-提交时间
等待时间:不包括I/O时间
调度算法
先来先服务FCFS