.\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)vtimes.3 8.1 (Berkeley) 6/4/93 .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt VTIMES 3 .Os BSD 4 .Sh 名称 .Nm vtimes .Nd リソース利用についての情報を取得 .Sh 書式 .Fd #include .Fn vtimes "struct vtimes *par_vm" "struct vtimes *ch_vm" .Sh 解説 .Bf -symbolic このインタフェースは、getrusage(2) によって置き換えられました。 この関数は、互換性ライブラリ、libcompat から使用できます。 .Ef .Pp .Fn vtimes 関数は、現在のプロセスおよび現在のプロセスの終了した 子プロセスのアカウント情報を返します。 .Fa par_vm または .Fa ch_vm のどちらか一方、またはこれら両方は 0 でも構いません。この場合には、 非ゼロであるポインタについての情報のみが返されます。 .Pp この関数を呼び出した後は、各バッファにはインクルードファイル .Pa /usr/include/sys/vtimes.h の内容によって定義された次のような情報が 入ります。 .Bd -literal -offset indent struct vtimes { int vm_utime; /* user time (*HZ) */ int vm_stime; /* system time (*HZ) */ /* divide next two by utime+stime to get averages */ unsigned vm_idsrss; /* integral of d+s rss */ unsigned vm_ixrss; /* integral of text rss */ int vm_maxrss; /* maximum rss */ int vm_majflt; /* major page faults */ int vm_minflt; /* minor page faults */ int vm_nswap; /* number of swaps */ int vm_inblk; /* block reads */ int vm_oublk; /* block writes */ }; .Ed .Pp .Fa vm_utime および .Fa vm_stime のフィールドは、60 分の 1 秒 (ローカルの交流の周波数が 50 Hz の場合は 50 分の 1 秒) の単位でそれぞれユーザ時間と システム時間を示します。 .Fa vm_idrss および .Fa vm_ixrss は、メモリの使用度を測ります。それぞれ、 .Tn CPU 時間に対する使用メモリページの数を積分して 計算します。これらは、クロックが 1 回刻む度に 現在のメモリ使用(512 バイトページの単位で)を加算して、 離散的に計算したかのように示されます。ある プロセスがデータおよびスタックについて 1 cpu 秒に 5 コアページを使った場合は、 .Fa vm_idsrss は 5*60 の値を持ち、ここで .Fa vm_utime+vm_stime は 60 となります。 引数 .Fa Vm_idsrss はデータとスタックのセグメント使用度を積算し、 .Fa vm_ixrss はテキストセグメントの使用度を積算します。 .Fa Vm_maxrss 関数は、 テキスト+データ+スタックのコア駐在のページカウントの最大瞬間総和を 示します。 .Pp .Fa vm_majflt フィールドは、ディスク動作に結びついたページフォールトの数を 示します。 .Fa vm_minflt フィールドは、参照ビットのシミュレーションで引き起こされた ページフォールトの数を示します。 .Fa vm_nswap は、起こったスワップの数です。 ファイルシステムの入力/出力イベントの回数は、 .Fa vm_inblk および .Fa vm_oublk によって示されます。 これらの数字は、実際の .Tn I/O のみを数えます。 キャッシング機構によって供給されたデータは、そのデータを読み書きする最初の プロセスに対してのみ勘定されます。 .Sh 参照 .Xr getrusage 2 , .Xr wait3 2 , .Xr time 3 .Sh 歴史 .Fn vlimit 関数は、 .Bx 4.2 に現れました。 .Sh バグ この関数は、未だに再実装されていません。