セマフォとは?

辞典・百科事典の検索サービス - Weblio辞書

初めての方へ

参加元一覧


用語解説|動画|文献|商品|全文検索
Weblio 辞書 > コンピュータ > IT用語辞典 > セマフォの意味・解説 

IT用語辞典バイナリ

IT用語辞典バイナリIT用語辞典バイナリ

セマフォ

【英】semaphore

セマフォとは、並行プログラミングにおいて同期サポートするための機構である。

セマフォは、必ずしも排他アクセスとする必要がない資源同時にアクセスできるプログラム数を制限するために使われる。

オランダ計算機科学者構造化プログラミング提唱者の1人であるエドガー・ダイクストラEdsger Wybe Dijkstra)によって考案され、資源毎に管理される整数である。

資源使用宣言を行うためにP操作オランダ語小さくする意味の「Prolagen」)を行う。P操作ではセマフォが1以上であれば1を減算し、資源使えるようにする。セマフォが0であれば待ち状態になる。資源不要となればV操作オランダ語大きくする意味の「Verhogen」)により、資源解放宣言する。この時、セマフォは1加算される。なお、これらの処理はアトミック(すなわち不可分)に行う必要がある。

ちなみに、セマフォ(semaphore)とは腕木信号機のことである。

ソフトウェアのほかの用語一覧
機能:  差し込み印刷  正規化  セーブ  セマフォ  出力  常駐  上位互換


PHP関数リファレンス

PHP Documentation GroupPHP Documentation Group

セマフォ・共有メモリおよび IPC 関数(semaphore)

導入

このモジュールは、System V IPC 関連の関数へのラッパーを提供します。 セマフォ・共有メモリおよびプロセス間通信(IPC)がその中に含まれます。
セマフォは、マシーン上のリソースへの排他的アクセス機能や、 同時にあるリソースを使用することができるプロセスの数を制限するために 使用することができます。
このモジュールは、System V 共有メモリを使用した共有メモリ関数も 提供します。共有メモリは、グローバル変数へのアクセス手段を提供するために 使用することが可能です。別の httpd デーモンおよび (Perl, C, ... のような)他のプログラムさえ、グローバルデータ交換を 提供するこのデータにアクセスすることが可能です。 共有メモリは、同時アクセスに関して安全ではないということを覚えておいて ください。 同期をとるには、セマフォを使用してください。 表 263. Unix OS による共有メモリの制限
SHMMAX共有メモリの最大サイズ。通常は 131072 バイト
SHMMIN共有メモリの最小サイズ。通常は 1 バイト
SHMMNI共有メモリセグメントの最大数。通常は 100
SHMSEGプロセス毎の共有メモリの最大数。通常は 6


メッセージング関数は、他のプロセスと相互にメッセージを送受信する ために使用することができます。 これにより簡単で効率的なプロセス間のデータ交換が可能であり、 Unix ドメインソケットを用いる場合のような設定は不要です。
注意: この拡張モジュールは Windows 環境では利用できません。

要件

外部ライブラリを必要としません。

インストール手順

この関数はデフォルトでは有効になってはいません。System V セマフォの サポートを有効にするには、オプション --enable-sysvsem を指定して PHP を コンパイルする必要があります。System V 共有メモリのサポートを有効にするには、 オプション --enable-sysvshm を 指定して PHP をコンパイルする必要があります。System V メッセージを有効に するには、オプション --enable-sysvmsg を指定して PHP をコンパイル します。

実行時設定

php.ini の設定により動作が変化します。
表 264. セマフォ設定オプション
名前デフォルト変更の可否変更履歴
sysvmsg.value"42"PHP_INI_ALL 
sysvmsg.string"foobar"PHP_INI_ALL 

PHP_INI_* 定数の詳細および定義については 付録 G. php.ini ディレクティブ を参照してください。

リソース型


定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
表 265. System V メッセージ定数
定数変更履歴
MSG_IPC_NOWAITinteger 
MSG_EAGAINinteger5.2.0 以降
MSG_ENOMSGinteger5.2.0 以降
MSG_NOERRORinteger 
MSG_EXCEPTinteger 


目次

ftok — パス名とプロジェクト ID を、System V IPC キーに変換する
msg_get_queue — メッセージキューを作成またはそれにアタッチする
msg_receive — メッセージキューからメッセージを受信する
msg_remove_queue — メッセージキューを破棄する
msg_send — メッセージキューにメッセージを送信する
msg_set_queue — メッセージキューデータ構造体の情報を設定する
msg_stat_queue — メッセージキューデータ構造体の情報を返す
sem_acquire — セマフォを得る
sem_get — セマフォ ID を得る
sem_release — セマフォを解放する
sem_remove — セマフォを削除する
shm_attach — 共有メモリセグメントを作成またはオープンする
shm_detach — 共有メモリセグメントへの接続を閉じる
shm_get_var — 共有メモリから変数を返す
shm_put_var — 共有メモリの変数を挿入または更新する
shm_remove_var — 共有メモリから変数を削除する
shm_remove — Unix システムから共有メモリを削除する


ウィキペディア

ウィキペディアウィキペディア

セマフォ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2011/07/09 07:02 UTC 版)

セマフォ(: semaphore)はコンピュータにおいて、古典的でかつ現在も利用される同期機構の一種。エドガー・ダイクストラが考案した。

一般には、並列処理の実行環境において、排他区間を確保し、資源に同時アクセスできる上限を規定したい時に用いる。

semaphore」の語義は腕木通信で、それから派生した鉄道腕木信号(や自動車方向指示器)に由来する。 日本語でのセマフォは本用途(コンピュータプログラミング関連)に限られる。

語源の腕木式信号機

  1. ^ :Passeren = 腕木を下げる(通行許可)
  2. ^ :Verhoog = 腕木を上げる(通行禁止)


「セマフォ」の続きの解説一覧




セマフォに関係した商品


セマフォのページへのリンク
「セマフォ」の関連用語
セマフォのお隣キーワード
モバイル
モバイル版のWeblioは、下記のURLからアクセスしてください。
http://m.weblio.jp/
» モバイルで「セマフォ」を見る
_ _   


セマフォのページの著作権
Weblio 辞書情報提供元は参加元一覧にて確認できます。

  
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2012 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリセマフォの記事を利用しております。
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2012 by the PHP Documentation Group.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのセマフォ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2012 Weblio RSS