TIME(9) NetBSD Kernel Developer's Manual TIME(9) 名称 boottime, mono_time, runtime, time -- システム時刻変数 書式 extern struct timeval boottime; extern volatile struct timeval mono_time; extern struct timeval runtime; extern volatile struct timeval time; 解説 time 変数はシステムの ``壁掛け時計'' です。これは起動時に inittodr(9) によって設定され、settimeofday(2) システムコールと定 期的なクロック割り込みによって更新されます。 boottime 変数はシステム起動時刻を保持します。システム起動時に設定 され、settimeofday(2) によりシステム時刻が修正された時に更新され ます。 runtime 変数はシステムがカレントプロセスにスイッチした時刻を保持 します。毎回のコンテキストスイッチ後に設定され、settimeofday(2) によりシステム時刻が修正された時に更新されます。runtime はシステ ムのアカウンティングで使用するので、time 変数からコピーするのでは なく、高精度の microtime(9) 関数を使用して設定します。 mono_time 変数は単調増加するシステムクロックです。 起動時に設定され、定期的なタイマー割り込みで更新されます。 (settimeofday(2) では更新されません。) これら全ての変数は 1970 年 1 月 1 日 の 0 時からの経過秒(とマイク ロ秒)数を持っています。 time 変数または mono_time 変数を読む間はクロック割り込みをブロッ クすべきです。なぜなら、これらの変数は hardclock() で更新されるか らです。boottime 変数と runtime 変数は特別な注意を払わなくとも読 んだり書いたりできます。 関連項目 settimeofday(2), hardclock(9), hz(9), inittodr(9), microtime(9) バグ runtime 変数はリソースのアカウンティングに使用されるので、 settimeofday(2) によって更新されるべきではありません。 単一の runtime 変数を持つという考え方は、マルチプロセッサーシステ ムに対しては、明らかに適合しない。 NetBSD 3.1 November 13, 1995 NetBSD 3.1 $Id: time.0,v 1.1 2007/07/12 04:23:20 candy Exp candy $