プロセス識別子

プロセス識別子(プロセスしきべつし、プロセスID、PIDと略記)は、いくつかのオペレーティングシステムカーネル(Unix系やWindows)で使われている番号で、ある時点で存在するプロセスを一意に識別するために用いられる。優先順位を調整したり、終了させたり等、プロセス(群)を操作する様々な関数の引数として使う。

概要

Unix系OSでは、新たなプロセスは fork() システムコールで生成される。そのときに生成された子プロセスのPIDがシステムコールを行った親プロセスに戻り値として返される。すると親プロセスは例えば、子プロセスの終了を waitpid()英語版 関数で待ち合わせたり、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に戻されて、再び増加していく。macOSHP-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 にある。

pidファイル

長時間動作し続けるプロセス(例えば MySQL デーモンなど)は、自身のPIDをファイルに書いておき、他のプロセスが参照できるようにしていることがある。

脚注

参考文献

この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。

関連項目

Tags:

プロセス識別子 概要プロセス識別子 pidファイルプロセス識別子 脚注プロセス識別子 参考文献プロセス識別子 関連項目プロセス識別子KillMicrosoft WindowsUnix系オペレーティングシステムカーネルプロセス

🔥 Trending searches on Wiki 日本語:

アフリカ文学ティモンディ令和ロマン清少納言坂井泉水篠井英介魔法使いの夜おのののか木南晴夏若槻千夏緒方恵美百田尚樹シティーハンター松井秀喜長嶋茂雄森永ヒ素ミルク中毒事件寬仁親王妃信子マフィア梶田中条あやみ潘めぐみポープ・ウィリアム愛新覚羅氏竹内涼真木村拓哉冴羽獠SEVENTEEN (音楽グループ)ADOR押尾学安倍晋三藤岡康太NiziUU-23サッカー日本代表内村光良水上恒司ウィル・アイアトン常陸宮正仁親王シティーハンター (アニメ)AespaAgatha徳仁結城耕造新世紀エヴァンゲリオン綾瀬はるか神田正輝ファイルーズあいChatGPT黒木啓司高山みなみク・ハラモンスター・ヴァース木戸大聖浜辺美波トロント・ブルージェイズ関根麻里羽仁未央中華人民共和国菊池雄星嵐 (グループ)ダルビッシュ有藤井サチデーブ・ロバーツ (外野手)小西克幸菅田将暉ジョジョの奇妙な冒険近藤千尋松本まりかハイキュー!!チェルノブイリ原子力発電所事故YOSHIKI佐々木毅山本由伸ツツジ新垣結衣日の丸飛行隊フェラチオ力道山村重杏奈フォールアウト (ドラマ)🡆 More