Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PO_PK_11-25.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
494 Кб
Скачать

14. Моменты перепланировки. Пример перепланировки в Windows.

Моменты перепланировки:

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

событие

действия планировщика

прерывание от таймера

переводит активный поток в состояние готовности. Проводит перепланирование

поток выполнил системный вызов, связанный с запросом на ввод-вывод или доступ к занятому ресурсу

переводит активный поток в состояние ожидания. Проводит перепланирование

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

проверяет – не ожидает ли какой-нибудь поток этого ресурса. Если да, то переводит этот поток в состояние готовности. Проводит перепланирование.

внешнее (аппаратное) прерывание сигнализирует о завершении операции вода вывода.

переводит поток, ожидающий завершения ввода-вывода в состояние готовности. Проводит перепланирование.

внутреннее прерывание сигнализирует об ошибке в выполнении текущего потока

снимает текущий поток. Проводит перепланирование.

Пример перепланировки

15.Механизм прерываний в Windows, обработка прерываний, приоритеты прерываний

Понятия прерываний:

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

Типы прерываний:

- внешние – аппаратные прерывания от контроллеров

-внутренние – исключения, возникающие в результате аварийных ситуаций при выполнении программ

- программные – при выполнении особой инструкции процессора для вызова обработчика прерываний

Прерывания обрабатываются обработчиками прерываний

- аппаратные – драйверами устройств

- исключения – специальными модулями ядра

-программные – модулями ОС, обслуживающими системные вызовы

Понятия прерываний:

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

Типы прерываний:

- внешние – аппаратные прерывания от контроллеров

-внутренние – исключения, возникающие в результате аварийных ситуаций при выполнении программ

-программные – при выполнении особой инструкции процессора для вызова обработчика прерываний

Прерывания обрабатываются обработчиками прерываний

-аппаратные – драйверами устройств

-исключения – специальными модулями ядра

- программные – модулями ОС, обслуживающими системные вызовы

Механизм прерываний:

Механизм прерываний основан на использовании сигналов IRQ (Interrupt Request)

Вектор прерываний – целое число (0..255), указывающее на одну из 256 программ – обработчиков прерываний, адреса

которых хранятся в таблице прерываний.

Общий порядок обработки прерываний:

-При возникновении сигнала или условия прерывания производится распознавание типа прерывания

-Если прерывания данного типа в настоящий момент запрещены, то CPU продолжает выполнение команд.

-Если прерывания данного типа разрешены, то по таблице определяется адрес обработчика прерываний

-Сохраняется часть контекста активного потока (значение счетчика команд, слово состояния, регистры процессора)

-Загружается адрес обработчика прерывания

-Процессор переводится в привилегированный режим

-Временно запрещаются прерывания данного типа

-После завершения выполнения обработчика прерываний восстанавливается контекст текущего потока

-Снимается блокировка прерываний данного типа

Обработка прерываний в Windows:

Все источники прерываний делятся на классы, каждому из них назначается уровень запроса прерывания – Interrupt Request LevelIRQL

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

Если его IRQL<IRQL выполняющегося кода, то

-обслуживание запроса откладывается

-информация о запросе помещается в очередь запросов

-управление передается прерванному потоку

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

Если IRQL поступившего прерывания больше IRQL выполняемого обработчика, то он вытесняется в очередь и управление передается новому обработчику прерываний.

Уровни IRQL в Windows:

Уровни планирования в Windows:

-уровень диспетчера прерываний

- уровень диспетчера потоков

высший (ошибка шины)

питание

межпроцессорн прерывание

таймер

устройство N

устройство 1

диспетчерский

АРС

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]