一、处理机调度相关基本概念
1. 调度方式和调度算法的若干准则
面向用户的准则:周转时间短(CPU执行用时Ts、周转时间T=Ts+Tw、带权周转时间W= T/Ts)、响应时间快、均衡性、截止时间的保证、优先权准则
面向系统的准则:系统吞吐量高、处理机利用率好、各类资源的平衡利用批处理系统为照顾为数众多的短作业,应采用短作业优先的调度算法;分时系统为保证系统具有合理的响应时间,应采用轮转法进行调度
二、常用调度算法
1、先来先服务调度算法FCFS
- 按照作业提交,或进程变为就绪状态的先后次序分派CPU
- 新作业只有当当前作业或进程执行完或阻塞才获得CPU运行
- 被唤醒的作业或进程不立即恢复执行,通常等到当前作业或进程出让CPU。(所以,默认即是非抢占方式)
- 有利于CPU繁忙型的作业,而不利于I/O繁忙的作业(进程)。
2、短作业(进程)优先调度算法SJF(非抢占)/SPF(抢占)
- 平均周转时间、平均带权周转时间都有明显改善。SJF/SPF调度算法能有效的降低作业的平均等待时间,提高系统吞吐量。
- 未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)的及时处理、对长作业的不利、作业(进程)的长短含主观因素,不一定能真正做到短作业优先。
3、基于时间片的轮转调度算法RR
过程:
- 排成一个队列
- 每次调度时将CPU分派给队首进程。
- 时间片结束时,发生时钟中断。
- 暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前就绪的队首进程。
说明:
- 进程阻塞情况发生时,未用完时间片也要出让CPU。
- 能够及时响应,但没有考虑作业长短等问题。
- 能够及时响应,但没有考虑作业长短等问题。