【操作系统】——处理机的调度(6)
作者:互联网
文章目录
Tips
一、处理机调度
调度就是按一定规则响应各个请求者,对请求者设置了访问顺序。
调度的三个层次
1、高级调度(作业调度)
在操作系统中的作业是指一个具体的任务,用户向系统提交一个作业其实约等于用户让操作系统启动一个程序(来处理一个任务)
高级调度是针对作业而言的,本质上而言,高级调度是将处于外存当中的程序按一定次序调入内存的过程。
2、低级调度(进程调度/处理机调度)
低级调度是针对进程而言的,本质上而言,低级调度是将处于就绪状态当中的进程按一定次序分配处理机的过程
3、中级调度(内存调度)
在多进程处于内存中而内存不足(系统负载过高)的情况下,为了更好的性能体验,部分进程会被从内存调至外存,处于挂起状态。
中级调度的作用就是将它们按一定规则重新调度回内存。
总结
-
高级调度是从外存到内存的,针对作业(程序启动)的调度。
高级调度——》启动程序,引发进程的创建态 -
低级调度是从内存到处理机,针对进程是否可运行(进程交替)的调度。
低级调度——》安排进程上处理机,引发进程有就绪态到运行态的转换 -
中级调度是从外存到内存的,针对曾挂起的进程的调度。
中级调度——》对外存中挂起队列的一种处理,引发的是进程由挂起态到就绪态的转换。
二、基于挂起态的七状态模型
创建态、就绪态——>就绪挂起:内存不足
阻塞态——>阻塞挂起:内存不足
阻塞挂起——>就绪挂起:先前等待的事件已发生
…
其实挂起状态主要是解决内存不足的方案,在引入挂起态的七状态模型中,只要是考虑到内存不足的情况就转至挂起态,即可轻松画出。
三、进程调度的深入分析
进程调度(低级调度):按一定规则为就绪进程分配处理机
其实调度的本意就是充分利用“资源”,让“资源”(内存、处理机等)不再空闲。
高级调度是在用户启动程序的情况下,不让内存空闲
中级调度是在内存空闲的情况下,调入曾挂起进程,不让内存空闲
低级调度是在处理机空闲的情况下,调入曾就绪的进程,不让处理机空闲
1、进程调度的时机(什么时候需要)
进程调度是低级调度,低级调度是在处理机空闲的情况下需要,处理机空闲只有两种情况:1、运行态进程主动放弃处理机(进程代码内部原因:正常终止或异常);2、运行态进程被动放弃处理机(中断)
Q: 为什么进程在操作系统内核程序临界区中,不能进行进程调度与切换??
此时要注意操作系统内核程序临界区和普通程序临界区的区别:
临界区代码会对临界资源进程上锁,若进程访问的是内核数据结构,此时发生调度,则导致该进程迟迟无法对内核数据结构解锁,影响了系统内核的其他管理工作,故进程访问内核数据结构时不能调度,必须尽快解锁;
但是,如果进程访问的是普通的临界资源,则不会影响内核管理,若此时不发生调度的话,该进程会久久霸占处理机,CPU一直处于空闲状态,故故进程访问普通临界资源时可以发生调度。
2、进程的调度方式
四、进程调度与进程切换
狭义的进程调度是单指选择那个进程上处理机,而如果是选择刚刚停止的进程,则不需要进程切换,若是别的进程,则需要进程切换,其实进程切换要做的事情就像是中断中的保护现场、恢复现场的操作。
标签:操作系统,处理机,调度,低级,内存,进程,空闲 来源: https://blog.csdn.net/m0_54385790/article/details/122630986