什么是进程调度?为什么要进行进程调度?
操作系统管理了系统的有限资源,当有多个进程(或多个进程发出的请求)要使用这些资源时,因为资源的有限性,必须按照一定的原则来选择进程(请求)来占用资源。这就是调度。目的是控制资源使用者的数量,选取资源使用者许可来占用资源。
调度算法要求:高资源利用率、高吞吐量、用户满意等原则。
进程调度所采用的算法是与整个系统的设计目标相一致的:
1).批处理系统:增加系统吞吐量和提高系统资源利用率。
2).分时系统:保证每个分时用户能容忍的响应时间。
3).实时系统:保证对随机发生的外部事件做出实时响应。
常见的进程调度算法:
1、先来先服务(FCFS)
是最简单的调度算法,按先后顺序进行调度。
FCFS算法:按照作业提交或进程变为就绪状态的先后次序,分派CPU; 当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。 在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。最简单的算法。
特点:比较有利于长作业,而不利于短作业,有利于CPU繁忙的作业,而不利于I/O繁忙的作业。
2、高优先权优先调度算法
为了照顾紧迫型作业,使之在进入系统后便获得优先处理