Инфо IT 24

IT блог, IT мышление

Выполнение процесса

Выполнение процессаПриостановить выполнение процесса можно двумя способами. Первый останавливает выполнение процесса, и выход из состояния останова возможен только по получении процессом сигнала. Для такого останова используется функция pause, а сам способ останова зачастую называют установкой процесса в паузу. Второй способ останавливает выполнение процесса на заданный промежуток времени. Продолжение выполнения процесса возможно либо по истечении этого промежутка, либо при получении сигнала. Для такого останова используется функция sleep, а сам способ получил название «усыпление процесса».

Данная программа устанавливает обработчик сигнала SIGINT — функцию handler, а затем входит в бесконечный цикл, в котором приостанавливает свое выполнение до получения сигнала, о чем выводит соответствующее сообщение. По получении сигнала управление передается функции handler, которая восстанавливает обработчик сигнала и выводит сообщение, информирующее пользователя о получении сигнала. После этого управление передается на команду, следующую за pause, т. е. начинается следующая итерация бесконечного цикла.

Обработчик необязательно должен восстанавливать таблицу обработчиков так, чтобы следующий сигнал был обработан тем же обработчиком. Восстановление обработчиков можно использовать и в случаях, когда реакция процесса на сигналы должна меняться с течением времени.

Рассматриваемые ранее временные ограничения механизма сигналов — вызов обработчика по умолчанию при получении сигнала до установки пользовательского обработчика — действуют не только во время выполнения основных функций программы, но и во время выполнения функций-обработчиков.

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

Статью опубликовал: i24TbloG

Метки:

Из каталога:

Программирование Linux

Предыдущая статья:

Следующая статья: