ブック「の理解Linuxカーネル第3版」のこのセクションでは、代わりにPIDを見つけるために、プロセスのリストを検索すると、カーネルは4つのハッシュテーブルが導入されていることを説明してPIDの各タイプごとに1つ。
私が理解しているように、テーブルの各要素はPIDのハッシュです。しかし、それはどのようにして簡単に検索できるのでしょうか?たとえば、PIDを指定すると、4つのハッシュテーブルが存在するのは、すべてのPIDを照らして検索するのではなく、そのPIDタイプのハッシュだけで検索するほうが速いからです。また、なぜハッシュが役立つのでしょうか?シンプルな番号を検索するよりも、ハッシュを探しにくいのですか?
したがって、これらの4つのテーブルのいずれかのエントリは正確には何ですか?彼らはプロセス記述子ですか?私は彼らをそのように理解した。また、各プロセス記述子には、同じ状態の他の同様のプロセス、つまり同じグループと同じ状態にあるプロセスにリンクする構造があります。
これはこれですか?
ハッシングが、順次検索よりも高速ですが(または一定の時間に近い)の代わりに線形時間のアップを見て。 – e0k
@ e0kどうやって?テーブル内の数字を検索するのと同じテーブル内のハッシュを検索していませんか? – Gatonito
これは古典的な本ですが、どれくらい古いかを覚えておいてください(カーネルv2.6)。 – e0k