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

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

Примером асинхронного сигнала является сигнал с терминала. Во многих ОС предусматривается оперативное снятие процесса с выполнения. Для этого пользователь может нажать некоторую комбинацию клавиш (Ctrl+C, Ctrl+Break), в результате чего ОС вырабатывает сигнал и направляет его активному процессу. Сигнал может поступить в любой момент выполнения процесса (то есть он является асинхронным), требуя от процесса немедленного завершения работы. В дан­ном случае реакцией на сигнал является безусловное завершение процесса.

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

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

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

Вопросы для самопроверки

80. Какова главная задача подсистемы управления процессами?

81. Могут ли потоки одного процесса принадлежать разным приложениям?

82. Какие задачи, связанные с планированием потоков, решает ОС?

83. При каких условиях алгоритм квантования вырождается в алгоритм последовательной обработки?

84. Какие классы приоритетов определены в ОС Windows NT?

Контрольные вопросы

85. Какие термины ОС используются для обозначения единицы работы вычислительной системы?

86. Назовите отличия в организации вычислительного процесса потоков от процессов.

87. Дайте определение дескриптора процесса.

88. Что такое «контекст процесса»?

89. Назовите команду, с помощью которой в ОС UNIX происходит порождение процессов.

90. Назовите основные состояния потоков.

91. Какие алгоритмы планирования потоков Вам известны?

92. Чем различаются вытесняющий и невытесняющий алгоритмы планирования?

93. Укажите основную суть концепции квантования.

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

95. Кто может выступать в качестве инициатора изменения приоритета потока?

96. Какие разновидности приоритетного планирования Вам из-вестны?

97. В чем отличие абсолютных и относительных приоритетов?

98. Какая зависимость (прямая или обратная) между квантом и приоритетом реализована в ОС UNIX System?

99. Какую роль выполняет сигнал в ОС?



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: