【发布时间】:2016-12-26 19:30:15
【问题描述】:
“理解 Linux Kernel 第 3 版”一书的这一部分解释说,内核引入了 4 个哈希表,而不是搜索进程列表来查找 PID,每个哈希表对应一种 PID。
据我了解,表的每个元素都是 PID 的哈希值。但这如何使搜索变得容易?例如,给定一个 PID,是否存在 4 个哈希表,因为在该 PID 类型的哈希中搜索而不是在所有 PID 的 lit 中搜索更快?另外,为什么散列有帮助?搜索哈希不是比搜索简单数字更难吗?
那么,这 4 个表之一中的条目到底是什么?它们是进程描述符吗?我把它们理解为它。并且在每个进程描述符中,都有一个结构链接到其他处于相同状态的相似进程,例如,处于同一组和相同状态的进程。
是这个吗?
【问题讨论】:
-
散列比顺序搜索更快,因为它具有恒定时间(或接近恒定时间)查找而不是线性时间。
-
@e0k 怎么样?在表中搜索哈希与在表中搜索数字不一样吗?
-
那是一本经典的书,但请记住它的年代久远(内核 v2.6)。
-
@e0k 是的,但我找不到有关最新内核的任何信息。你知道一个吗?
标签: c linux hash linux-kernel