- •Лекция 1. Программное обеспечение эвм. Основные термины и определения. Состав программного обеспечения. Операционные системы. Управляющие и обрабатывающие программы
- •Утилиты
- •Лекция 2. Назначение, основные функции ос эвм. Основные принципы построения ос. Типы операционных систем
- •Классификация ос
- •Особенности алгоритмов управления ресурсами
- •Поддержка многозадачности
- •Поддержка многопользовательского режима
- •Вытесняющая и невытесняющая многозадачность
- •Многопроцессорная обработка
- •Особенности аппаратных платформ
- •Особенности областей использования
- •Особенности методов построения
- •Лекция 3. Концептуальные основы ос. Процесс. Подсистема управления процессами. Механизм диспетчирования
- •Механизм диспетчирования
- •Лекция 4. Концептуальные основы ос. Ресурс. Дисциплины распределения ресурсов, используемые в ос. Концепция прерывания
- •Концепция прерываний
- •Ядро Операционной Системы
- •Лекция 5. Средства, механизмы, подсистемы ос. Подсистема управления вводом-выводом. Подсистема управления данными
- •Подсистемы
- •Лекция 6. Механизмы управления процессами. Средства взаимодействия параллельных процессов. Задачи синхронизации. Семафорная техника синхронизации и упорядочения процессов
- •Механизмы синхронизации в операционной системе Windows
- •Лекция 7. Организация оперативной памяти. Структура, основные понятия и принципы виртуализации памяти. Основы логической организации виртуальной оперативной памяти Функции ос по управлению памятью
- •Статическая настройка адресов
- •Динамическая настройка адресов
- •Типы виртуальной памяти
- •Лекция 8. Организация виртуальной оперативной памяти. Задачи управления виртуальной памятью: размещение, перемещение, преобразование адресов, замещение
- •Страничное распределение
- •Сегментное распределение
- •Сегментно-страничное распределение
- •Разделяемые сегменты памяти
- •Литература
- •Содержание
Концепция прерываний
Большинство изменений в ОС происходит в результате прерываний, которые вызывают процессы в ОС. Можно сказать, что программы обработки прерываний представляют собой движущую силу, обеспечивающую функционирование всех систем. Иногда говорят, что ОС является управляемой по прерываниям.
Прерывания - механизм, позволяющий организовать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора. Структуры прерываний зависят, прежде всего, от аппаратной архитектуры, но имеют нечто общее - прерывание непременно влечет за собой изменение порядка выполнения команд процессором.
Прерывания делятся на три категории:
внешние аппаратные прерывания, происходящие в результате событий, которые осуществляются вне процессора (например, нажатие клавиши);
внутренние аппаратные, вырабатываемые самим процессором;
программные прерывания, инициируемые выполняемой программой по специальной команде, чтобы получить сервисные услуги ОС.
Второй тип прерываний можем разделить на следующие:
ошибка процессора (деление на 0, несовпадение четности и т.д.);
ошибка адресации, т.е. фиксируется недопустимый адрес (недопустимым адресом считается либо несуществующий, либо меньший минимального значения, хранящегося в базовом регистре);
прерывания от каналов ввода-вывода.
Механизмы прерывания являются предметом ожесточенных споров между разработчиками аппаратуры и программного обеспечения. Первые, естественно, требуют более простые схемы.
Можно организовать различные схемы структур прерываний.
Во-первых, вместо области сохранения можно предусмотреть группы регистров для хранения сразу нескольких векторов состояния.
Во-вторых, каждому типу прерываний можно присваивать определенный приоритет, и группе регистров векторов состояний ставить в соответствие множество областей сохранения. При возникновении прерывания, имеющего определенный приоритет, информация будет помещаться только в отвечающую данному приоритету область сохранения.
Применяется также система масок прерываний, обрабатываемых некоторыми специальными командами.
И наконец, можно рассматривать большее число классов прерываний.
Основным механизмом функционирования MS DOS является система прерываний.
Каждое прерывание имеет уникальный номер, и с ним связана определенная подпрограмма. Когда вызывается прерывание, процессор останавливает свою работу и выполняет прерывание. Затем загружается адрес программы обработки прерывания и ей передается управление. После окончания её работы управление передается основной программе, которая была прервана.
В технической литературе и книгах по программированию прерыванием принято называть не сам процесс кратковременного останова выполнения текущей программы, а процедуру обработки такого процесса.
В IBM-совместимом компьютере имеется 256 различных прерываний с номерами от 0 до OFFH (номера представлены в виде шестнадцатеричных цифр). В самом начале адресного пространства памяти машины расположена таблица адресов прерываний. Каждый из этих адресов указывает на процедуру в памяти, которая будет исполнена в результате возникновения прерывания. Адреса программ прерываний чаще называют векторами. Каждый вектор прерывания имеет длину 4 байта. Таким образом, вектора располагаются в памяти компьютера с адреса 0 до 3FFH. При возникновении любого прерывания, значения регистра флагов процессора и текущее значение счетчика команд CS:IP автоматически сохраняются в стеке, прерывания временно запрещаются и выполняется переход по вектору прерывания.
Векторная система прерываний обеспечивает большую гибкость: программист всегда имеет возможность переключить любое прерывание на свою процедуру. Для этого необходимо только изменить в памяти соответствующий вектор так, чтобы он на нее указывал. Это называется перехватом прерывания.
Аппаратные прерывания относятся к прерываниям низшего уровня, им присвоены младшие номера, и обслуживает их базовая система ввода-вывода.
Логические и программные прерывания относят к верхнему уровню, они имеют большие номера, и их обслуживает в основном базовый модуль DOS.
