プロセスの資源と属性

システム・プログラム

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/coins/syspro-2004/2004-04-12 /process-resource-attr.html
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/
http://www.is.tsukuba.ac.jp/~yas/index-j.html

■プロセスの観察

◆プロセスの属性

ps(process) コマンドを実行すると、プロセスの一覧を表示する。 psコマンドの表示の例を示す。
----------------------------------------------------------------------
% ps [←]
  PID TTY          TIME CMD
21631 pts/5    00:00:00 tcsh
21714 pts/5    00:00:00 emacs
21718 pts/5    00:00:00 cat
21719 pts/5    00:00:00 ps
% []
----------------------------------------------------------------------
psコマンドの実行結果は1行が1プロセスである。 左から、以下のような意味がある。
PID (プロセス識別子)
プロセスを区別するための整数。 多くのシステムで16ビットで、 0〜65535、または、0〜32767の範囲をとる。
TTY (端末名)
プロセスがどの端末と結びつけられているかを示している。 端末 pts/5/dev/pts/5の意味。
TIME
CPU時間 (CPUがそのプロセスを実行するために費やした時間)。
COMMAND
そのプロセスを起動した時のコマンド。

----------------------------------------------------------------------
% ls -l /dev/pts/5 [←]
crw--w----    1 yas      tty      136,   5 Apr 27 23:34 /dev/pts/5
% tty [←]
/dev/pts/5
% []
----------------------------------------------------------------------

◆プロセスと資源

プロセスにはメモリやCPUなどの資源が割り当てられる。 これはpsコマンドに-lオプションや -uをつけると表示される。
----------------------------------------------------------------------
% ps -l [←]
  F S   UID   PID  PPID  C PRI  NI ADDR    SZ WCHAN  TTY          TIME CMD
000 S  1013 21631 21629  0  75   0    -   980 rt_sig pts/5    00:00:00 tcsh
000 T  1013 21718 21631  0  75   0    -   347 do_sig pts/5    00:00:00 cat
000 T  1013 21726 21631  1  75   0    -  2221 do_sig pts/5    00:00:00 emacs
000 R  1013 21733 21631  0  76   0    -   833 -      pts/5    00:00:00 ps
% ps -u [←]
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
yas      21631  0.0  0.7  3920 1872 pts/5    S    23:19   0:00 -csh
yas      21718  0.0  0.1  1388  356 pts/5    T    23:33   0:00 cat
yas      21726  1.2  1.7  8884 4532 pts/5    T    23:35   0:00 emacs -nw
yas      21735  0.0  0.3  2844  892 pts/5    R    23:36   0:00 ps -u
% []
----------------------------------------------------------------------
TIME は過去に利用した CPU 時間の割合、 SZ は、プロセスが確保しているメモリ、 RSSは、そのうちメインメモリに入っている部分である。

S は、 プロセスの 状態 (STATe) であり、次のようなものがある。

R (runnable)
実行可能な状態。CPUが空いていれば実行できる。
D (Disk)
ディスク入出力を行ない、その完了を待っている状態。
S (Sleep)
キーボードや他のプロセスからの入力を待っている状態。
Z (Zombie)
既に終了していて、終了処理の完了を待っている。
T (Traced)
一時的に停止しているか、デバッグの対象になっている。
Linux には、そのほかに W がある。BSD系には、 S の他に、I (Idle) (20秒以上sleep している) がある。

◆プロセスの親子関係

Unix では、後で説明する fork() システムコールを 発行すると、新しくプロセスが作られる。 (Unix では、これ以外の方法ではプロセスは作られない。) この時、「もとのプロセス」の「親プロセス」という。 プロセスの親プロセスのプロセス識別子は、psコマンドに「-l」オプションを つけるとPPIDのところに表示されている。

■プロセスの資源と属性

プロセスには、 図?のような属性と資源がある。

図? プロセスの資源と構成要素

図2 プロセスの資源と属性

◆資源

プロセスは、資源を割当てる対象である。逆にいえば 割当てられた資源がまとまったプロセスを構成するといえる。
メモリ(memory)
プロセスの重要な資源はメモリ(主記憶、main memory, main storage) である。 メモリのうち主記憶に入っている部分を レジデント・セット(resident set) という。
スワップ領域
スワップ領域とは、主記憶(main memory)が不足した時に、プロセスのメモリ・ イメージを格納するための、二次記憶(secondary storage)上の領域である。 二次記憶としては、ハードディスクがよくつかわれる。
レジスタ・セット
プロセスが実行されている時はCPUのレジスタに格納されている データは、プロセスが待ち状態や待機状態の時は、 メモリに保存される。
ファイル記述子の表
プロセスごとにファイル記述子の表(開いたファイルの表)がある。通常、0 番目がキーボード、1番目と2番目がディスプレイを指している。
制御端末
プロセスごとにキーボードからのシグナルを受け取る 端末が一つ定められてる。この端末を 制御端末 とう。
カレント・ワーキング・ディレクトリ
相対パス名を解釈する時に使う出発点となるディレクトリである。 cd コマンド、chdirシステムコールで変更できる。
ルート・ディレクトリ
プロセス毎にルート・ディレクトリを設定することができる。 匿名ftp(anonymous ftp)など、 特に高いセキュリティが求められる時に プロセスがアクセスできる ディレクトリの範囲を制限するために使われる。 変更するには、chrootシステムコールを使う。

◆属性

UNIXのプロセスが持っている重要な属性には、 次の様なものがある。
PID(プロセス識別子)
プロセスを区別するための16ビットの整数。0〜65535、または、0〜32767の範囲。
PPID
親プロセスのプロセス識別子
PGID(Process Group ID)
プロセスにはプロセス・グループ識別子(PGID)と呼ばれる属性がある。プロセ ス・グループ識別子を指定してシグナルを送る機能(シグナルのマルチキャス ト機能)を使うと、同じプロセス・グループIDを持つプロセスにまとめてシグ ナルを送ることができる。これはプロセスの一時停止、再開のためのジョブ制 御で使われる。
UID(User ID)
ユーザ(user, 利用者)を区別するための整数。 多くのシステムで16ビット。
GID(group ID)
(複数のユーザが所属する)グループを区別するための整数。 多くのシステムで16ビット。
マスク(mask)
新たにファイルを作成する時のモードを決定する数。多くのシステムで16ビット。
状態
上述した R,D,S,Z,Tの区別。
優先順位(priority)
優先順位は、CPU資源を割当てる時に使われる。 優先順位は0から127の数で表わされ、 数字が小さい方が優先順位が高いことを意味する。
制限資源量
計算機上のメモリ資源や同時に開けるファイルの数は有限である。 この有限の資源を有効に分配するために、 プロセスごとに使える資源量の上限が決められている。 これを制限資源量とう。 プロセスは制限資源量を越えて資源を使用することはできない。 メモリの制限資源量を越えた場合はメモリ割り当てに失敗し、 ファイルを開く場合は、ファイルの開くことに失敗する。 ただし、CPU時間が制限値に達した場合は、 プロセスは強制終了させられる。 制限できる資源には次のようなものがある ( 制限できる資源の種類はかなりシステムに依存する) ()中はlimitコマンドで使うキーワード。 tcsh,csh では limitコマンドで、制限資源量を設定できる。制限を解除する には、unlimitコマンドで制限を解除することができる。bash では、ulimit コマンドがある。
その他
その他の属性としては、 シグナル制御関連の属性 や 統計情報 がある

Last updated: 2004/04/11 21:55:36
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>