|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。
プロセス識別子(プロセスしきべつし、プロセスID、PIDと略記)は、いくつかのオペレーティングシステムカーネル(Unix系やWindows)で使われている番号で、ある時点で存在するプロセスを一意に識別するために用いられる。優先順位を調整したり、終了させたり等、プロセス(群)を操作する様々な関数の引数として使う。 == 概要 == Unix系OSでは、新たなプロセスは fork() システムコールで生成される。そのときに生成された子プロセスのPIDがシステムコールを行った親プロセスに戻り値として返される。すると親プロセスは例えば、子プロセスの終了を 関数で待ち合わせたり、kill() でプロセスを終了させたりする。Unix系OSでは、プロセス識別子 0 と 1 は特別なタスクを指している。プロセス識別子 0 は ''swapper'' または ''sched'' と呼ばれ、ページングを担当している。これは実はカーネルの一部であり、ユーザーモードのプロセスではない。プロセス識別子 1 は init プロセスで、主にシステムの立ち上げとシャットダウンを担当している。本来、プロセス識別子 1 は init のために予約されていたわけではなく、単にカーネルが最初に起動するプロセスだったためにこのPIDが init に付与されただけだった。最近のUnix系OSはカーネルの複数のコンポーネントをプロセスとして見せていることがある。その場合、PID 1 は init プロセス用に積極的に予約されていて、古いシステムとの互換性を保っている。カーネルスレッドをサポートするシステムでは、カーネルの複数のプロセスはスレッドとして識別され、プロセス識別子は0しか使用しないこともある。 Unix系OSでは、プロセス識別子はプロセスが生成される順に0から始めて値の小さいほうから付けていく。PIDの最大値はシステムによって異なる。最大値まで使ったとき、PID割り当ては例えば300に戻されて、再び増加していく。Mac OS X や HP-UX では巻き戻し時の開始番号は100となっている。そのとき、現存しているプロセスが使用中のPIDはスキップして二重に割り当てないようにする。この性質を利用してシステムに関する情報を抽出可能であり、このことが潜在的なセキュリティ上の脆弱性だと考える者もいる。そのため、セキュリティ強化を心がけた実装をする場合、PID割り当て方針を通常とは異なるものにすることもある。MPE/iX などのシステムでは、利用可能な最小のPIDを使用し(つまり、終了したプロセスのPIDを即座に再利用することがある)、メモリ上のプロセス情報のカーネルページ数を最小化する。 Microsoft Windows では、自身のプロセス識別子は GetCurrentProcessId() というAPIで取得し、他のプロセスのプロセス識別子は GetProcessId() というAPIで取得する。内部的にはプロセス識別子を ''client ID'' と呼び、''thread ID'' と同じ名前空間から割り当てられるので、両者は決してオーバーラップしない。いわゆるのプロセス識別子は0で、システムプロセスのプロセス識別子は4が割り当てられる。Unix系OSでは、自身のプロセス識別子は getpid() システムコールで得られ、シェルでは $$ という変数で得られる。親プロセスのプロセス識別子は getppid() システムコールで得られる。Linuxでは、プロセス識別子の最大値は擬似ファイル /proc/sys/kernel/pid_max にある。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「プロセス識別子」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Process identifier 」があります。 スポンサード リンク
|