Linuxの備忘録とか・・・(目次へ)Linuxの備忘録とか・・・(目次へ)プロセス親子関係のリスト各プロセスには親子/兄弟関係にあるプロセスのリストを有しています。それがsibling/childrenメンバーです。LINUX詳解にはプロセスの親子関係を以下のような感じの図表があって(P0がP1/P2/P3を作成し、P3がP4を作成します。list_headで有る必要がないのではと思っていました。子プロセスはchildrenをヘッダとするリストに、siblingを項目として繋げていくということです。従ってP1/P2は子プロセスを有していない故、children->prev/nextは自分自身を示しています。要はchildrenは繋がれる項目で、siblingは繋ぐ項目というところです。P4p->real_parentはP0に相当します。そのchildrenにlist_add_tailマクロで子プロセスのsiblingを繋いでいます。スレッドグループリーダなら(通常のプロセスはスレッドグループリーダです。)、新規にPIDネームスペースを作成したなら、そのネームスペースの元親としてこのプロセスをセットします。これは子プロセスの親が削除され、その親プロセスを繋ぎ換えなければならない時に参照されます。init_task.tasksにはPIDTYPE_PGID/PIDTYPE_SIDのタイプに関係なく、スレッドグループリーダのプロセスは全てリストされているということです。:}たぶんこんな感じになるのではと思います。(CLONE_THREDからCLONE_THREDを作成した場合は・・・。task_structを取得する場合、init_task.tasksを走査することで検索しません。ハッシュしているテーブルから検索します。ノースAdsense広告情報が設定されていません。