/* Sheila McKain * Assignment #2 - Main Program * Bridge * Realtime Systems */ #include "pv.h" #include "sem.c" main() { key_t semkey = 0x200; if(fork() == 0) handlesem(semkey); if(fork() == 0) handlesem(semkey); if(fork() == 0) handlesem(semkey); } handlesem(skey) key_t skey; { int semid, pid = getpid(); if((semid = initsem(skey)) < 0) exit(1); printf("\nprocess %d before critical section\n",pid); p(semid); printf("process in critical section\n",pid); sleep(10); printf("process leaving critical section\n",pid); v(semid); printf("process %d exiting\n",pid); exit(0); }