親プロセスとは? わかりやすく解説

子プロセス

(親プロセス から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/01/12 15:45 UTC 版)

子プロセスとは、コンピュータプロセス管理に関わる用語で、ほかのプロセスから呼び出されたプロセスのことを言う。チャイルドプロセス[1]とも言い、呼出元のプロセスのことを親プロセスあるいはペアレントプロセス[2]と呼ぶ。

マルチタスクオペレーティングシステムに関してはプロセス管理の記事に詳しく述べられている。

MS-DOSPC DOS でも子プロセスと呼ばれるものが実装されていた。本稿ではこれについても述べる。

MS-DOS の子プロセス

MS-DOSアプリケーションソフトウェアの中には、それ自身をメモリの中に読み込んだまま、他のアプリケーションを起動する機能を有しているものがあった。(主に MS-DOSのシェルである COMMAND.COM

この場合、ペアレントプロセスとなる呼出元のアプリケーションはメモリ上に存在しているが実行は完全に停止している。子プロセスとして起動したCOMMAND.COM は、MS-DOS起動時に読み込まれたシェルとしての COMMAND.COM とは別のメモリ空間に存在し、親プロセスへは EXIT コマンドで復帰することが出来た。主な用途としては、ワードプロセッサや表計算ソフトなどではフロッピーディスクのフォーマットを行うため、またテキストエディタなどでは前述のディスクフォーマットのためのほかに、アセンブラコンパイラなどの起動に使用された。

MS-DOSのアプリケーションや外部コマンドもシェルとしての COMMAND.COM の子プロセスとみなすことが出来る。

UNIX系システム

子プロセス

子プロセスは、他のプロセス(親プロセス)によって生成されたプロセスである。

子プロセスは親プロセスから多くの属性(例えばオープン中ファイル)を継承する。UNIX では、子プロセスは(forkを使って)親のコピーとして生成される。子プロセスはその後(execを使って)指定されたプログラムで自分自身をオーバーレイすることができる。

プロセスは多くの子プロセスを生成できるが、あるプロセスから見た親プロセスはひとつである。ただし、最初に生成されるプロセスには親がいない。UNIX ではこの最初のプロセスが init であり、カーネルブート直後に起動し、システムシャットダウン時まで決して終了しない。

親プロセス

親プロセスは、1つ以上の子プロセスを生成したプロセスである。

UNIX では、0番のプロセス(スワッパー)以外は他のプロセスが fork システムコールで生成したものである。fork を呼び出したプロセスが、それによって生成されたプロセスから見た親プロセスである。プロセスにはひとつの親プロセスがあるが、子プロセスは多数存在することもある。

カーネルは、プロセスをプロセス識別子 (PID)で識別する。0番のプロセスはシステムブート時に生成される特別なプロセスで、子プロセス(1番のプロセス)を生成した後はスワッパー・プロセスとなる(SolarisSVR4.2MP ではマルチスレッド化され、カーネル内の各種定期処理をこなす)。1番のプロセスは init であり、システム内の他のプロセスの先祖になる。

孤児プロセス

孤児プロセス[3]は、親プロセスが先に終了してしまったプロセスを意味する。

UNIX 系オペレーティングシステムでは、孤児プロセスは即座に init プロセスを里親とされる。この操作をリペアレンティング[4](再育成)と呼び、自動的に行われる。技術的には init プロセスが親となっても、本来の親プロセスが既に終了していることから「孤児プロセス」と呼ばれ続ける。

遠隔手続き呼出し (RPC) において、クライアントが要求をサーバに送った後でクラッシュしたとき、サーバ側に残ってしまったプロセスを孤児プロセスと呼ぶ。この孤児プロセスはサーバの資源を無駄に占め、場合によってはサーバ全体の不調の原因となる。この対処方法として以下のものがある。

  1. 根絶[5]が最も一般的な手法。この場合孤児プロセスは強制終了させられる。
  2. 再生[6]はクライアントがリブートしたときにタイムスタンプをサーバに送信し、それを受けて孤児プロセスを終了する。
  3. 期限切れ[7]はタイマーを設定してその間に処理が完了しない場合に孤児プロセスを終了する。クライアントが応答しない以外の原因で処理が完了しないときは、タイマーを延長する。

脚注

  1. ^ : child process
  2. ^ : parent process
  3. ^ : orphan process
  4. ^ : re-parenting
  5. ^ : extermination
  6. ^ : reincarnation
  7. ^ : expiration



親プロセス

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2015/11/21 23:37 UTC 版)

子プロセス」の記事における「親プロセス」の解説

親プロセスは、1つ上の子プロセス生成したプロセスである。 UNIX では、0番のプロセス(スワッパー)以外は他のプロセスfork システムコール生成したのであるfork呼び出したプロセスが、それによって生成されプロセスから見た親プロセスである。プロセスにはひとつの親プロセスがあるが、子プロセス多数存在することもある。 カーネルは、プロセスプロセス識別子 (PID)で識別する。0番のプロセスはシステムブート時に生成される特別なプロセスで、子プロセス(1番のプロセス)を生成した後はスワッパー・プロセスとなる(SolarisSVR4.2MP ではマルチスレッド化されカーネル内各種定期処理をこなす)。1番のプロセスinit であり、システム内の他のプロセス先祖になる。

※この「親プロセス」の解説は、「子プロセス」の解説の一部です。
「親プロセス」を含む「子プロセス」の記事については、「子プロセス」の概要を参照ください。

ウィキペディア小見出し辞書の「親プロセス」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「親プロセス」の関連用語

親プロセスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



親プロセスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの子プロセス (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの子プロセス (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS