CROW_CREATE_RESERVE(2) Linux Programmer's Manual CROW_CREATE_RESERVE(2) 名前 crow_create_reserve - 計算機資源を予約する 書式 #include int crow_create_reserve(struct crow_reserve *params); 説明 crow_create_reserve() は params によって指定されたパラメー タにしたがって計算機資源を予約する。予約された計算機資源 は crow_create_reserve() の子孫のプロセス全部で共有され る。 struct crow_reserve { unsigned int crow_id; unsigned int cpu_rate; unsigned int net_rate; unsigned int mem_rate; /* bytes */ }; "crow_id" はカーネルが資源予約に対して割り当てるユニーク な番号。最初の割り当て時には 0 を設定しておく。 "cpu_rate" は予約したい CPU 時間をパーセンテージで指定す る。この数字を超えた CPU 時間の利用は、CPU時間に余裕があ る場合でも許可されない。 "net_rate" は予約したいネットワーク帯域をパーセンテージ で指定する(この機能はまだ実装されていない)。 "mem_rate" は予約したいメモリをバイト単位で指定する。た だし、メモリ予約時にはカーネル内でページサイズ単位に切り 上げる。メモリに余裕がある場合、この値を超えたメモリを利 用することができる。 全ての資源に対して予約可能な最大値は 80% である。また、 アドミッションコントロールを行っており、最大値を超える予 約は失敗する。最大値を超えない限りはいくつでも予約を行う ことができる。 返り値 成功すると 0 を返す。失敗したら 0 以外が返り、errno に失 敗の原因をセットする エラー EPERM 特権がない ENOMEM カーネル内に十分なメモリがない EFAULT パラメータの取得に失敗 準拠 crow_create_reserve(2) は Linux Secure Virtual Hosting environment で拡張した関数である。 制限 CPU 時間の予約に対して10%以下の小さな数値を指定した場合、 スケジューラの精度が落ちる。これはオリジナルのカーネルの タイマーの粒度が指定した値よりも大きいために発生する。 関連項目 jail(2), execve(2)