linux - `on_rq` 中 `task_struct` 字段的用途是什么?

标签 linux linux-kernel scheduling

我正在阅读 Linux 内核的 try_to_wake_up() 函数的源代码。这个函数做了很多事情,包括:return p->on_rq == TASK_ON_RQ_QUEUED

那么,task_structon_rq 字段的实际用途是什么。

顺便说一句,是否有一些手册或阅读 Material 来介绍task_struct中的所有字段?我认为充分理解这些领域将有助于理清Linux的进程调度机制。

最佳答案

Linux 支持系统中每个 CPU 的独立运行队列。 Task 或 task_struct 可能在运行队列中。还有 task_struct 可以迁移 beatween cpu。 p->on_rq 表示task_struct 正在两个运行队列之间迁移。 如果 p->on_rq == TASK_ON_RQ_MIGRATING 任务正在迁移并且 其他执行此任务的调度程序无法工作,应该忙等待。 之后设置为 TASK_ON_RQ_QUEUED。

关于linux - `on_rq` 中 `task_struct` 字段的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31008738/

相关文章:

linux - crontab 如何在控制台中打印消息?

c# - 如何存储和查询计划数据?

linux - 在 Linux 堆栈中,以太网 header 在何处以及如何添加/删除?

linux - 在 crontab 中安排 jcl 程序时没有得到输出

php - 在 Hostgator 上将 php 5.4 更改为 5.5

linux - ./configure--with-boost 没有那个文件或目录

android - 物理地址、设备地址和虚拟地址的区别

linux - 索尼设备的内核配置与源代码不同。为什么?

linux - Rsync 复制未更改的文件(USB 驱动器、FAT32)

linux - 并行 gnu 命令与管道结合使用