浅析Linux的就绪队列

发布时间:2026/10/8 7:13:11

浅析Linux的就绪队列 摘要就绪态是 Linux 的一种进程的基本状态所有处于就绪态的进程只需等待CPU的分配即可立即执行。而就绪队列就是操作系统把所有处于就绪态的进程放在一起的容器是调度器选任务的数据基础。本文从进程的就绪状态切入浅析 Linux 就绪队列的 per-CPU 组织方式、任务在队列内部的存储结构以及调度器如何从中挑选下一个运行任务来为理解 Linux 进程调度提供一个清晰的切入点。关键词26SWOS就绪队列runqueue进程调度一、引言进程的五种基本状态进程主要有五种基本状态按照生命周期的顺序而言最初被系统创建时处于创建态在创建完成并分配好资源后进入就绪态等分配到CPU后被调度进程从而进入执行态而此时的执行态有三个去向一是等时间片完后又回到就绪态二是在I/O的请求下进入阻塞态直到I/O请求完成进入就绪态三是被释放进入终止态。二、就绪队列的组织方式就绪队列的组织形式从最初的所有 CPU 选任务都要抢同一把 runqueue_lock 改成了 per-CPU runqueue每个 CPU 拥有自己独立的一份就绪队列CPU 就在自己这份队列里进行分配互不干扰从根本上消除了跨核的全局锁竞争。这是 Linux 调度器能撑住几十上百核的关键前提。三、任务在队列内部的存储结构每份per-CPU 就绪队列都是用 struct rq 统一描述的它就是某个 CPU 上所有可运行任务的总入口。不过队列里的任务并不是平行的而是按调度类分层连接的优先级从上到下依次是 stop、deadline、rt、fair、idle。每类都各自挂着一个子队列deadline挂在 dl_rq上rt 挂在 rt_rq上普通进程所在的fair挂在 cfs_rq上rq-nr_running 把各子队列的就绪任务数加在一起调度器看一眼就能知道队列是不是空的。四、调度器如何选取下一个任务每次进行调度时核心函数__schedule都会调用 pick_next_task按照stop → deadline → rt → fair → idle的顺序尝试选取任务。选中的任务从就绪队列中移出成为 rq-curr 并切换上下文运行被抢占的旧任务则重新入队等下一次调度。“就绪队列”与“调度器”就这样互相配合就绪队列是存储进程的容器而调度器负责按规定的顺序取出容器里的进程。五、总结就绪队列就是进程得到CPU分配前的一种基本状态它以per-CPU runqueue的形式组织在一起并被调度器按照调度类的顺序进行调度。理解就绪队列才能更好理解 Linux 进程调度。
延伸阅读

更多相关文章

2026/10/8 7:13:11

微软确认 GPT‑6 使用 Looped Transformers

⭐ 1. 微软确认 GPT‑6 使用 Looped Transformers微软在公开网页上确认 GPT‑6 系列采用 Looped Transformers,验证了此前 The Information 的报道GPT‑6.1 Sol 使用 两次推理循环(passes),并提到“而不是三次”微软随后 迅速删除…

2026/10/8 7:13:11

使用 psql 强制 SSL 连接 PostgreSQL:sslmode=require 完整实战指南

文档教程知识库 【免费下载链接】til :memo: Today I Learned 项目地址: https://gitcode.com/gh_mirrors/ti/til 点击查看 免费下载 导读 当 PostgreSQL 服务器配置了强制 SSL/TLS 加密策略时,直接用 psql 连接会立即被服务器拒绝并报错。本文基于 ti…

2026/10/8 7:58:15

context-mode上下文治理:多场景模式设计与工程落地实践

1. 从"context-mode"说起:一个被低估的工程概念第一次看到"context-mode"这个词,很多人会下意识地把它归到某个具体框架的API文档里,觉得无非又是一个配置项。但如果你在工程一线待过几年,尤其是在做系统架构…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/7 8:18:33

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 0:02:17

自然数立方等于连续奇数之和:从证明到编程验证

十几年来我一直游走在数学科普和编程教学这两块内容之间,对“看起来像魔法、拆开全是数学”的结论总是格外敏感。最近翻资料时又撞见一句话:任何一个自然数 m 的立方,都可以写成 m 个连续奇数之和。2 的立方等于 3 加 5,3 的立方等…

2026/10/8 0:02:17

C#上位机SSH连接实战:用SSH.NET补齐超时、批量与密钥认证

简介:这是一份基于 C# 开发的 SSH 连接功能半成品工程,原本作为另一个主项目的子功能模块,现独立打包分享。工程采用 WinForms 界面,包含源码、解决方案、安装部署工程、NuGet 依赖包及说明文档,适合正在做远程连接、网…

2026/10/8 0:02:17

Java SpringBoot一体化智能售后系统设计与实现全解析

毕业设计年年做,Java Web 方向的题目翻来覆去就那么几个,但“一体化智能售后系统”这个题,每次看到我都觉得值得认真聊一聊。它不是一个简单 curd 堆出来的管理系统,而是把客户、工单、派单、处理、回访、统计整条链路串起来的一套…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑