<?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 => 'fr',
  ),
  'this' => 
  array (
    0 => 'book.sem.php',
    1 => 'Semaphore',
    2 => 'S&eacute;maphore, M&eacute;moire Partag&eacute;e et IPC (Communication Inter-Processus)',
  ),
  'up' => 
  array (
    0 => 'refs.fileprocess.process.php',
    1 => 'Extensions sur le contr&ocirc;le des processus',
  ),
  'prev' => 
  array (
    0 => 'class.volatile.php',
    1 => 'Volatile',
  ),
  'next' => 
  array (
    0 => 'sem.setup.php',
    1 => 'Installation/Configuration',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    '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">Sémaphore, Mémoire Partagée et IPC (Communication Inter-Processus)</h1>
 

 
 <div id="intro.sem" class="preface">
  <h1 class="title">Introduction</h1>
  <p class="simpara">
   Ces modules fournissent une interface pour les fonctions de type System V IPC.
   Cela inclut les sémaphores, la mémoire partagée et le système de
   communication inter-processus (IPC).
  </p>
  <p class="simpara">
   Les sémaphores peuvent être utilisés pour fournir un accès exclusif
   à certaines ressources de la machine, ou pour limiter le
   nombre de processus qui utilisent en même temps une ressource.
  </p>
  <p class="para">
   Ces modules fournissent également un système de mémoire partagée,
   qui utilise la mémoire partagée System V.
   Cette mémoire partagée permet d&#039;accéder à des variables globales.
   Les différents démons httpd et même d&#039;autres programmes (tels que Perl,
   C, ...) permettent un tel échange de données globales. Il ne faut pas oublier
   que la mémoire partagée n&#039;est pas protégée contre l&#039;accès simultané.
   Il faudra utiliser les sémaphores pour assurer la synchronisation.
   <table class="doctable table">
    <caption><strong>Limites de la mémoire partagée sous Unix OS</strong></caption>
    
     <tbody class="tbody">
      <tr>
       <td>SHMMAX</td>
       <td>
        Taille maximale de mémoire partagée,
        par défaut, 131072 octets.
       </td>
      </tr>

      <tr>
       <td>SHMMIN</td>
       <td>
        Taille minimale de mémoire partagée,
        par défaut, 1 octet.
       </td>
      </tr>

      <tr>
       <td>SHMMNI</td>
       <td>
        Nombre maximal de segments de mémoire partagée,
        par défaut 100.
       </td>
      </tr>

      <tr>
       <td>SHMSEG</td>
       <td>
        Taille maximale de mémoire partagée par processus,
        par défaut 6.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="simpara">
   Ces fonctions permettent d&#039;envoyer et de recevoir des messages de/vers d&#039;autres processus.
   Elles offrent une interface simple et efficace pour échanger des données entre processus,
   sans avoir besoin d&#039;utiliser un autre socket UNIX.
  </p>
  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <span class="simpara">
    Seulement les fonctions de partage de mémoire et <span class="function"><a href="function.ftok.php" class="function">ftok()</a></span>
    sont disponibles sur Windows. Ni les sémaphores, ni les fonctions de message
    inter-process ne sont supportées sur cette plateforme.
   </span>
  </p></blockquote>
 </div>
 

 






 






 









 





 





 






<ul class="chunklist chunklist_book"><li><a href="sem.setup.php">Installation/Configuration</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="sem.installation.php">Installation</a></li><li><a href="sem.configuration.php">Configuration &agrave; l'ex&eacute;cution</a></li><li><a href="sem.resources.php">Types de ressources</a></li></ul></li><li><a href="sem.constants.php">Constantes pr&eacute;-d&eacute;finies</a></li><li><a href="ref.sem.php">Fonctions S&eacute;maphore</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.ftok.php">ftok</a> — Convertit un chemin et un identifiant de projet en une cl&eacute; System V IPC</li><li><a href="function.msg-get-queue.php">msg_get_queue</a> — Cr&eacute;e ou s'attache &agrave; une file de messages</li><li><a href="function.msg-queue-exists.php">msg_queue_exists</a> — V&eacute;rifie si une file de messages existe</li><li><a href="function.msg-receive.php">msg_receive</a> — Re&ccedil;oit un message depuis une file de messages</li><li><a href="function.msg-remove-queue.php">msg_remove_queue</a> — D&eacute;truit une file de messages</li><li><a href="function.msg-send.php">msg_send</a> — Envoie un message dans une file</li><li><a href="function.msg-set-queue.php">msg_set_queue</a> — Modifie des informations dans la file de messages</li><li><a href="function.msg-stat-queue.php">msg_stat_queue</a> — Retourne des informations sur la file de messages</li><li><a href="function.sem-acquire.php">sem_acquire</a> — R&eacute;serve un s&eacute;maphore</li><li><a href="function.sem-get.php">sem_get</a> — Retourne un identifiant de s&eacute;maphore</li><li><a href="function.sem-release.php">sem_release</a> — Lib&egrave;re un s&eacute;maphore</li><li><a href="function.sem-remove.php">sem_remove</a> — D&eacute;truit un s&eacute;maphore</li><li><a href="function.shm-attach.php">shm_attach</a> — Cr&eacute;e ou ouvre un segment de m&eacute;moire partag&eacute;e</li><li><a href="function.shm-detach.php">shm_detach</a> — Lib&egrave;re un segment de m&eacute;moire partag&eacute;e</li><li><a href="function.shm-get-var.php">shm_get_var</a> — Lit une variable dans la m&eacute;moire partag&eacute;e</li><li><a href="function.shm-has-var.php">shm_has_var</a> — V&eacute;rifie si une variable existe en m&eacute;moire partag&eacute;e</li><li><a href="function.shm-put-var.php">shm_put_var</a> — Ins&egrave;re ou modifie une variable de la m&eacute;moire partag&eacute;e</li><li><a href="function.shm-remove.php">shm_remove</a> — Supprime un segment de m&eacute;moire partag&eacute;e sous Unix</li><li><a href="function.shm-remove-var.php">shm_remove_var</a> — Efface une variable de la m&eacute;moire partag&eacute;e</li></ul></li><li><a href="class.sysvmessagequeue.php">SysvMessageQueue</a> — La classe SysvMessageQueue</li><li><a href="class.sysvsemaphore.php">SysvSemaphore</a> — La classe SysvSemaphore</li><li><a href="class.sysvsharedmemory.php">SysvSharedMemory</a> — La classe SysvSharedMemory</li></ul></div><?php manual_footer($setup); ?>