处理机调度
处理机调度
作业
- 作业是从
用户角度
出发的,它由用户提交,以用户任务
为单位 - 进程是从
操作系统
出发的, 由系统生成,是操作系统的资源分配和独立运行的基本单位
- 作业是从
调度算法时间的计算可以采用画
甘特图
来进行- 在进行处理机调度的性能计算时,题目中给出
"作业在时刻0以1,2,3,4,5的顺序到达"
时(8.22更新)- 此处的顺序到达更多的不是直接上处理机运行
- 而是更像暂时顺序进入一个就绪队列
- 当进行诸如FCFS、RR等调度时,顺序出队
- 但当进行SJF、优先级等调度时,就扫描此就绪队列(此时几乎可以视作同时到达),根据调度算法的条件来上处理机执行
- 且同时到达SJF的平均周转时间是最短的,注意检验
- 在进行处理机调度的性能计算时,题目中给出
做题时注意看好是等待时间、周转时间还是响应时间
做题时注意调度的开始时机,不要忽视
零时刻
时进行的调度处理机调度
- 实际调度不会存在处理器为空,就绪队列全满的情况
- 但实际调度种可以出现处理器为空,阻塞队列全满的状态
- 此时发生了
死锁
- 此时发生了
- 当进程处于临界区时, 说明进程正在占用处理机,只要
不破坏临界资源的使用规则
,就不会影响处理机的调度。- 比如, 通常访问的临界资源可能是慢速的外设(如打印机),若在进程访问打印机时,不能进行处理机调度,则系统的性能将非常差。
选择调度算法时考虑的准则
- 公平
- 确保每个进程获得合理的
CPU 份额
- 确保每个进程获得合理的
- 有效
- 使CPU尽可能地
忙碌
- 使CPU尽可能地
- 响应时间
- 使交互用户的
响应时间
尽可能短
- 使交互用户的
- 周转时间;
- 使
批处理用户等待输出的时间
尽可能短
- 使
- 吞吐量
- 使单位时间处理的
进程数
尽可能最多
- 公平
时间片轮转
- 主要目的是使多个交互的用户能够得到
及时响应
- 主要适用于
分时系统
- 响应时间与
时间片
和用户数
成正比
- 响应时间与
- 用户交互性好,响应快,改善人机环境,满足用户需求
- 主要适用于
- 频繁切换增加了
系统开销
,吞吐量
和周转时间
均不如批处理
- 时钟中断是系统中特定的
周期性时钟节拍
- 操作系统通过
时钟中断
来确定时间间隔
,实现时间的延时
和任务的超时
- 比如,24个时钟中断作为一个时间片,OS每秒发出120次时钟中断(*王道P75 08.*)
- 操作系统通过
- 主要目的是使多个交互的用户能够得到
现代操作系统为了保证能最优,通常根据
响应时间
、系统开销
、进程数量
、进程运行时间
等因素确定时间片大小- 处于运行态的进程用完一个时间片后,其状态会变为
就绪态
,等待下一次处理器调度。 - 注意此时的就绪态是
进入就绪队列等待
,若后面还有进程到达,在此等待进程后上处理机执行完后才执行,做题注意到达时间
- 进程执行完最后的语句并使用
系统调用exit
请求操作系统删除它或出现一些异常情况时,进程才会终止。
- 处于运行态的进程用完一个时间片后,其状态会变为
响应比
- 综合考虑了每个进程的
等待时间
和执行时间
- 对于同时到达的长进程和短进程,短进程会优先执行,以提商系统吞吐量
- 而长进程的响应比可以随等待时间的增加而提高,不会产生进程无法调度的情况。
- 可以说响应比是一种使用
乘除法
构造动态优先数
的方法
- 综合考虑了每个进程的
优先级
- 作业的优先级与长作业、短作业或系统要求资源的多少没有必然的关系
- 在动态优先级中
- 随着
进程执行时间的增加
其优先权随之降低
- 随着
作业等待时间的增加
其优先权相应上升
- 随着
多级反馈队列
- 需要综合考虑
- 优先级
数量
、优先级之间的转换规则
- 就绪队列的数量
- 影响
长进程
的最终完成时间
- 影响
- 就绪队列的优先级
- 影响进程
执行的顺序
- 影响进程
- 各就绪队列的调度算法
- 影响各队列中进程的调度顺序
- 进程在就绪队列中的迁移条件
- 影响各进程在各队列中的执行时间
- 优先级
- 需要综合考虑