<<
>>

Понятие сигнала. Способы возникновения сигналов и виды их обработки

Сточки зрения пользователя получение процессом сигнала выглядит как возникновение прерывания. Процесс прекращает регулярное исполнение, и управление передается механизму обработки сигнала.
По окончании обработки сигнала процесс может возобновить регулярное исполнение. Типы сигналов (их принято задавать номерами, как правило, в диапазоне от 1 до 31 включительно или специальными символьными обозначениями) и способы их возникновения в системе жестко регламентированы.

Процесс может получить сигнал от:

• hardware (при возникновении исключительной ситуации);

• другого процесса, выполнившего системный вызов передачи сигнала;

• операционной системы (при наступлении некоторых событий);

• терминала (при нажатии определенной комбинации клавиш);

• системы управления заданиями (при выполнении команды kill — мы рассмотрим ее позже).

Передачу сигналов процессу в случаях его генерации источниками 2, 3 и 5, т. е., в конечном счете, каким-либо другим процессом, можно рассматривать как реализацию в UNIX сигнальных средств связи, о которых рассказывалось в лекции 4.

Существует три варианта реакции процесса на сигнал:

1. Принудительно проигнорировать сигнал.

2. Произвести обработку по умолчанию: проигнорировать, остановить процесс (перевести в состояние ожидания до получения другого специального сигнала), либо завершить работу с образованием core файла или без него.

3. Выполнить обработку сигнала, специфицированную пользователем. Изменить реакцию процесса на сигнал можно с помощью специальных системных вызовов, которые мы рассмотрим позже. Реакция на некоторые сигналы не допускает изменения, и они могут быть обработаны только по умолчанию. Так, например, сигнал с номером 9 — SIGKILL обрабатывается только по умолчанию и всегда приводит к завершению процесса.

Важным вопросом при программировании с использованием сигналов является вопрос о сохранении реакции на них при порождении нового процесса или замене его пользовательского контекста. При системном вызове fork () все установленные реакции на сигналы наследуются порожденным процессом.

При системном вызове ехес () сохраняются реакции только для тех сигналов, которые игнорировались или обрабатывались по умолчанию. Получение любого сигнала, который до вызова ехес () обрабатывался пользователем, приведет к завершению процесса.

Прежде чем продолжить тему сигналов, нам придется подробнее остановиться на иерархии процессов в операционной системе.

<< | >>
Источник: В.Е. Карпов К.А. Коньков. Основы операционных систем. 2005

Еще по теме Понятие сигнала. Способы возникновения сигналов и виды их обработки:

  1. СИГНАЛ
  2. 2. Возникновение и виды представительства
  3. 2. Основания возникновения и виды представительства
  4. 1. Виды субъектов авторского права и его возникновение
  5. § 3. Виды денежных обязательств и основания их возникновения (п. 2003-2008)
  6. ПЕРЕИМЕНОВАНИЕ АКТУАЛЬНОГО СИГНАЛА
  7. 2. Способы (виды) отказа от наследства
  8. 2. Виды гражданско-правовых способов защиты вещных прав
  9. 4. Возникновение деликтного обязательства. Понятие генерального деликта
  10. §45. ОБЯЗАТЕЛЬСТВО: ПОНЯТИЕ, ОСНОВАНИЯ ВОЗНИКНОВЕНИЯ, СТОРОНЫ
  11. § 1. Понятие и условия возникновения обязательств вследствие неосновательного обогащения
  12. § 1. Понятие и условия возникновения обязательств вследствие причинения вреда
  13. § 1. Понятие и гражданско-правовые способы защиты вещных прав
  14. § 1. Понятие, сущность и значение способов обеспечения исполнения обязательств
  15. Статья 509. Понятие обязательства и основания его возникновения
  16. 9. ЗАЩИТА ГРАЖДАНСКИХ ПРАВ: ПОНЯТИЕ, ФОРМЫ И СПОСОБЫ
  17. Прекращение обязательств: понятие, основания, способы
  18. Тема 3. Понятие и виды гражданских правоотношений
  19. Понятие и способы обеспечения обязательств (общая характеристика)