Linux 系统 CPU 调度机制与可视化指南
1. 学习目标与背景
探索 Linux 系统中 CPU 调度的关键知识,不仅对内核和驱动开发者意义重大,还能提升系统架构设计能力。我们将先了解重要背景知识,接着借助工具可视化控制流,最后深入研究 CPU 调度的内部机制。这涉及到像内核可调度实体(KSE)、POSIX 调度策略等概念,以及如何通过 perf 等工具来观察和分析调度过程。
2. 技术要求
为了更好地进行学习和实践,需要准备好运行 Ubuntu 18.04 LTS 或更高稳定版本的虚拟机,并安装所需的所有软件包。同时,建议克隆相关代码仓库,以便进行实践操作。仓库地址为:https://github.com/PacktPublishing/Linux-Kernel-Programming 。
3. CPU 调度内部机制 - 基础背景
3.1 Linux 中的 KSE
在 Linux 系统里,调度的基本单位是线程,而非进程。每个线程都有一个任务结构( struct task_struct ),以及用户模式和内核模式的栈。例如,假设有 1 个 CPU 核心、10 个用户空间进程(每个进程包含 3 个线程)和 5 个内核线程,那么总共就有 35 个线程参与 CPU 资源的竞争。
3.2 POSIX 调度策略
Linux 内核实现了多种调度策略,其中 POSIX 标准规定了至少三种调度策略,Linux 在此基础上进行了扩展。以下是 POSIX 调度策略的简要总结:
| 调度策略 | 关键点 | 优先
超级会员免费看
订阅专栏 解锁全文
1123

被折叠的 条评论
为什么被折叠?



