08読書ノート:第1章UNIX基礎知識(7)


1.10時間値
        長い間、UNIXシステムでは2つの異なる時間値が使用されてきました.
                (1)カレンダー時間.この値は、1970年1月1日00:00:00以降の国際標準時間(UTC)の秒数積算値です.システム基本データ型time_tは、この時間値を保存するために使用される.
                (2)プロセス時間.これはCPU時間とも呼ばれ、プロセスで使用される中央プロセッサリソースを測定するために使用される.プロセス時間はクロックで計算されます.システム基本データ型clock_tは、この時間値を保存するために使用される.Sysconf関数は毎秒の滴下数を得ることができる.
        1つのプロセスの実行時間を測定する場合、UNIXシステムは3つのプロセス時間値を使用します.
                (1) システム時間.システム時間は壁時計時間とも呼ばれる.これは、システムで同時に実行されるプロセスの数に関係するプロセスが実行される時間の合計です.
                (2) ユーザCPU時間.ユーザCPU時間は、ユーザコマンドの実行に要する時間である.
                (3) システムCPU時間.システムCPU時間は、そのプロセスに対してカーネルプログラムが実行された時間である.
        timeコマンドを実行することで、任意のプロセスのクロック時間、ユーザ時間、およびシステム時間を取得できます.
$ time dir
01    02    03	  04	05    06    06_1.c  07	  08	Makefile
01.c  02.c  03.c  04.c	05.c  06_1  06.c    07.c  08.c

real	0m0.005s
user	0m0.002s
sys	0m0.004s

PS:
        システムの時間、ユーザーのCPUの時間、システムのCPUの時間は少しぼんやりして、そこでネット上で下を調べました:
                ソース:http://www.linuxsa.cn/unixlinux-environment-real-time-user-time-and-time.html
                real:ウォールタイム(wall clock time)、つまりプロセスの開始から終了までの実際の時間を指します.この時間には、I/Oの完了を待つなど、他のプロセスで使用されるタイムスライスやプロセスブロックの時間が含まれます.
                user:プロセスがユーザコード(コア以外)を実行するために使用される時間を指します.これは、このプログラムを実行するために消費される実際のCPU時間であり、他のプロセスとこのプロセスがブロックされる時間は含まれません.
                Sys:プロセスがカーネル状態で消費するCPU時間、すなわちカーネル実行システムで呼び出されるCPU時間を指す.
                user+sys:プロセスに使用される実際のCPU時間.