- •Системное программное обеспечение
- •Основные понятия теории операционных систем
- •Прерывания
- •Классификация операционных систем
- •Архитектура аппаратных и программных средств персонального компьютера
- •Регистры микропроцессоров Intel 8086/88
- •Формирование физического адреса
- •Прерывания
- •Особенности архитектуры микропроцессоров i80x86
- •Реальный и защищенный режимы работы процессора
- •Новые системные регистры микропроцессоров i80х86
- •Адресация в 32-разрядных микропроцессорах i80х86 при работе в защищенном режиме
- •Система прерываний 32-разрядных микропроцессоров i80х86
- •Управление задачами в операционных системах
- •Планирование процессов и диспетчеризация задач
- •Стратегии планирования (диспетчеризации)
- •Дисциплины диспетчеризации
- •Диспетчеризация задач с использованием динамических приоритетов
- •Управление памятью в операционных системах
- •Память и отображение, виртуальное адресное пространство
- •Простое непрерывное распределение и распределение с перекрытием
- •Распределение статическими и динамическими разделами
- •Разрывные методы распределения памяти
- •Распределение оперативной памяти в современных ос для пк
- •Управление вводом/выводом в операционных системах
- •Основные системные таблицы ввода-вывода
- •Файловая система
- •Структура магнитного диска
- •Файловая система fat
- •Файловая система ntfs
- •Структура тома с файловой системой ntfs
- •Основные отличия fat от ntfs
- •Управление параллельными взаимодействующими вычислительными процессами
- •Использование блокировки памяти при синхронизации параллельных процессов.
- •Синхронизация процессов посредством операции «проверка и установка»
- •Семафорные примитивы Дейкстры
- •Мониторы Хоара
- •Почтовые ящики
- •Конвейеры (программные каналы)
- •Очереди сообщений
- •Проблема тупиков и методы борьбы с ними
- •Предотвращение тупиков
- •Обход тупиков
- •Распознавание тупика
- •Современные операционные системы
- •Семейство операционных систем unix
- •Основные понятия системы unix
- •Функционирование системы unix
- •Файловая система
- •Межпроцессорные коммуникации
-
Система прерываний 32-разрядных микропроцессоров i80х86
В реальном режиме работы система прерываний работает так же, как и для 16-разрядного микропроцессора i8086/8088. Имеется 16 линий запросов на прерывания (IRQ – Interrupt ReQuest), реализуемых с помощью двух контроллеров прерываний i8259A, соединенных каскадным образом.
Линии IRQ:
-
1 – контроллер клавиатуры;
-
3 – COM2;
-
4 – COM1;
-
6 – контроллер FDD;
-
8 – часы реального времени с автономным питанием;
-
12 – контроллер мыши типа PS/2;
-
13 – математический сопроцессор;
-
14 – контроллер IDE (первый канал);
-
15 – контроллер IDE (второй канал);
-
16 – Intel (R) 82801DB/DBM USB Universal Host Controller – 24C2 ;
-
17 – SoundMax Integrated Digital Audio;
-
18 – Intel (R) 82801DB/DBM USB Universal Host Controller – 24C7;
-
19 – Intel (R) 82801DB/DBM USB Universal Host Controller – 24C4;
-
20 – ASUSTeK/Broadcom 440x10/100 Int…
-
22 – Microsoft ASPI – Compliant System
-
23 – Intel PCI to USB enhanced Host Controller
В защищенном режиме система прерываний действует совершенно иначе. Вместо таблицы векторов используется таблица дескрипторов прерываний IDT. Здесь хранятся не адреса обработчиков прерываний ISR, а специальные системные структуры данных, доступ к которым пользовательским программам запрещен. Каждый элемент в таблице дескрипторов прерываний имеет 8-байтовую структуру и может принадлежать к одному из трех типов:
-
Коммутатор прерывания;
-
Коммутатор перехвата;
-
Коммутатор задачи.
При обнаружении запроса на прерывание и при условии, что прерывания сейчас разрешены, процессор действует в зависимости от типа дескриптора, соответствующего номеру прерывания. Первые два типа дескриптора прерываний вызывают переход на соответствующие сегменты кода, принадлежащие виртуальному адресному пространству текущего вычислительного процесса. Последний тип дескриптора вызывает полное переключение процессора на новую задачу.
Рассмотрим обработку прерываний в контексте текущей задачи. После анализа дескриптора процессор выполняет следующие действия:
-
В стек на уровне привилегий текущего сегмента кода помещаются:
-
значения SS и SP, если уровень привилегий в коммутаторе выше уровня привилегий ранее исполнявшегося кода;
-
регистр флагов EFLAGS;
-
регистры CS и IP.
-
Если тип дескриптора – коммутатор прерывания, то другие прерывания запрещаются, если – коммутатор перехвата, новые прерывания на период обработки текущего прерывания не запрещаются;
-
Поле селектора из дескриптора прерываний используется для индексирования таблицы дескрипторов задачи. Дескриптор сегмента заносится в теневой регистр, а смещение относительно начала нового сегмента определяется полем смещения из дескриптора прерывания.
Совершенно иначе обрабатываются прерывания, если дескриптор является коммутатором задачи. В этом случае происходит полное переключение на новую задачу, при этом сохраняются все регистры процессора.
В основном обработку прерываний осуществляют в контексте текущей задачи, так как это повышает быстродействие системы