sem_overview man page on CentOS

Man page or keyword search:  
man Server   8420 pages
apropos Keyword Search (all sections)
Output format
CentOS logo
[printable version]

SEM_OVERVIEW(7)		   Linux Programmer's Manual	       SEM_OVERVIEW(7)

NAME
       sem_overview - Overview of POSIX semaphores

DESCRIPTION
       POSIX  semaphores  allow	 processes  and	 threads  to synchronise their
       actions.

       A semaphore is an integer whose value is never allowed  to  fall	 below
       zero.   Two  operations	can  be performed on semaphores: increment the
       semaphore value by one (sem_post(3)); and decrement the semaphore value
       by  one	(sem_wait(3)).	If the value of a semaphore is currently zero,
       then a sem_wait(3) operation will block until the value becomes greater
       than zero.

       POSIX  semaphores come in two forms: named semaphores and unnamed sema‐
       phores.

   Named semaphores
       A named semaphore is identified by a name of the form  /somename.   Two
       processes  can  operate on the same named semaphore by passing the same
       name to sem_open(3).

       The sem_open(3) function creates a new  named  semaphore	 or  opens  an
       existing	 named semaphore.  After the semaphore has been opened, it can
       be operated on using sem_post(3) and sem_wait(3).  When a  process  has
       finished using the semaphore, it can use sem_close(3) to close the sem‐
       aphore.	When all processes have finished using the semaphore,  it  can
       be removed from the system using sem_unlink(3).

   Unnamed semaphores (memory-based semaphores)
       An  unnamed  semaphore  does not have a name.  Instead the semaphore is
       placed in a region of memory that is shared between multiple threads (a
       thread-shared  semaphore) or processes (a process-shared semaphore).  A
       thread-shared semaphore is placed in an area of memory  shared  between
       by  the	threads	 of  a	process,  for  example,	 a global variable.  A
       process-shared semaphore must be	 placed	 in  a	shared	memory	region
       (e.g.,  a  System V shared memory segment created using semget(2), or a
       POSIX shared memory object built created using shm_open(3)).

       Before being used, an  unnamed  semaphore  must	be  initialised	 using
       sem_init(3).   It  can  then  be	 operated  on  using  sem_post(3)  and
       sem_wait(3).  When the semaphore is no longer required, and before  the
       memory  in  which it is located is deallocated, the semaphore should be
       destroyed using sem_destroy(3).

LINUX SPECIFIC DETAILS
   Versions
       Prior to kernel 2.6, Linux only supported unnamed, thread-shared	 sema‐
       phores.	 On a system with Linux 2.6 and a glibc that provides the NPTL
       threading implementation, a complete implementation of POSIX semaphores
       is provided.

   Persistence
       POSIX  named  semaphores	 have  kernel  persistence:  if not removed by
       sem_unlink(), a semaphore will exist until the system is shut down.

   Linking
       Programs using the POSIX semaphores API must be compiled with  cc  -lrt
       to link against the real-time library, librt.

   Accessing named semaphores via the file system
       On  Linux,  named semaphores are created in a virtual file system, nor‐
       mally mounted under /dev/shm, with names of the form sem.name.

CONFORMING TO
       POSIX.1-2001.

NOTES
       System V semaphores (semget(2), semop(2), etc.) are an older  semaphore
       API.  POSIX semaphores provide a simpler, and better designed interface
       than System V semaphores; on the other hand POSIX semaphores  are  less
       widely  available  (especially  on  older  systems) than System V sema‐
       phores.

EXAMPLE
       An example of the use of various POSIX semaphore functions is shown  in
       sem_wait(3).

SEE ALSO
       sem_close(3),	 sem_destroy(3),     sem_init(3),     sem_getvalue(3),
       sem_open(3), sem_post(3), sem_unlink(3), sem_wait(3), pthreads(7)

Linux 2.6.16			  2006-03-25		       SEM_OVERVIEW(7)
[top]

List of man pages available for CentOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net