<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.11 $ -->
 <reference id="ref.sem">
  <title>Semaphore, Shared Memory and IPC Functions</title>
  <titleabbrev>Semaphore</titleabbrev>

  <partintro>
   <section id="sem.intro">
    &reftitle.intro;
    <para>
     This module provides wrappers for the System V IPC family of functions.
     It includes semaphores, shared memory and inter-process messaging (IPC).
    </para>
    <para>
     Semaphores may be used to provide exclusive access to
     resources on the current machine, or to limit the number of
     processes that may simultaneously use a resource.
    </para>
    <para>
     This module provides also shared memory functions using System V
     shared memory. Shared memory may be used to provide access to
     global variables. Different httpd-daemons and even other programs
     (such as Perl, C, ...) are able to access this data to provide a
     global data-exchange. Remember, that shared memory is NOT safe
     against simultaneous access. Use semaphores for synchronization.
     <table>
      <title>Limits of Shared Memory by the Unix OS</title>
      <tgroup cols="2">
       <tbody>
        <row>
         <entry>SHMMAX</entry> 
         <entry>max size of shared memory, normally 131072 bytes</entry>
        </row>
        <row>
         <entry>SHMMIN</entry>
         <entry>minimum size of shared memory, normally 1 byte</entry>
        </row>
        <row>
         <entry>SHMMNI</entry> 
         <entry>
          max amount of shared memory segments on a system,
          normally 100
         </entry>
        </row>
        <row>
         <entry>SHMSEG</entry>
         <entry>
          max amount of shared memory segments per process, normally 6
         </entry>
        </row>
       </tbody>
      </tgroup>
     </table>
    </para>
    <para>
     The messaging functions may be used to send and receive messages to/from
     other processes. They provide a simple and effective means of exchanging
     data between processes, without the need for setting up an alternative
     using Unix domain sockets.
    </para>
    &note.no-windows.extension;
   </section>

   <section id="sem.requirements">
    &reftitle.required;
    &no.requirement;
   </section>

   &reference.sem.configure;

   <section id="sem.configuration">
    &reftitle.runtime;
    &no.config;
   </section>

   <section id="sem.resources">
    &reftitle.resources;
    <para>
     
    </para>
   </section>

   <section id="sem.constants">
    &reftitle.constants;
    &no.constants;
   </section>
  </partintro>

&reference.sem.functions;

</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->