<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/refs.fileprocess.process.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'book.sem.php',
    1 => 'セマフォ',
    2 => 'セマフォ、共有メモリおよび IPC',
  ),
  'up' => 
  array (
    0 => 'refs.fileprocess.process.php',
    1 => 'プロセス制御',
  ),
  'prev' => 
  array (
    0 => 'class.volatile.php',
    1 => 'Volatile',
  ),
  'next' => 
  array (
    0 => 'sem.setup.php',
    1 => 'インストール/設定',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/sem/book.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/book.sem.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="book.sem" class="book">
 
 <h1 class="title">セマフォ、共有メモリおよび IPC</h1>
 

 
 <div id="intro.sem" class="preface">
  <h1 class="title">はじめに</h1>
  <p class="simpara">
   これらのモジュールは、System V IPC 関連の関数へのラッパーを提供します。
   セマフォ・共有メモリおよびプロセス間通信(IPC)がその中に含まれます。
  </p>
  <p class="simpara">
   セマフォは、マシーン上のリソースへの排他的アクセス機能や、
   同時にあるリソースを使用することができるプロセスの数を制限するために
   使用することができます。
  </p>
  <p class="para">
   このモジュールは、System V 共有メモリを使用した共有メモリ関数も
   提供します。共有メモリは、グローバル変数へのアクセス手段を提供するために
   使用することが可能です。別の httpd デーモンおよび
   (Perl, C, ... のような)他のプログラムさえ、グローバルデータ交換を
   提供するこのデータにアクセスすることが可能です。
   共有メモリは、同時アクセスに関して安全ではないということを覚えておいて
   ください。
   同期をとるには、セマフォを使用してください。
   <table class="doctable table">
    <caption><strong>Unix OS による共有メモリの制限</strong></caption>
    
     <tbody class="tbody">
      <tr>
       <td>SHMMAX</td>
       <td>共有メモリの最大サイズ。通常は 131072 バイト</td>
      </tr>

      <tr>
       <td>SHMMIN</td>
       <td>共有メモリの最小サイズ。通常は 1 バイト</td>
      </tr>

      <tr>
       <td>SHMMNI</td>
       <td>共有メモリセグメントの最大数。通常は 100</td>
      </tr>

      <tr>
       <td>SHMSEG</td>
       <td>プロセス毎の共有メモリの最大数。通常は 6</td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="simpara">
   メッセージング関数は、他のプロセスと相互にメッセージを送受信する
   ために使用することができます。
   これにより簡単で効率的なプロセス間のデータ交換が可能であり、
   Unix ドメインソケットを用いる場合のような設定は不要です。
  </p>
  <blockquote class="note"><p><strong class="note">注意</strong>: 
   <span class="simpara">
    共有メモリ関数と <span class="function"><a href="function.ftok.php" class="function">ftok()</a></span> 関数だけが、Windows で利用可能です。
    セマフォとメッセージング関数は、Windows ではサポートされていません。
   </span>
  </p></blockquote>
 </div>
 

 






 






 






 





 





 






<ul class="chunklist chunklist_book"><li><a href="sem.setup.php">インストール/設定</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="sem.installation.php">インストール手順</a></li><li><a href="sem.configuration.php">実行時設定</a></li><li><a href="sem.resources.php">リソース型</a></li></ul></li><li><a href="sem.constants.php">定義済み定数</a></li><li><a href="ref.sem.php">セマフォ関数</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.ftok.php">ftok</a> — パス名とプロジェクト ID を、System V IPC キーに変換する</li><li><a href="function.msg-get-queue.php">msg_get_queue</a> — メッセージキューを作成またはそれにアタッチする</li><li><a href="function.msg-queue-exists.php">msg_queue_exists</a> — メッセージキューが存在するかどうかを調べる</li><li><a href="function.msg-receive.php">msg_receive</a> — メッセージキューからメッセージを受信する</li><li><a href="function.msg-remove-queue.php">msg_remove_queue</a> — メッセージキューを破棄する</li><li><a href="function.msg-send.php">msg_send</a> — メッセージキューにメッセージを送信する</li><li><a href="function.msg-set-queue.php">msg_set_queue</a> — メッセージキューデータ構造体の情報を設定する</li><li><a href="function.msg-stat-queue.php">msg_stat_queue</a> — メッセージキューデータ構造体の情報を返す</li><li><a href="function.sem-acquire.php">sem_acquire</a> — セマフォを得る</li><li><a href="function.sem-get.php">sem_get</a> — セマフォ ID を得る</li><li><a href="function.sem-release.php">sem_release</a> — セマフォを解放する</li><li><a href="function.sem-remove.php">sem_remove</a> — セマフォを削除する</li><li><a href="function.shm-attach.php">shm_attach</a> — 共有メモリセグメントを作成またはオープンする</li><li><a href="function.shm-detach.php">shm_detach</a> — 共有メモリセグメントへの接続を閉じる</li><li><a href="function.shm-get-var.php">shm_get_var</a> — 共有メモリから変数を返す</li><li><a href="function.shm-has-var.php">shm_has_var</a> — 特定のエントリが存在するかどうかを調べる</li><li><a href="function.shm-put-var.php">shm_put_var</a> — 共有メモリの変数を挿入または更新する</li><li><a href="function.shm-remove.php">shm_remove</a> — Unix システムから共有メモリを削除する</li><li><a href="function.shm-remove-var.php">shm_remove_var</a> — 共有メモリから変数を削除する</li></ul></li><li><a href="class.sysvmessagequeue.php">SysvMessageQueue</a> — SysvMessageQueue クラス</li><li><a href="class.sysvsemaphore.php">SysvSemaphore</a> — SysvSemaphore クラス</li><li><a href="class.sysvsharedmemory.php">SysvSharedMemory</a> — SysvSharedMemory クラス</li></ul></div><?php manual_footer($setup); ?>