Solaris カーネルのチューンアップ・リファレンスマニュアル

System V セマフォ

System V セマフォは Solaris 環境で計数型セマフォを提供します。System V セマフォでは、セマフォの標準的な設定/解放操作の他に、必要に応じて増分や減分を行う値を持つことができます (たとえば、使用可能なリソースの数を表すなど)。セマフォ群に対して同時に操作を行う機能や、プロセスが終了すると、そのプロセスの最後の操作をシステムが取り消す機能も提供されます。

セマフォは組で作成されます。

モジュールは最初の参照で動的にロードされます。この時点で、サブシステムに渡されたパラメータが検査され、セマフォを含むすべてのデータ構造体が作成されます。したがって、実行時にパラメータの値を変更することはできません。値を増やすと、データ破壊の可能性があるからです。/etc/system ファイルのエントリは semsys: 接頭辞を含んでいなければなりません。

この機能は、POSIX 1003.1b セマフォ機能とは異なります。

semsys:seminfo_semmni

説明

セマフォ識別子の最大数

データ型

符号付き整数

デフォルト

10

範囲

1 から 65,535

動的か

いいえ

検査

SEMA_INDEX_MAX (現在は 65,535) と比較し、それより大きい場合は、SEMA_INDEX_MAX の値にリセットされます。警告メッセージがコンソールかシステムメッセージファイル (またはその両方) に書き込まれます。

どのような場合に変更するか

デフォルトの組数では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。現在の設定値を越えるセットを作成しようとしても、エラーメッセージは表示されません。semget(2) 呼び出しからアプリケーションに ENOSPC が返されます。

コミットレベル

変更の可能性あり

semsys:seminfo_semmns

説明

システムにおける System V セマフォの最大数

データ型

符号付き整数

デフォルト

60

範囲

1 から MAXINT

動的か

いいえ

検査

セマフォとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォ機能は利用できません。

どのような場合に変更するか

デフォルトのセマフォ数では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える数のセマフォを作成しようとしても、エラーメッセージは表示されません。semget(2) 呼び出しからアプリケーションにリターンコード ENOSPC が返されます。

コミットレベル

変更の可能性あり

semsys:seminfo_semvmx

説明

セマフォに設定できる最大値

データ型

符号なし short

デフォルト

32,767

範囲

1 から 65,535

動的か

いいえ

検査

なし

どのような場合に変更するか

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。この最大値を越えても、エラーメッセージは表示されません。semop(2) 呼び出しからアプリケーションにリターンコード ERANGE が返されます。

コミットレベル

変更の可能性あり

semsys:seminfo_semmsl

説明

1 つのセマフォ識別子当たりの System V セマフォ数の最大値

データ型

符号付き整数

デフォルト

25

範囲

1 から MAXINT

動的か

いいえ

検査

セマフォとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォ機能は利用できません。

どのような場合に変更するか

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える数のセマフォを組として作成しようとしても、エラーメッセージは表示されません。semget(2) 呼び出しからアプリケーションにリターンコード EINVAL が返されます。

コミットレベル

変更の可能性あり

semsys:seminfo_semopm

説明

1 回の semop(2) 呼び出しで実行できる System V セマフォ操作数の最大値。このパラメータは、semop(2) システム呼び出しで使用する sops 配列内の sembufs の数を規定します。

データ型

符号付き整数

デフォルト

10

範囲

1 から MAXINT

動的か

いいえ

検査

セマフォとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォ機能は利用できません。

どのような場合に変更するか

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。1 回の semop(2) 呼び出しで許可されている値を越える回数のセマフォ操作を実行しようとしても、エラーメッセージは表示されません。semop(2) 呼び出しからアプリケーションにリターンコード E2BIG が返されます。

コミットレベル

変更の可能性あり

semsys:seminfo_semmnu

説明

System V セマフォシステムによってサポートされる取り消し構造体の合計数

データ型

符号付き整数

デフォルト

30

範囲

1 から MAXINT

動的か

いいえ

検査

セマフォとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォ機能は利用できません。

どのような場合に変更するか

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える回数の取り消し操作を実行しようとしても、エラーメッセージは表示されません。システムが取り消し構造体を使い果たすと、semop(2) 呼び出しからアプリケーションに戻り値 ENOSPC が返されます。

コミットレベル

変更の可能性あり

前のリリースからの変更

詳細は、semsys:seminfo_semmnu (Solaris 8 1/01 リリース)」を参照してください。

semsys:seminfo_semume

説明

1 つのプロセスで使用できる System V セマフォの取り消し構造体の最大数

データ型

符号付き整数

デフォルト

10

範囲

1 から MAXINT

動的か

いいえ

検査

セマフォとそれらに関係するデータ構造体によって消費され得る空間の量が、モジュールが最初にロードされるときに使用可能なカーネルメモリーの 25% と比較されます。使用される容量がこのメモリーのしきい値より大きい場合、モジュールはロードを拒否し、セマフォ機能は利用できません。

どのような場合に変更するか

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える回数の取り消し操作を実行しようとしても、エラーメッセージは表示されません。semop(2) 呼び出しからアプリケーションにリターンコード EINVAL が返されます。

コミットレベル

変更の可能性あり

semsys:seminfo_semaem

説明

1 つの取り消し構造体にセマフォの値として設定できる最大値

データ型

符号なし short

デフォルト

16,384

範囲

1 から 65,535

動的か

いいえ

検査

なし

どのような場合に変更するか

デフォルト値では不十分な場合。一般には、ソフトウェアベンダーの推奨があった場合に変更します。設定された値を越える回数の取り消し操作を実行しようとしても、エラーメッセージは表示されません。semop(2) 呼び出しからアプリケーションにリターンコード EINVAL が返されます。

コミットレベル

変更の可能性あり