Exemple

Place de parking:

#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include "semaph.h"                       /* prototypes de P,V, creer_semaphore, etc. */

main()
{int place,i;
  place=CreerSemaphore(1000, 1);         /* création d'un sémaphore de clé externe 1000 */
  for(i=0;i<2;i++){
  if (fork()==0)                          /* création d'un véhicule */
     {                                     /* c'est un véhicule */
        pid = getpid();
        printf("un processus voiture créé: %d\n", pid);
        srand(pid);                       /* initialisation du générateur de nombre  */
        sleep(rand()%10);                 /* mise en sommeil (<10 secondes) */
        P(place)                           /* demande l'accès à la place */
        printf("Le véhicule %d se gare",  pid);
        sleep(rand()%10);
        printf("Le véhicule %d sort de la place", pid);                  
        V(place);                         /* libère la place */
        sleep(rand()%10);
        exit(0);
     }            }                     /* c'est le père, processus maître */       
    wait(0);                           /* attendre la fin d'un fils (véhicule) */   
    wait(0);                           /* attendre la fin d'un fils (véhicule)  */
    DetruireSemaphore(place);
}

suivant      plan