757.25K
Category: softwaresoftware

Диспетчеризация прерываний в ОС

1.

Сро на тему
“Диспетчеризация прерываний в
ОС.”
Выполнили студенты группы ВТПОу – 22 – 2:
Байбеков А. С.
Адильжанов А. Д.

2.

Содержание:
1. Введение
2. Что такое прерывание?
3. Назначение диспетчера прерываний
4. Процесс диспетчеризации прерываний
5. Типы прерываний
6. Обработка прерываний на уровне аппаратуры
7. Обработка прерываний на уровне ядра
8. Обработка прерываний на уровне приложений
9. Примеры использования прерываний в OC

3.

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

4.

Что такое прерывание?
Прерывание – это сигнал, который возникает в процессоре, когда
происходит событие, требующее немедленной реакции.
Прерывания могут возникать как на уровне аппаратуры, так и на
уровне программного обеспечения.
Назначение диспетчера прерываний
Диспетчер прерываний отвечает за управление переключением
между обработкой прерываний и выполнением обычных задач.
Его главной задачей является обработка прерываний, а также
управление их приоритетами.

5.

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

6.

Типы прерываний
Существует несколько типов прерываний, которые могут возникать в компьютерной системе.
Рассмотрим наиболее распространенные типы прерываний:
1. Программные прерывания: это прерывания, которые генерируются программным
обеспечением, включая операционную систему и приложения. Эти прерывания могут возникать
при выполнении определенных инструкций, вызова системных функций или ошибок в работе
приложений.
2. Аппаратные прерывания: это прерывания, которые возникают в аппаратной части
компьютера, включая устройства ввода-вывода, процессор, память и т.Д. Эти прерывания могут
возникать при завершении операций ввода-вывода, ошибок в работе аппаратуры или изменении
состояния устройств.
3. Внешние прерывания: это прерывания, которые возникают из-за действий пользователя или
внешних устройств, таких как клавиатура, мышь, сканер и т.Д. Эти прерывания могут возникать
при нажатии клавиш, движении мыши, подключении нового устройства и т.Д.

7.

4. Системные прерывания: это прерывания, которые используются операционной
системой для выполнения служебных задач, таких как обновление времени,
управление памятью и т.д. Эти прерывания могут возникать автоматически и не
зависят от действий пользователя.
5. Таймерные прерывания: это прерывания, которые возникают из-за истечения
определенного времени. Эти прерывания могут использоваться для выполнения
периодических задач, таких как проверка почты или обновление информации на
экране.
Критические прерывания: это прерывания, которые возникают в случае сбоев в
работе компьютерной системы, таких как ошибки в работе аппаратуры или
программного обеспечения. Эти прерывания требуют немедленной реакции и
могут привести к остановке работы системы, если не будут обработаны
правильно.

8.

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

9.

Обработка прерываний на уровне ядра
Обработка прерываний на уровне ядра операционной системы является следующим
этапом в цепочке обработки прерываний. Когда процессор получает сигнал о
прерывании на уровне аппаратуры, он передает управление ядру операционной
системы для обработки.
Обработка прерываний на уровне ядра включает несколько шагов:
1. Прерывание попадает в вектор прерываний ядра. Вектор прерываний - это
таблица в ядре, которая содержит адреса обработчиков прерываний для каждого
типа прерываний.
2. Ядро операционной системы выбирает подходящий обработчик прерываний из
вектора прерываний на основе типа прерывания.
3. Ядро сохраняет текущее состояние процесса, который был прерван, в структуру
данных, называемую контекстом процесса.

10.

4. Ядро выполняет обработчик прерывания, который может включать
выполнение различных задач, таких как чтение или запись данных, проверка
ошибок или отправка команды на другое устройство.
5. После завершения обработки прерывания ядро восстанавливает контекст
процесса и возобновляет работу остановленного процесса.
Обработка прерываний на уровне ядра операционной системы обеспечивает
более сложную логику обработки, чем на уровне аппаратуры, и позволяет
выполнять различные задачи в ответ на прерывания. Кроме того, ядро
операционной системы может решать проблемы конфликтов между
устройствами, управлять доступом к разделяемым ресурсам и обеспечивать
безопасность системы.

11.

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

12.

Примеры использования прерываний в OC
В операционных системах существует несколько типов прерываний, которые могут
быть использованы для обработки различных типов событий. Некоторые примеры
прерываний в ОС включают в себя:
1. Прерывания от устройств ввода-вывода (I/O interrupts) - эти прерывания
возникают, когда устройство ввода-вывода завершает операцию ввода или вывода.
Например, когда данные будут записаны на жесткий диск или когда данные будут
прочитаны с сетевого устройства.
2. Прерывания от программного обеспечения (software interrupts) - эти прерывания
возникают, когда программное обеспечение запрашивает определенные услуги или
ресурсы, например, доступ к файлам или памяти.
3. Прерывания таймера (timer interrupts) - эти прерывания возникают, когда таймер
достигает заданного значения времени. Например, таймер может быть настроен на
генерацию прерывания каждую секунду.

13.

4. Прерывания аппаратного обеспечения (hardware interrupts) - эти прерывания
возникают, когда происходит сбой в работе аппаратного обеспечения, например,
ошибка чтения из памяти или исключение деления на ноль.
5. Прерывания системных вызовов (system call interrupts) - эти прерывания
возникают, когда процесс запрашивает доступ к ядру операционной системы, чтобы
выполнить операцию, например, создать файл или выделить память.
6. Прерывания ошибок (error interrupts) - эти прерывания возникают, когда
происходит критическая ошибка, такая как ошибка чтения из неправильного адреса
памяти или переполнение буфера.
В целом, использование прерываний в операционных системах позволяет
обеспечивать более высокую производительность и функциональность, позволяя
системе быстро и эффективно реагировать на различные типы событий.
English     Русский Rules