2.2.1操作系统(处理机调度的概念 层次 调度时机 切换与过程 调度方式)

目录

1.处理机调度 概念、层次

 调度的基本概念

调度的三个层次

1.高级调度

2.中级调度

3.低级调度

4.三层调度的联系、对比 

2.进程调度的时机 切换与过程 调度方式

 进程调度的时机

进程调度的方式

进程的切换与过程


1.处理机调度 概念、层次

 调度的基本概念

当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定 某种规则 决定 处理 这些任务的 顺序 ,这就是“调度”研究的问题。
在多道程序系统中,进程的数量往往是多于处理机的个数的,这样不可能同时并行地处理各个进程。 处理机调度 ,就是从就绪队列中 按照一定的算法选择一个进程 将处理机分配给它 运行,以实现进程 的并发执行

调度的三个层次

1.高级调度

由于内存空间有限,有时无法将用户提交的作业全部放入内存,因此就需要确定某种规则来决定
将作业调入内存的顺序。
高级调度(作业调度) 。按一定的原则从外存上处于后备队列的作业中挑选一个(或多个)作业,
给他们分配内存等必要资源,并 建立相应的进程(建立 PCB ,以使它(们) 获得竞争处理机的权
高级调度是辅存(外存)与内存之间的调度。每个作业只调入一次,调出一次。 作业调入时会建
立相应的 PCB ,作业调出时才撤销 PCB 高级调度主要是指调入的问题,因为只有调入的时机需要
操作系统来确定,但调出的时机必然是作业运行结束才调出。

2.中级调度

引入了虚拟存储技术之后,可将暂时不能运行的进程调至外存等待。等它重新具备了运行条件且
内存又稍有空闲时,再重新调入内存。
这么做的目的是为了 提高内存利用率 系统吞吐量
暂时调到外存等待的进程状态为 挂起状态 。值得注意的是, PCB 并不会一起调到外存,而是 会常驻
内存 PCB 中会记录进程数据在外存中的存放位置,进程状态等信息,操作系统通过内存中的 PCB
来保持对各个进程的监控、管理。被挂起的进程 PCB 会被放到的 挂起队列 中。
中级调度(内存调度) ,就是要决定将哪个处于挂起状态的进程重新调入内存。
一个进程可能会被多次调出、调入内存,因此 中级调度 发生的 频率 要比高级调度 更高
补充知识:进程的挂起态与七状态模型
暂时调到外存等待的进程状态为 挂起状态(挂起态, suspend
挂起态又可以进一步细分为 就绪挂起 阻塞挂起 两种状态

3.低级调度

低级调度(进程调度) ,其主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理
机分配给它。
进程调度是操作系统中 最基本的一种调度 ,在一般的操作系统中都必须配置进程调度。
进程调度的 频率很高 ,一般几十毫秒一次。

4.三层调度的联系、对比 

2.进程调度的时机 切换与过程 调度方式

知识总览

 

进程调度的时机

进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机

例题

临界资源:一个时间段内只允许一个进程使用的资源。各进程需要互斥地访问临界资源。

临界区:访问临界资源的那段代码。
内核程序临界区 一般是用来访问 某种内核数据结构 的,比如进程的就绪队列(由各就绪进程的 PCB 组成)

进程调度的方式

有的系统中,只允许进程主动放弃处理机
有的系统中,进程可以主动放弃处理机,当有更紧急的任务需要处理时,也会强行剥夺处理机(被动放弃)
故此引出 进程调度的方式
非剥夺调度方式 ,又称 非抢占方式 。即,只允许进程主动放弃处理机。在运行过程中即便有更紧迫
的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。
实现简单,系统开销小但是无法及时处 理紧急任务,适合于早期的批处理系统
剥夺调度方式 ,又称 抢占方式 。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进
程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。
可以优先处理更紧急的进程,也可实现让各进程按时间片轮流执行的功能(通过时钟中断)。适合于分时操作系统、实时操作系统

进程的切换与过程

“狭义的进程调度”与“进程切换”的区别:

狭义的进程调度 指的是从就绪队列中 选中一个要运行的进程 。(这个进程可以是刚刚被暂停执行的进程,也可能是 另一个进程 ,后一种情况就需要 进程切换
进程切换 是指一个进程让出处理机,由另一个进程占用处理机的过程。
广义的进程调度 包含了选择一个进程和进程切换两个步骤。
进程切换的过程主要完成了:
1. 对原来运行进程各种数据的保存
2. 对新的进程各种数据的恢复
(如:程序计数器、程序状态字、各种数据寄存器等处理机现场信息,这些信息一般保存在进程控制块)
注意: 进程切换是有代价的 ,因此如果 过于频繁的 进行进程 调度、切换 ,必然会使整个 系统的效率降低
使系统大部分时间都花在了进程切换上,而真正用于执行进程的时间减少。

猜你喜欢

转载自blog.csdn.net/Javascript_tsj/article/details/123941176