Show page source of internal24-5-プロセスを構成する資源 #25269

[[PageNavi(internal24-navi)]]

{{{ comment
h2w-title:プロセスを構成する資源
}}}
 

== プロセスを構成する資源 == #SECTION02111000000000000000

以下にこのあとの説明で使用するtask_struct構造体の主なメンバを示す。

主なメンバ
{{{
     struct task_struct {
          struct files_struct* files; //ファイルディスクリプタ
          struct signal_struct* sig;  //シグナルハンドラ
          struct mm_struct* mm;       //メモリ管理モジュール

          long stat                   //プロセス状態
          struct list_head runlist;   //RUNキュー接続用
          long  priority;             //ベースプライオリティ
          long  counter;              //変動プライオリティ

          char comm[];                //コマンド名
          struct thread_struct tss;   //コンテキストセーブ域
     };
}}}

forkにより新しいプロセスが生まれた場合、全ての資源のコピーを行う。ただし、空間メモリはCopy-On-Writeとし、次に書き込みアクセスがあるときまでコピー処理を送らせている。ファイルに関してはファイルディスクリプタのコピーのみを行いfile構造体は共有する。この仕組みのお蔭でshellから起動されたコマンドが何も考えずに、そのまま標準入出力を利用したり、またパイプやリダイレクションを利用したりすることができる。

 [[Embed(internal24-images:img2.gif)]]
 

----

''(NIS)HirokazuTakahashi [[BR]]2000年12月09日 (土) 23時55分06秒 JST''1

[[PageNavi(internal24-navi)]]