<?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 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'book.sem.php',
    1 => 'Semaphore',
    2 => 'Sem&aacute;foros, Mem&oacute;ria Compartilhada e Comunica&ccedil;&atilde;o entre Processos',
  ),
  'up' => 
  array (
    0 => 'refs.fileprocess.process.php',
    1 => 'Extens&otilde;es para Controle de Processo',
  ),
  'prev' => 
  array (
    0 => 'class.volatile.php',
    1 => 'Volatile',
  ),
  'next' => 
  array (
    0 => 'sem.setup.php',
    1 => 'Instala&ccedil;&atilde;o/Configura&ccedil;&atilde;o',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    '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">Semáforos, Memória Compartilhada e Comunicação entre Processos</h1>
 

 
 <div id="intro.sem" class="preface">
  <h1 class="title">Introdução</h1>
  <p class="simpara">
   Esses módulos fornecem encapsulamento para a família de funções IPC do System V.
   Inclui semáforos, memória compartilhada e mensagens entre processos (IPC).
  </p>
  <p class="simpara">
   Semáforos podem ser usados ​​para fornecer acesso exclusivo a
   recursos na máquina atual ou para limitar o número de
   processos que podem usar um recurso simultaneamente.
  </p>
  <p class="para">
   Este módulo também fornece funções de memória compartilhada usando a memória
   compartilhada do System V. A memória compartilhada pode ser usada para fornecer acesso a
   variáveis ​​globais. Diferentes daemons httpd e até mesmo outros programas
   (como Perl, C, ...) são capazes de acessar esses dados para fornecer uma
   troca global de dados. Lembre-se de que a memória compartilhada NÃO é segura
   contra acesso simultâneo. Use semáforos para sincronização.
   <table class="doctable table">
    <caption><strong>Limites de memória compartilhada pelo sistema operacional Unix</strong></caption>
    
     <tbody class="tbody">
      <tr>
       <td>SHMMAX</td>
       <td>tamanho máximo da memória compartilhada, normalmente 131072 bytes</td>
      </tr>

      <tr>
       <td>SHMMIN</td>
       <td>tamanho mínimo de memória compartilhada, normalmente 1 byte</td>
      </tr>

      <tr>
       <td>SHMMNI</td>
       <td>
        quantidade máxima de segmentos de memória compartilhada em um sistema,
        normalmente 100
       </td>
      </tr>

      <tr>
       <td>SHMSEG</td>
       <td>
        quantidade máxima de segmentos de memória compartilhada por processo, normalmente 6
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="simpara">
   As funções de mensagens podem ser usadas para enviar e receber mensagens de/para
   outros processos. Elas fornecem um meio simples e eficaz de trocar
   dados entre processos, sem a necessidade de configurar uma alternativa
   usando soquetes de domínio Unix.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Somente as funções de memória compartilhada e <span class="function"><a href="function.ftok.php" class="function">ftok()</a></span> estão disponíveis
    no Windows. Nem semáforos nem funções de mensagens entre processos são
    suportadas nessa plataforma.
   </span>
  </p></blockquote>
 </div>
 

 




 




 





 



 



 




<ul class="chunklist chunklist_book"><li><a href="sem.setup.php">Instala&ccedil;&atilde;o/Configura&ccedil;&atilde;o</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="sem.installation.php">Instala&ccedil;&atilde;o</a></li><li><a href="sem.configuration.php">Configura&ccedil;&otilde;es em Execu&ccedil;&atilde;o</a></li><li><a href="sem.resources.php">Tipos de Recurso</a></li></ul></li><li><a href="sem.constants.php">Constantes predefinidas</a></li><li><a href="ref.sem.php">Fun&ccedil;&otilde;es de Semaphore</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.ftok.php">ftok</a> — Converte um nome de caminho e um identificador de projeto em uma chave IPC do System V</li><li><a href="function.msg-get-queue.php">msg_get_queue</a> — Cria ou anexa a uma fila de mensagens</li><li><a href="function.msg-queue-exists.php">msg_queue_exists</a> — Verifica se existe uma fila de mensagens</li><li><a href="function.msg-receive.php">msg_receive</a> — Recebe uma mensagem de uma fila de mensagens</li><li><a href="function.msg-remove-queue.php">msg_remove_queue</a> — Destr&oacute;i uma fila de mensagens</li><li><a href="function.msg-send.php">msg_send</a> — Envia uma mensagem para uma fila de mensagens</li><li><a href="function.msg-set-queue.php">msg_set_queue</a> — Define informa&ccedil;&otilde;es na estrutura de dados da fila de mensagens</li><li><a href="function.msg-stat-queue.php">msg_stat_queue</a> — Retorna informa&ccedil;&otilde;es da estrutura de dados da fila de mensagens</li><li><a href="function.sem-acquire.php">sem_acquire</a> — Adquire um sem&aacute;foro</li><li><a href="function.sem-get.php">sem_get</a> — Obt&eacute;m um ID de sem&aacute;foro</li><li><a href="function.sem-release.php">sem_release</a> — Libera um sem&aacute;foro</li><li><a href="function.sem-remove.php">sem_remove</a> — Remove um sem&aacute;foro</li><li><a href="function.shm-attach.php">shm_attach</a> — Cria ou abre um segmento de mem&oacute;ria compartilhada</li><li><a href="function.shm-detach.php">shm_detach</a> — Desconecta do segmento de mem&oacute;ria compartilhada</li><li><a href="function.shm-get-var.php">shm_get_var</a> — Retorna uma vari&aacute;vel da mem&oacute;ria compartilhada</li><li><a href="function.shm-has-var.php">shm_has_var</a> — Verifica se uma entrada espec&iacute;fica existe</li><li><a href="function.shm-put-var.php">shm_put_var</a> — Insere ou atualiza uma vari&aacute;vel na mem&oacute;ria compartilhada</li><li><a href="function.shm-remove.php">shm_remove</a> — Remove mem&oacute;ria compartilhada de sistemas Unix</li><li><a href="function.shm-remove-var.php">shm_remove_var</a> — Remove uma vari&aacute;vel da mem&oacute;ria compartilhada</li></ul></li><li><a href="class.sysvmessagequeue.php">SysvMessageQueue</a> — A classe SysvMessageQueue</li><li><a href="class.sysvsemaphore.php">SysvSemaphore</a> — A classe SysvSemaphore</li><li><a href="class.sysvsharedmemory.php">SysvSharedMemory</a> — A classe SysvSharedMemory</li></ul></div><?php manual_footer($setup); ?>