- •11.Понятие многозадачности
- •12.Процессы и потоки. Понятия, связанные с процессами и потоками.
- •13.Алгоритмы планирования. Планирование в Windows.
- •14. Моменты перепланировки. Пример перепланировки в Windows.
- •15.Механизм прерываний в Windows, обработка прерываний, приоритеты прерываний
- •16.Синхронизация потоков. Способы синхронизации потоков.
- •17.Взаимоблокировки. Условия возникновения блокировок.
- •18.Взаимоблокировки. Варианты решения проблемы блокировок в ос
- •20.Адресация памяти. Виртуальное адресное пространство в Windows
- •19.Функции ос по управлению памятью. Типы систем управления памятью.
- •21.Реализация страничной виртуальной памяти
- •22. Управление памятью в Windows
- •Vad диапазон отображаемых адресов // файл подкачки// смещение в файле// режим доступа// каталог таблиц страниц//
- •23.Порядок доступа к памяти. Типы страничных прерываний
- •24.Рабочий набор процесса. Алгоритм замещения станиц в Windows
- •25.Управление физической памятью в Windows
14. Моменты перепланировки. Пример перепланировки в Windows.
Моменты перепланировки:
Для реализации алгоритма планирования ОС должна получать управление всякий раз, когда происходит событие, требующее перераспределения процессорного времени.
событие |
действия планировщика |
прерывание от таймера |
переводит активный поток в состояние готовности. Проводит перепланирование |
поток выполнил системный вызов, связанный с запросом на ввод-вывод или доступ к занятому ресурсу |
переводит активный поток в состояние ожидания. Проводит перепланирование
|
поток выполнил системный вызов, связанный с освобождением ресурса |
проверяет – не ожидает ли какой-нибудь поток этого ресурса. Если да, то переводит этот поток в состояние готовности. Проводит перепланирование. |
внешнее (аппаратное) прерывание сигнализирует о завершении операции вода вывода. |
переводит поток, ожидающий завершения ввода-вывода в состояние готовности. Проводит перепланирование. |
внутреннее прерывание сигнализирует об ошибке в выполнении текущего потока |
снимает текущий поток. Проводит перепланирование. |
Пример перепланировки
15.Механизм прерываний в Windows, обработка прерываний, приоритеты прерываний
Понятия прерываний:
Прерывания – ситуации, возникающие в системе асинхронно и вызывающие переключение процессора от выполнения текущей последовательности команд к выполнению процедуры – обработчика прерываний, а затем – возврат к выполнению основного потока.
Типы прерываний:
- внешние – аппаратные прерывания от контроллеров
-внутренние – исключения, возникающие в результате аварийных ситуаций при выполнении программ
- программные – при выполнении особой инструкции процессора для вызова обработчика прерываний
Прерывания обрабатываются обработчиками прерываний
- аппаратные – драйверами устройств
- исключения – специальными модулями ядра
-программные – модулями ОС, обслуживающими системные вызовы
Понятия прерываний:
Прерывания – ситуации, возникающие в системе асинхронно и вызывающие переключение процессора от выполнения текущей последовательности команд к выполнению процедуры – обработчика прерываний, а затем – возврат к выполнению основного потока.
Типы прерываний:
- внешние – аппаратные прерывания от контроллеров
-внутренние – исключения, возникающие в результате аварийных ситуаций при выполнении программ
-программные – при выполнении особой инструкции процессора для вызова обработчика прерываний
Прерывания обрабатываются обработчиками прерываний
-аппаратные – драйверами устройств
-исключения – специальными модулями ядра
- программные – модулями ОС, обслуживающими системные вызовы
Механизм прерываний:
Механизм прерываний основан на использовании сигналов IRQ (Interrupt Request)
Вектор прерываний – целое число (0..255), указывающее на одну из 256 программ – обработчиков прерываний, адреса
которых хранятся в таблице прерываний.
Общий
порядок обработки прерываний:
-При возникновении сигнала или условия прерывания производится распознавание типа прерывания
-Если прерывания данного типа в настоящий момент запрещены, то CPU продолжает выполнение команд.
-Если прерывания данного типа разрешены, то по таблице определяется адрес обработчика прерываний
-Сохраняется часть контекста активного потока (значение счетчика команд, слово состояния, регистры процессора)
-Загружается адрес обработчика прерывания
-Процессор переводится в привилегированный режим
-Временно запрещаются прерывания данного типа
-После завершения выполнения обработчика прерываний восстанавливается контекст текущего потока
-Снимается блокировка прерываний данного типа
Обработка прерываний в Windows:
Все источники прерываний делятся на классы, каждому из них назначается уровень запроса прерывания – Interrupt Request Level – IRQL
При поступлении сигнала запроса на прерывание вызывается диспетчер прерываний, который анализирует IRQL источника прерывания.
Если его IRQL<IRQL выполняющегося кода, то
-обслуживание запроса откладывается
-информация о запросе помещается в очередь запросов
-управление передается прерванному потоку
По завершению обработки высокоприоритетного потока диспетчер прерываний просматривает очередь отложенных запросов, выбирает запрос с максимальным IRQL и выполняет его.
Если IRQL поступившего прерывания больше IRQL выполняемого обработчика, то он вытесняется в очередь и управление передается новому обработчику прерываний.
Уровни IRQL в Windows:
Уровни планирования в Windows:
-уровень диспетчера прерываний
- уровень диспетчера потоков
высший (ошибка шины)
питание
межпроцессорн прерывание
таймер
устройство N
…
устройство 1
диспетчерский
АРС
