В портале Duetgroup Вы будете проинформированы о технологии и программирования на базе Linux.
А также о комплектации программ, о процессе разработки ПО, о скорости обработки данных и решении практических задач.

Состояние ожидания

Состояние ожиданияЕсли процесс-получатель находится в состоянии ожидания, ядро переводит процесс в активное состояние и ставит его в очередь ожидающих выполнения процессов. Если процесс-получатель активен, ядро считывает значение элемента массива спецификаций обработки сигнала, который соответствует установленному сигнальному флагу. Если элемент массива содержит нулевое значение, процесс выполнит обработчик по умолчанию. Если элемент массива содержит единицу, сигнал будет проигнорирован. Любое другое значение элемента массива используется в качестве адреса функции-обработчика сигнала. В последнем случае ядро передает управление внутри процесса-получателя функции-обработчику.
Перед передачей управления функции-обработчику ядро сбрасывает сигнальный флаг и записывает нулевое значение в соответствующий элемент массива спецификаций обработчиков сигналов. Таким образом, если последовательно посылаются несколько одинаковых сигналов, заданная пользователем функция-обработчик будет вызвана только для первого сигнала, для остальных будет вызван обработчик по умолчанию.
Однако это не даст гарантии того, что процесс обработает все сигналы. При получении сигнала в интервал времени с момента вызова функции-обработчика до момента восстановления ее адреса в массиве спецификаций обработки процесс будет выполнять обработчик по умолчанию.
Если процесс получит сигнал во время восстановления адреса в массиве спецификаций обработки, то возникнет ситуация гонок — неизвестно, какой из обработчиков будет вызван: обработчик по умолчанию или восстановленный пользовательский обработчик.
Основной недостаток этой программы заключается в том, что время межпроцессного взаимодействия очень велико и значительную часть времени процесс-получатель простаивает в ожидании сигнала.