任务列表的大小是多少?

任务列表的大小是多少?

在阅读 Robert Love 的《Linux 内核开发》时,我经历了以下几行:

内核将进程列表存储在称为任务列表的循环双向链表中。

我想知道这个任务列表的大小是多少。

答案1

任务列表存储在循环双向链表中;每个节点是一个struct task_struct。列表结构是专门在该tasks字段中的。内存中没有单独的对象来表示列表:每个节点都包含指向上一个和下一个节点(some_task->tasks.prevsome_task->tasks.next)的指针。

该数据结构没有固有的最大大小。就任务数量而言,限制因素要么是任务结构的可用内存和任务消耗的其他资源,要么是进程(更准确地说,任务组)标识符的数量,这些标识符被限制为 15 位默认。

阅读第 5 章Linux内核开发, 或者第11章Linux 设备驱动程序 ,了解有关 Linux 内核中此数据结构的更多信息。

相关内容