システム・プログラム
電子・情報工学系
新城 靖
<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コマンドで使うキーワード。
- CPU時間(秒) (cputime)
- 1つひとつのファイルの大きさ (filesize)
- データ・セグメントとスタック・セグメントの大きさ。(datasize, stacksize)
- レジデント・セットの大きさ (memoryuse (max memory size))
- core ファイルの大きさ (coredumpsize)
- 同時に生成できるプロセス数 (maxproc)
- 同時に開けるファイル数 (openfiles)
tcsh,csh では limitコマンドで、制限資源量を設定できる。制限を解除する
には、unlimitコマンドで制限を解除することができる。bash では、ulimit
コマンドがある。
- その他
-
その他の属性としては、
シグナル制御関連の属性
や
統計情報
がある
Last updated: 2004/04/11 21:55:36
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>