Jump to content 日本-日本語
日本HPホーム 製品 & サービス サポート & ドライバー ソリューション ご購入方法
≫  お問い合わせ

製品とサービス >  ソフトウェアとOS >  HP- UX Developer Edge

HP-UX 11i 構成可能カーネル・パラメータ(HP-UX 11.0 用)

セマフォ・パラメータの概要
HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
System V IPCセマフォは、主に、プロセスを適切に同期した状態に維持し、共有データ構造へのアクセス時の衝突を防止する目的で使用されます。これらのセマフォをソフトウェア内で使用するには、かなり複雑なプログラミングが必要になるため、多くのプログラマは、セマフォ以外の有効な手段を使用できる場合には、セマフォを使用せずに済ませています。

セマフォの動作


semget()システム・コールは、指定された数のセマフォを格納する配列を割り当てます ( HP-UX Referenceのsemget(2) を参照)。プログラムをできるだけシンプルにするために、セマフォを1つだけ格納する配列を割り当てるという方法がよく採られています。配列を割り当てた後のセマフォ処理は配列全体に対してアトミックに行われます。そこでは、配列内の個々のセマフォに対する操作は、1つ以上のセマフォ操作を含んだ1つの配列を用いて行われます( semop(2)を参照)。semctl()を使うと、セマフォのパーミッション、変更時刻、またはオーナーを確認したり変更することができます。

セマフォは、一般に、ほかのプロセスをブロックして重要度の高い処理を行ったり、共有リソースを使用するプロセスによってインクリメントされます。このようなプロセスは、処理の完了時に値をデクリメントし、ブロックしたほかのプロセスがリソースにアクセスできるようにします。セマフォは、バイナリ・セマフォまたは汎用セマフォとして構成できます。バイナリ・セマフォは、0および1の2つの値だけをとります。一方、汎用セマフォ (カウンタ) は、あるプロセスによってインクリメントされ、そのプロセスに連携して動作するほかの1つ以上のプロセスによってデクリメントされます。検出できないオーバーフロー条件が発生するのを防止するために、カーネルは、セマフォのインクリメントを特定の最大許容値内に制限します。この制限値を設定するには、カーネル・パラメータの semvmx を使用します。ただし、このパラメータの値は、符号なし整数の上限内に制限されます。セマフォに負の値 (0より小さい値) を与えることはできません。

セマフォのアンドゥ処理


エラーが発生したときや、プロセスを中止する必要があるとき、プロセスが異常終了したときなどには、1つ以上のセマフォを新しい値か、または以前の値に変更しなければならなくなることがあります。これをセマフォのアンドゥと呼びます。このような条件が発生したときのセマフォの値は予測不能なので、アンドゥ処理によってセマフォの値を変更できる範囲は制限されています。この制限値を設定するには、カーネル・パラメータの semaem を使います。

System V IPCセマフォの処理の詳細は、Advanced UNIX Programming (Marc J. Rochkind著、Prentice-Hall, Inc、ISBN 0-13-011800-1) など、高度なUNIXプログラミングに関する専門書を参照してください。

セマフォに関する制限


構成可能カーネル・パラメータには、システム上に同時に存在するセマフォ・セットの最大許容数を指定するパラメータと、ユーザーにとって利用可能な個々のセマフォがシステム上に同時に何個まで存在できるかを指定するパラメータが用意されています。なお、1つのセマフォ・セットに格納できるセマフォの数は500に固定されており、この制限値を変更することはできません。

付加情報


セマフォ・パラメータの一覧
  構成可能カーネル・パラメータ・ヘルプのブラウズ
最初のページへ    

お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

オンラインサポート
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。
印刷用画面へ
プライバシー ご利用条件・免責事項 ウェブマスターに連絡