2011-02-10 24 views
0

process control blockprocess descriptorの正確な違いは何ですか?プロセス制御ブロックとプロセス記述子の比較

私はLinuxのカーネルについて読んでいました。実際のプロセス記述子テーブルへのポインタを含むthread_info構造体があると書かれていました。 thread_infoがカーネルスタックの真上/真下にあると書かれていました。だから間違いなくthread_infoがメインメモリにあります。しかし、実際のプロセス記述子はどうですか?task_struct?それはどこにありますか?プロセスディスクリプタがメインメモリにある場合、実際の場所はどこですか?

答えて

3

thread_infotask_struct構造がtask_structよりアーキテクチャ固有のデータを保持thread_info有する糸に関する異なる情報を保持するちょうど2つの異なる構造です。情報をすべて同じ構造に保つのではなく、分割するほうが理にかなっています。 (同じ構造体に入れても構いませんが、2.4 Linuxカーネルはこれを行いました)

これらの構造体がどのように割り当てられるかは、使用しているアーキテクチャによって異なります。調べたい機能は、alloc_task_struct()alloc_thread_info()です。

1

カーネルでは、プロセス記述子はtask_structという構造体で、プロセスの属性と情報を記録します。プロセスに関するすべてのカーネル情報がそこにあります。

関連する問題