在这里我们主要关注进程的两个行为特点:io等待和cpu占用。根据这两个方面将进程分成两类:IO密集和CPU密集。
根据系统的环境,我们设计出不同调度算法,以满足各个系统的需求特点。一般我们考虑三种系统:批处理,交互式,实时。
批处理系统的一般有三个要求:高吞吐量,短周转时间,高cpu利用率。高吞吐量的话要尽量运行短作业,而这不能满足短周转时间的要求;cpu利用率是一个参考度量。
交互式系统要求:响应时间,平衡性。响应时间当然是越短越好。而平衡性是指系统要根据用户的心理去合理分配不同进程的时间片。
实时系统要求:满足截止时间,可预测。实时系统要求任务在指定时间内完成,并能够准确预测某任务的完成时间,具有高可靠性的特点。实时系统在这里不做研究。
批处理系统的调度算法有几个常见的:先来先服务,最短作业优先,最短剩余时间优先(抢占式)。
交互式系统的调度算法:1. 轮转调度 2.优先调度 3.多级队列 4.最短进程优先