Глава 12 Обработка сигналов

Глава 12

Обработка сигналов

Сигналы — это простейшая форма межпроцессного взаимодействия в мире POSIX. Они позволят одному процессу быть прерванным асинхронным образом по инициативе другого процесса (или ядра) для того, чтобы обработать какое-то событие. Обработав сигнал, прерванный процесс может продолжить выполнение с точки прерывания. Сигналы используются для решения таких задач, как завершение процессов и сообщения демонам о необходимости перечитать конфигурационный файл.

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

• Уничтожение одного из дочерних процессов.

• Установка предупреждений устаревшим процессам.

• Изменение размеров окна терминала.

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

• Проигнорировать сигнал.

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

• Позволить ядру выполнить действие по умолчанию, которое зависит от конкретного полученного сигнала.

Концептуально это довольно просто. Однако история развития средств работы с сигналами видна, когда вы сравните различные интерфейсы сигналов, которые поддерживаются различными реализациями Unix. BSD, System V и System 3 поддерживают различные и несовместимые программные интерфейсы сигналов. POSIX определил стандарт, теперь поддерживаемый почти всеми версиями Unix (включая Linux), который был тогда расширен для обработки новой семантики сигнала (вроде формирования очереди сигналов) как части определения сигнала в режиме реального времени POSIX (POSIX Real Time Signal). В этой главе обсуждается исходное выполнение сигналов Unix перед объяснением основ программного интерфейса POSIX и их расширений Real Time Signal, поскольку появление многих возможностей POSIX API было мотивировано недостатками в более ранних реализациях системы сигналов.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Глава 18. Обработка

Из книги Секреты сканирования на ПК автора Леонтьев Б К

Глава 18. Обработка Затем OCR-система анализирует (определяет блоки распознавания, выделяет в тексте строки и отдельные символы) изображение и начинает распознавать каждый его символ.Целостное целенаправленное адаптивное распознаваниеРаспознавание печатного материала


7.2.1 Обработка сигналов

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

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


19.7.9. Обработка сигналов и протоколирование

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

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


ГЛАВА 4 Обработка исключений

Из книги Системное программирование в среде Windows автора Харт Джонсон М

ГЛАВА 4 Обработка исключений Основное внимание в данной главе сфокусировано на структурной обработке исключений (Structured Exception Handling, SEH), но наряду с этим обсуждены также обработчики управляющих сигналов консоли и векторная обработка исключений (Vectored Exception Handling, VEH).SEH


15.1.3. Обработка сигналов управления заданиями

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

15.1.3. Обработка сигналов управления заданиями Хотя многие приложения можно останавливать и перезапускать без побочных эффектов, другим процессам требуется обрабатывать состояния останова и запуска. Например, большинству редакторов необходимо модифицировать параметры


Глава 12 Многопоточная обработка

Из книги C++. Сборник рецептов автора Диггинс Кристофер

Глава 12 Многопоточная обработка 12.0. Введение В данной главе даются рецепты написания многопоточных программ на C++ с использованием библиотеки Boost Threads, автором которой является Вильям Кемпф (William Kempf). Boost — это набор переносимых, высокопроизводительных библиотек с


8.7. Обработка сигналов и протоколирование

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

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


23.3.4. Обработка сигналов

Из книги Компьютерная обработка звука автора Загуменнов Александр Петрович

23.3.4. Обработка сигналов Перед тем, как перейти к следующему пункту, нужно еще раз рассмотреть функцию gtk_signal_connect(). Данной функции нужно передать четыре параметра:? GtkObject *object — объект, которому может быть послан сигнал;? const gchar *name — имя сигнала, например, «destroy»;? GtkSignalFunc func


Глава 1 Обработка аудиозаписей

Из книги Как заработать на фотографии в Интернете автора Зьомко Ольга

Глава 1 Обработка аудиозаписей Программы, предназначенные для обработки аудиозаписей, как правило, имеют сходный пользовательский интерфейс. На экране мы видим волновую форму сигнала в графическом представлении: по вертикали – амплитуда, по горизонтали – время. Изгибы


Глава 10 Обработка

Из книги Linux программирование в примерах автора Роббинс Арнольд

Глава 10 Обработка Сделан последний кадр, съемка окончена, под рукой имеется подходящий для работы компьютер со всеми установленными на него необходимыми приложениями, и вы уже готовы к покорению пикселов. Подробному процессу компьютерной обработки фотографий и прочих


4.5.1. Обработка сигналов

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

4.5.1. Обработка сигналов Предположим, что многопотоковая программа принимает сигнал. В каком потоке будет вызван обработчик сигнала? Это зависит от версии UNIX. В Linux поведение программы объясняется тем. что потоки на самом деле реализуются в виде процессов.Каждый поток в Linux


5.8. Обработка сигналов POSIX

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

5.8. Обработка сигналов POSIX Сигнал — это уведомление процесса о том, что произошло некое событие. Иногда сигналы называют программными прерываниями (software interrupts). Подразумевается, что процесс не знает заранее о том, когда придет сигнал.Сигналы могут посылаться в следующих


Глава 7. Обработка событий

Из книги автора

Глава 7. Обработка событий События генерируются оконной системой или Qt в ответ на различные действия. Когда пользователь нажимает или отпускает клавишу или кнопку мышки, генерируется событие клавиши клавиатуры или кнопки мышки; когда окно впервые выводится на экран,


Глава 18. Многопоточная обработка

Из книги автора

Глава 18. Многопоточная обработка Обычные приложения с графическим интерфейсом имеют один поток (thread) выполнения и производят в каждый момент времени одну операцию. Если пользователь через интерфейс пользователя вызывает продолжительную операцию, интерфейс, как