このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

procディレクトリ

  • このディレクトリは主にOSがシステムやプロセスに関する情報を提供するために用意しているインタフェースである。
    • つまり、OSは統計情報をカーネルの外に見せている。
  • プロセスが増えれば、ディレクトリも増える。
  • 物理的なディスクには存在しない。
    • メモリ上の仮想的なファイルシステムである。
  • lsコマンドで表示される数字とプロセスIDは対応する。
  • ディレクトリ内には、各種プロセスの状態を示すデータがある。
    • cmdlineを(catコマンドなどで)表示すれば、そのプロセスのコマンドラインを確認できる。
    • envionを表示すれば、そのプロセスの環境変数を確認できる。
    • statmを表示すれば、そのプロセスのメモリの概要がわかる。
      • 先頭から、サイズ、メモリに存在するサイズ、共有されているサイズ、テキストのサイズ、データ・スタックのサイズ、変更済み(未書き出し)のサイズがページ数単位で表示される。
    • statusを表示すれば、そのプロセスの各種状態を確認できる。
      • 実行・スリープなど、仮想メモリの各種サイズなど
    • mapsを表示すれば、プロセス内のメモリの内訳を確認できる。
    • プロセスの下のtaskには、スレッドに関する情報がある。
  • 自分のCPU使用量などがわからない多くのアプリケーションや一部のDBMSの場合は、プロセスファイルシステムに関するコマンドを用いれば、プロセスの情報を確認できる。
    • さらに、/procディレクトリ内を自力で分析することにより、コマンドが提供していない細かい分析さえも可能となる。
      • 例えば、一部のOSのpsコマンドは秒単位でしかCPU使用量を表示しないが、/procディレクトリ内では10ミリ秒単位で表示されているので、細かい分析が行える(精度の高い自作のpsコマンドを作るなど)。

例:psコマンドは、このディレクトリからプロセスの情報を表示する。 ◇

例:デバッガは、このディレクトリからプロセスの情報を表示する。 ◇

参考文献

  • 『絵で見てわかるOS/ネットワーク/ストレージ』