Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Сигналы. Операционная среда, создаваемая ядром Unix, имитирует для каждого процесса систему прерываний



Операционная среда, создаваемая ядром Unix, имитирует для каждого процесса систему прерываний.

Сигналы Unix – средство, с помощью которого ядро или какой-либо процесс могут уведомлять определенный процесс о наступлении того или иного события. Получив сигнал, процесс обязан предпринять соответствующие действия. (В некотором смысле сигналы соответствуют прерываниям в MS-DOS).

К типичным событиям, которые могут заставить процесс принять сигнал, относятся:

·аппаратные прерывания, например ввод с клавиатуры или поступления данных с последовательного порта;

·нарушение нормального выполнения программы;

·тайм-аут;

·сбой оборудования;

·попытка выполнить недопустимую команду;

выход из порожденного процесса.

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

Ряд сигналов нельзя перехватить; они обрабатываются стандартными программами (обычно это приводит к прекращению выполнения процесса, принявшего сигнал). В различных версиях Unix определены 30-40 сигналов. Некоторые из этих сигналов приводятся ниже.

  SIGHUP Ситуация, аналогичная прерыванию соединения или остановке процесса
  SIGINT Сигнал прерывания
  SIGQUIT Сигнал завершения работы
  SIGILL Недопустимая команда
  SIGTRAP Останов в контрольной точке в процессе отладки
  SIGFPE Исключительная ситуация при обработке данных с плавающей точкой
  SIGKILL Удаление процесса (перехватить или игнорировать невозможно)
  SIGBUS Ошибка обмена с шиной данных процессора
  SIGSYS Неправильный аргумент при системном вызове
  SIGALRM Сигнал «будильника»
  SIGTERM Завершение программы
  SIGUSR1 Пользовательский сигнал 1
  SIGUSR2 Пользовательский сигнал 1
  SIGPWR Сбой питания/перезапуск

Сигналы могут вырабатываться синхронно, т.е. как результат работы самого процесса, а могут быть направлены процессу другим процессом, т.е. вырабатываться асинхронно.

Синхронные сигналы чаще всего приходят от системы прерываний процесса и свидетельствуют о действиях процесса, блокируемых аппаратурой (сигналы 4-8, 10, 11).

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

Стандартная реакция на сигнал предусматривает завершение процесса, которому предназначался сигнал.





Дата публикования: 2015-10-09; Прочитано: 190 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...