Читайте также: |
|
Операционная среда, создаваемая ядром 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-08-18; просмотров: 74 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Process Control Block и контекст процесса | | | Неименованные программные каналы |