Книга: Архитектура операционной системы UNIX
1.5.1 Прерывания и особые ситуации
1.5.1 Прерывания и особые ситуации
Система UNIX позволяет таким устройства, как внешние устройства ввода-вывода и системные часы, асинхронно прерывать работу центрального процессора. По получении сигнала прерывания ядро операционной системы сохраняет свой текущий контекст (застывший образ выполняемого процесса), устанавливает причину прерывания и обрабатывает прерывание. После того, как прерывание будет обработано ядром, прерванный контекст восстановится и работа продолжится так, как будто ничего не случилось. Устройствам обычно приписываются приоритеты в соответствии с очередностью обработки прерываний. В процессе обработки прерываний ядро учитывает их приоритеты и блокирует обслуживание прерывания с низким приоритетом на время обработки прерывания с более высоким приоритетом.
Особые ситуации связаны с возникновением незапланированных событий, вызванных процессом, таких как недопустимая адресация, задание привилегированных команд, деление на ноль и т. д. Они отличаются от прерываний, которые вызываются событиями, внешними по отношению к процессу. Особые ситуации возникают прямо «посредине» выполнения команды, и система, обработав особую ситуацию, пытается перезапустить команду; считается, что прерывания возникают между выполнением двух команд, при этом система после обработки прерывания продолжает выполнение процесса уже начиная со следующей команды. Для обработки прерываний и особых ситуаций в системе UNIX используется один и тот же механизм.
- Особые состояния
- 6.4.1 Прерывания и особые ситуации
- Особые ситуации
- 11.2. Технология принятия решения в условиях чрезвычайной ситуации
- 12.8. Сервисы и прерывания BIOS
- Подпрограмма обработки прерывания
- 4.2.6. Способы задавания ролей и ситуации в ролевой игре
- 6 Раздражающие прерывания
- 10.6.6. Создание возможности для прерывания функций: siginterrupt()
- 12.6.3. Особые файлы
- Подсистема прерывания контроллера msCAN12.
- Глава 6 Прерывания и обработка прерываний