Основы операционной системы UNIX

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

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

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

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

 

Таблица 4.1 - Основные сигналы

СигналСтандартная обработкаЗначениеSIGTERM 15Завершение процессаСтандартный сигнал, посылаемый для остановки процесса.SIGHUP 1Завершение процессаОтключился терминал (или закрыто терминальное окно). Сигнал посылается всем не фоновым процессам, связанным с соответствующей терминальной линией.SIGKILL 9Завершение процессаНе перехватываемый сигнал, позволяющий завершить любой процесс.SIGILL 4Завершение процесса и сброс образа памятиНа центральный процессор была послана запрещенная инструкция. Это могло быть следствием недопустимого перехода в машинном коде программы, например, попытки выполнить строку данных.SIGTRAP 5Завершение процесса и сброс образа памятиБыла установлена ловушка точки прерывания процесса. Этим управляет системный вызов ptrace, который полезен для отладки.SIGFPE 8Завершение процесса и сброс образа памятиБыла попытка выполнить запрещенную арифметическую операцию, например, взятие логарифма отрицательного числа или деление на 0.SIGBUS 10Завершение процесса и сброс образа памятиОшибка на шине ввода-вывода. Обычно это является результатом попытки выполнить чтение или запись вне границ памяти программы.SIGSEGV 11Завершение процесса и сброс образа памятиЭто нарушение сегментации - проклятие разработчиков программ! Оно означает, что вы попытались получить доступ к сегменту памяти запрещенным образом. Может быть, это было присваивание значения части сегмента кода или чтение из нулевого адреса.SIGPIPE 13Завершение процессаПрограмма попыталась выполнить чтение или запись в программный канал, другой конец которого уже завершил работу. Этот сигнал помогает завершить работу конвейера, когда одна из его команд дала сбой.SIGALRM 14Завершение процессаПрограммист может установить будильник, чтобы позволить вам в определенный момент времени выполнить какое-нибудь действие.SIGCHLD 18ИгнорируетсяСначала это был сигнал завершения работы дочернего процесса, но сейчас он означает изменение состояния дочернего процесса.SIGTSTP 24Остановка процессаЭто запрос от терминала на остановку процесса. Посылка этого сигнала процессу происходит при нажатии комбинации клавиш Ctrl-Z.SIGCONT 25ИгнорируетсяЭтот сигнал указывает процессу на возобновление его работы. Процессу посылается либо команда fg, либо bg, а командный интерпретатор выполняет внутренний системный вызов wait для привилегированного процесса, либо не выполняет его для фонового процесса.