目录
处理机调度
调度的基本概念
作业
高级调度(作业调度)
中级调度(内存调度)
低级调度(进程调度/处理机调度)
进程的挂起态与七状态模型
挂起和阻塞的区别
三层调度的联系和对比
本节思维导图
处理机调度
调度的基本概念
调度是指操作系统中的一个重要功能,用于管理和分配计算机资源,以便有效地执行各种任务和进程。它涉及确定何时、何地以及如何运行进程或任务(当有一堆任务需要处理,但由于资源有限,这些事情没法同时处理时。就需要确定某种规则来决定处理这些任务的顺序,这就是“调度”研究的问题)
作业
概念:一个具体的任务
用户向系统提交一个作文 = 用户让操作系统启动一个程序(处理一个具体的任务)
高级调度(作业调度)
面临问题:内存空间有限,有时无法将用户提交的作业全部放入内存
解决方案:按一定的原则从外存的作业后背队列中选出一个作业调入内存,并建立新的进程,每个作业只调入一次,调出一次,作业调入时会建立PCB,调出时才撤销PCB:
中级调度(内存调度)
面临问题:内存不足时,可将某些进程的数据调出外存,等内存空闲或进程需要运行时再重新调入内存,暂时调到外村等待的进程状态为挂起态,被挂起的进程PCB会被组织成挂起队列
解决方案:按照某种策略决定将哪个处于挂起状态的进程重新调入内存
低级调度(进程调度/处理机调度)
面临问题:进程过多但是CPU数量有限
解决方案:按照某种策略从就绪队列中选取一个进程,将处理机分配给CPU
特点:进程调度是操作系统中最基本的一种调度,在一般的操作系统中都必须配置进程调度,进程调度的频率很高,一般几十毫秒一次
进程的挂起态与七状态模型
概念:暂时调到外存等待的进程状态为挂起状态(挂起态),挂起态又可以进一步细分为就绪挂起、阻塞挂起两种状态,也因此五状态模型还可以细分为七状态模型(当然还能划分更多的):
1、系统内存不够用时,可能会把处于就绪态的进程放入就绪挂起队列中,当系统内存够用时,会将该进程重新激活为就绪态
2、同样的阻塞态也可以也有这样的效果
3、对于处于阻塞挂起队列的进程,当导致它所阻塞的原因消失时,该进程就会被转为就绪挂起队列,进入挂起队列后,当该进程被激活时,会直接转为就绪态而非阻塞态
4、进程运行态结束后,可能会被直接放在就绪挂起队列中,同样的如果进程创建态结束创建了PCB后但是由于系统内存不够时,该进程也会被放在就绪挂起队列中
挂起和阻塞的区别
两种状态都是暂时不能获得CPU的服务,但挂起态是将进程映像调到外村去了,而阻塞态下进程映像还在内存中,有的操作系统会把就绪挂起、阻塞挂起分为两个挂起队列,甚至会根据阻塞原因不同再把阻塞挂起进程进一步细分为多个队列
三层调度的联系和对比
要做什么 | 调度发生位置 | 发生频率 | 对进程状态的影响 | |
高级调度 (作业调度) | 按照某种规则,从后备队列中选择合适的作业将其调入内存,并为其创建进程 | 外存->内存 (面向作业) | 最低 | 无->创建态->就绪态 |
中级调度 (内存调度) | 按照某种规则,从挂起队列中选择合适的进程将其数据调回内存 | 外存->内存 (面向进程) | 中等 | 挂起态->就绪态 (阻塞挂起->阻塞态) |
低级调度 (进程调度) | 按照某种规则,从就绪队列中选择一个进程为其分配处理机 | 内存->CPU | 最高 | 就绪态->运行态 |
本节思维导图
~over~