sem_overview man page on SuSE

Man page or keyword search:  
man Server   14857 pages
apropos Keyword Search (all sections)
Output format
SuSE 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 synchronize 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 semaphore.  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	 sema‐
	      phore  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  initialized
	      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).

       The remainder of this section describes some specific  details  of  the
       Linux implementation of POSIX semaphores.

   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(3), 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.

       Since  Linux  2.6.19, ACLs can be placed on files under this directory,
       to control object permissions on a per-user and per-group basis.

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_getvalue(3),	  sem_init(3),
       sem_open(3), sem_post(3), sem_unlink(3), sem_wait(3), pthreads(7)

COLOPHON
       This page is part of release 3.15 of the Linux  man-pages  project.   A
       description  of	the project, and information about reporting bugs, can
       be found at http://www.kernel.org/doc/man-pages/.

Linux				  2008-06-15		       SEM_OVERVIEW(7)
[top]

List of man pages available for SuSE

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