- •Архитектура операционной системы
- •1. Монолитные системы
- •2. Многоуровневые системы
- •3. Виртуальные машины
- •Архитектура, основанная на ядре
- •Режим ядра и пользовательский режим
- •Типовые средства аппаратной поддержки ос
- •Машинно-зависимые компоненты ос
- •Микроядерная архитектура
- •Процессы и потоки
- •Реализация процессов
- •Назначение потоков
- •Реализация потоков
- •Планирование Процессов
- •Пример 1. Планирование в Windows 2000
- •Пример 2. Планирование в unix
- •Цели планирования
- •Схемы планирования
- •Взаимодействие процессов и потоков
- •Состояние состязания
- •Критические области
- •Взаимоисключение с активным ожиданием
- •Семафоры
- •Мьютексы
- •Мониторы
- •Взаимные блокировки
- •Основные направления решения проблемы тупиков
- •Предотвращение тупиков
- •Обнаружение тупика
- •Восстановление после тупика
- •Организация мультизадачности ос
- •Опрос (проверка флагов)
- •Исключения
- •Прерывания
- •Классификация прерываний
- •3 Класса прерываний:
- •Механизм прерываний
- •Приоритеты прерываний
- •Организация памяти
- •Функции ос по управлению памятью
- •Стратегии управления памятью
- •Фрагментация памяти
- •Способы борьбы с фрагментацией:
- •Типы адресов памяти
- •Учет свободных и занятых областей памяти
- •Учет памяти с помощью битовых карт
- •Учет памяти с помощью связных списков
- •Виртуальная память
- •Файлы подкачки
- •Вопросы по модулю №1
Механизм прерываний
Механизм прерываний реализуется аппаратно-программными средствами. Структуры системы прерываний зависят от аппаратной архитектуры
Существует два способа реализации прерывания:
векторный (vectored) При векторном прерывании шина сообщает процессору начальный адрес обработчика прерывания и приоритет. Пример: шина VMEbus.
опрашиваемый (polled) шина выставляет информацию только об уровне приоритета прерывания. В этом случае процессор должен сам определить, какое именно устройство (из тех, что имеют такой уровень приоритета) запросило прерывание. Примеры: ISA, EISA, PCI, Sbus
ISA (Industry Standard Architecture) - архитектура, получившая статус промышленного стандарта. Пропускная способность - до 5,5 Мбайт/с.
EISA (Extended ISA) – архитектура, отличающийся от ISA увеличенным разъемом и увеличенной производительностью до 32 Мбайт/с.
PCI (Peripheral Component Interconnect — стандарт подключения внешних компонентов) - Поддерживает частоту до 66 МГц и обеспечивает производительность 264 Мбайт/с для 32-разрядных данных.
Если устройство использует векторные прерывания, то ему назначается вектор прерываний. Это электрический сигнал, несущий информацию о закрепленном за устройством номере. По этому номеру идентифицируется обработчик прерываний от данного устройства. Пример шины подключения внешних устройств, которая поддерживает векторные прерывания – это шина VMEbus.
При использовании опрашиваемых прерываний процессор получает от системной шины только информацию об уровне приоритета прерывания. С каждым уровнем приоритета может быть связано несколько устройств. При возникновении прерывания процессор должен определить, какое именно устройство (из тех, что имеют такой уровень приоритета) запросило прерывание. Для этого процессор опрашивает все обработчики прерываний для данного уровня приоритета, пока один из обработчиков не подтвердит, что прерывание пришло из обслуживаемого им устройства. Опрашиваемые прерывания поддерживают шины ISA, EISA, PCI, Sbus.
Некоторые аппаратные платформы сочетают оба типа прерываний.
Последовательность действий процессора при обработке прерывания:
Если прерывание разрешено (оно не маскировано и приоритет выше, чем процессора (в слове состояния процессора)).
Останавливает процесс и записывает его дескриптор и контекст.
Запрашивает код (или причину) прерывания у источника (шина или активный процесс) прерывания.
Вычисляет адрес ячейки, хранящей вектор прерывания (при опрашиваемом способе) (вектор - адреса обработчиков прерывания).
Считывает из ОП и записывает в регистры (в регистры FL, CS, IP и т. д.) вектор прерывания и его атрибуты.
Гасит (устанавливает в 0) флаги прерывания (IF) и трассировки (TF) (для новых прерываний).
Выполняет обработчик прерывания.
Выполняет процедуру RTI (Return from Interrupt) – восстановление данных для продолжения прерванной команды.
Возвращает управление прерванной программе.
1 – 4 шаги реализуются аппаратно, а 5 – 8 программно.
кратко:
Распознавание прерывания.
Выполнение обработчика прерывания.
Возврат к прерванной программе.