typedef int semaphore; /* οι σημαφόροι είναι ακέραιοι "ειδικής" κατηγορίας */ semaphore s1 = 1; semaphore s2 = 0; semaphore s3 = 0; void procedure1(void) { while(TRUE) { down(&s1); printf("Διεργασία 1") up(&s2); } } void procedure2(void) { while(TRUE) { down(&s2); printf("Διεργασία 2"); up(&s3); } } void procedure3(void) { while(TRUE) { down(&s3); printf("Διεργασία 3"); up(&s1); } }