Операционные системы. Теория и практика. Замятин А.В. - 262 стр.

UptoLike

Составители: 

262
printf("Parent: Waiting for unlocking semaphore...\n");
psmb.sem_num = psmb.sem_flg = psmb.sem_op = 0;
semop(semid,&psmb,1);
printf("Parent: Semaphore is unlocked...\n");
printf("Parent: Waiting for SIGCHILD...\n");
waitpid(pid,NULL,0);
printf("Parent: Deleting semaphore...\n");
semctl(semid, 0, IPC_RMID);
exit(0);
}
Запуск приведенной выше программы происходит следующим об-
разом:
semsyn
Parent: Creating semaphore...
Parent: Getting info about semaphore (not required, for example)...
Parent: Creating time - 13 : 14 : 6
Parent: Setting value " 5 " to semaphore...
Parent: Creating child process...
Child: Child process was created...
Child: Opening semaphore...
Child: Locking semaphore...
Child: Do something...
Parent: Waiting for unlocking semaphore...
Child: Done something...
Child: Semaphore value = 4
Child: Unlocking semaphore...
Parent: Semaphore is unlocked...
Parent: Waiting for SIGCHILD...
Child: Terminating child process...
Parent: Deleting semaphore...
Во время работы программы создается семафор с живучестью ядра
ipcs s
------ Semaphore Arrays --------