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. 对新的进程各种数据的恢复


(如:程序计数器、程序状态字、各种数据寄存器等处理机现场信息,这些信息一般保存在进程控制块)


注意: 进程切换是有代价的 ,因此如果 过于频繁的 进行进程 调度、切换 ,必然会使整个 系统的效率降低 ,


使系统大部分时间都花在了进程切换上,而真正用于执行进程的时间减少。


相关文章
|
8天前
|
编解码 自然语言处理 JavaScript
智谱发布GLM-OS概念及Agent产品,CogAgent-9B模型开源助力GUI交互场景
11月29日,智谱正式提出 GLM-OS 概念,并发布 AutoGLM 和 GLM-PC 两款 Agent 产品。近期GLM-PC 的基座模型—— CogAgent-9B 开源,供社区进一步开发。
|
1月前
|
存储 算法 调度
深入理解操作系统:进程调度的奥秘
在数字世界的心脏跳动着的是操作系统,它如同一个无形的指挥官,协调着每一个程序和进程。本文将揭开操作系统中进程调度的神秘面纱,带你领略时间片轮转、优先级调度等策略背后的智慧。从理论到实践,我们将一起探索如何通过代码示例来模拟简单的进程调度,从而更深刻地理解这一核心机制。准备好跟随我的步伐,一起走进操作系统的世界吧!
|
2月前
|
算法 调度 UED
深入理解操作系统:进程管理与调度策略
操作系统作为计算机系统的核心,其进程管理和调度策略对于系统性能和用户体验至关重要。本文将通过直观的代码示例和浅显易懂的语言,带领读者了解操作系统如何有效管理进程以及常见的进程调度算法。我们将从进程的基本概念出发,逐步深入到进程状态、进程控制块(PCB)的作用,最后探讨不同的调度算法及其对系统性能的影响。无论您是初学者还是有一定基础的开发者,都能从中获得有价值的信息。
|
2月前
|
负载均衡 算法 调度
深入理解操作系统:进程管理与调度
在数字世界的心脏,操作系统扮演着至关重要的角色。它如同一位精明的指挥家,协调着硬件资源和软件需求之间的和谐乐章。本文将带你走进操作系统的核心,探索进程管理的艺术和调度策略的智慧。你将了解到进程是如何创建、执行和消亡的,以及操作系统如何巧妙地决定哪个进程应该在何时获得CPU的青睐。让我们一起揭开操作系统神秘的面纱,发现那些隐藏在日常计算背后的精妙机制。
|
2月前
|
API 数据处理 C语言
探索操作系统:从基础概念到实际应用
本文将带你进入操作系统的世界,了解它的基本概念、发展历程和应用场景。我们将一起探讨操作系统的核心功能、体系结构以及它在计算机系统中的重要作用。同时,我们还将介绍一些常见的操作系统类型,并分析它们的特点。最后,通过一个简单的代码示例,展示操作系统在实际应用中的重要作用。让我们一起揭开操作系统的神秘面纱,探索它的奥秘吧!
|
2月前
|
调度 开发者
深入理解操作系统之进程调度
在计算机科学领域,操作系统是核心的一环,它管理着计算机硬件资源,并提供接口供上层软件运行。本文将通过深入浅出的方式,探讨操作系统中至关重要的一个概念——进程调度。我们将从基础理论出发,逐步展开讲解进程调度的原理和实现,并配以实际代码示例,旨在帮助读者更好地理解和掌握这一主题。文章不仅适合初学者建立基础,也适合有一定基础的开发者深化理解。
|
2月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
72 0
Vanilla OS:下一代安全 Linux 发行版
|
2天前
|
弹性计算 自然语言处理 Ubuntu
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot是由阿里云推出的操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行等功能,极大提升了Linux系统的使用效率。用户只需通过简单的命令或自然语言描述问题,OS Copilot即可快速提供解决方案并执行相应操作。例如,查询磁盘使用量等常见任务变得轻松快捷。此外,它还支持从文件读取复杂任务定义,进一步简化了操作流程。虽然在某些模式下可能存在小问题,但总体上大大节省了学习和操作时间,提高了工作效率。
25 2
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
86 4
|
2月前
|
人工智能 安全 Linux