news 2026/10/1 18:49:44

linux内核 - 进程管理和调度(基于6.19内核)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux内核 - 进程管理和调度(基于6.19内核)

一:概述

所有现代操作系统都能够同时运行多个进程——至少在用户看来是这样。如果系统只有一个处理器,那么在任意时刻实际上只能运行一个程序。在多处理器系统中,真正能够并行运行的进程数量取决于物理 CPU 的数量。

内核和处理器通过以极快的速度在不同正在运行的应用程序之间反复切换,制造出一种多任务并行执行的假象。由于切换间隔非常短,用户几乎察觉不到中间这些极其短暂的停顿,从而感觉计算机仿佛在同时处理多项任务。

这种系统管理方式会引出一系列内核必须解决的问题,其中最重要的包括以下几点:一是应用程序之间必须相互隔离,除非明确允许相互干扰。例如,应用程序 A 中的错误不应传播到应用程序 B。由于 Linux 是一个多用户系统,还必须确保程序不能读取或修改其他程序的内存内容——否则,访问其他用户的私有数据将变得极其容易。二是CPU 时间必须尽可能公平地在各个应用程序之间进行分配,同时还要考虑到某些程序比其他程序更为重要。

内核必须决定为每个进程分配多少时间,以及何时切换到下一个进程。这就引出了一个问题:究竟哪个进程应该成为“下一个”?此类决策与平台无关。 当内核从进程 A 切换到进程 B 时,它必须确保 B 的执行环境与上次撤出处理器资源时完全相同。例如,处理器寄存器的内容以及虚拟地址空间的结构必须保持一致。这两项任务都由内核的一个子系统——调度器(scheduler)负责。CPU 时间的分配方式由调度策略(scheduler policy)决定。

二:进程优先级

并非所有进程的重要性都是相同的。除了大多数读者熟悉的进程优先级之外,还有不同的关键性类别(criticality classes)以满足不同的需求。粗略地说,进程可以分为实时进程和非实时进程两类。

硬实时(hard real-time)进程受到严格的时间限制,在规定的时间内必须完成特定任务。举例来说,如果计算机处理的是飞机的飞行控制指令,那么这些指令必须尽快转发——在保证的时间范围内。例如,如果飞机正在进近着陆,飞行员想拉起机头,计算机如果晚了几秒才转发指令就毫无意义。这时,飞机很可能已经“头朝下”撞到地面。硬实时进程的关键特征是,它们必须在保证的时间范围内被处理。需要注意的是,这并不意味着时间范围必须特别短,而是系统必须保证在任何情况下都不会超过这个时间限制,即使是在不太可能出现的或恶劣的条件下。

Linux 不支持硬实时处理,至少在原生(vanilla)内核中不支持。不过,有一些经过修改的版本,如 RTLinux、Xenomai 或 RTAI 提供了这一功能。在这些方案中,Linux 内核作为一个独立的“进程”运行,处理不太重要的软件,而实时任务则在内核之外完成。只有在没有实时关键操作执行时,内核才会运行。目前主线Linux支持配置为实时内核(PREEMPT_RT)

由于 Linux 被优化用于吞吐量(throughput),并尽可能快速地处理常见情况,因此要实现严格的响应时间保证非常困难。然而,近年来在减少整体内核延迟(即从发出请求到请求被完成之间的时间)方面已经取得了不少进展。这些努力包括:可抢占内核(preemptible kernel)机制、实时互斥锁(real-time mutexes),以及全新完全公平调度器(completely fair scheduler),中断和内核内部优化等。

未完待续。。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 18:17:22

IDEA 2025.3 版本安装指南(完整图文教程)

一、卸载旧版 IDEA(可选) 若电脑已安装旧版 IDEA,建议彻底卸载以避免版本冲突;未安装旧版可直接跳过,进入“获取安装包”环节。具体操作步骤如下: 启动卸载程序,勾选【删除缓存和本地历史】选项…

作者头像 李华
网站建设 2026/10/1 14:38:04

【性能测试】8_JMeter _JMeter跨线程组关联

文章目录一、跨线程组关联1.1 说明1.2 实现原理二、Jmeter属性的配置方法三、场景四、操作方法一、跨线程组关联 当有依赖关系的两个请求(一个请求的入参是另一个请求返回的数据) , 放入到不同的线程组中时, 就不能使用提取器保存…

作者头像 李华
网站建设 2026/10/1 13:38:15

CVE-2025-68645 Zimbra Collaboration Suite 本地文件包含漏洞分析

🔥 CVE-2025-68645: Zimbra Collaboration Suite — 本地文件包含 (LFI) 漏洞分析 📖 项目概述 本项目详细解析了编号为 CVE-2025-68645 的安全漏洞。该漏洞存在于 Zimbra Collaboration Suite (ZCS) 中,是一个无需身份验证即可远程利用的本地…

作者头像 李华