
Robert Loveの「Linux Kernel Development」を読んでいる間、私は次のようなものを見つけました。
カーネルは、タスクリストと呼ばれる循環二重接続リストにプロセスリストを保存します。
このタスクリストのサイズがどれくらいになるかを知りたいです。
答え1
タスクリストは循環二重接続リストに保存されます。struct task_struct
。リスト構造はこのtasks
分野に特化しています。メモリにはリストを表す別個のオブジェクトはありません。各ノードには、前と次のノード(some_task->tasks.prev
およびsome_task->tasks.next
)へのポインタが含まれています。
このデータ構造には固有の最大サイズはありません。ジョブ数に関して、制限要素は、ジョブ構造の使用可能なメモリーと、ジョブによって消費されるその他のリソース、またはデフォルトで15ビットに制限されているプロセス(より正確にはワークグループ)識別子の数です。 。
第5章を読んでくださいLinuxカーネルの開発または第11章~のLinuxデバイスドライバ 、Linuxカーネルのこのデータ構造の詳細をご覧ください。