Слайд 2
Раздел 1. Общие понятия
1-1. Понятие операционной системы
«Операционная система» - это комплекс программ,
управляющих работой вычислительной системы (компьютера)
Операционная система базируется на особенностях архитектуры процессора – «аппаратной платформе», то есть является аппаратно-зависимой программой.
Развитие операционных систем - всегда следствие развития архитектуры процессоров
Слайд 3Задачи операционной системы
Операционная система автономного компьютера решает две основные задачи:
управление исполнением
программ процессором («организация вычислительного процесса»)
управление ресурсами вычислительной системы
Ресурс - любой объект вычислительной системы (программный или аппаратный), который выделяется исполняемой программе.
Слайд 5
«Операционная среда» представляет вычислительную систему для пользователя и программ в «абстрактном»
виде
«Системный сервис ОС» –набор программных функций (сервисов), предназначенный для прикладных программ. В основном, обслуживают запросы программ на обращение к ресурсам.
Набор всех системных функций ОС и правил их вызова программами называют API (application program interface)- интерфейс для прикладных программ в данной ОС.
Слайд 61-2. Система прерываний
Управление исполнением программ и управление системными ресурсами в операционной системе
основано на механизме прерываний.
Система прерываний – это аппаратно-программный механизм в вычислительной системе, заставляющий процессор начать исполнять некую программу ОС («процедуру прерывания») в ответ на внешние или внутренние события («источники прерываний»)
Типы прерываний: внешние, системные, программные
Слайд 7Типы прерываний в вычислительной системе
Внешние прерывания
Сигналы прерываний от
внешних устройств
(IRQ- Interrupt Request) поступают в
контроллер прерываний.
КП программируется
на определенную схему
приоритетов прерываний.
Наиболее приоритетный
запрос из КП поступает на вход прерывания INTR процессора
Слайд 8Маскируемые и немаскируемые внешние прерывания
Прерывания, поступающие с контроллера на вход INTR процессора,
называют «маскируемые».
Их можно программно разрешить/запретить с помощью флага IF (команда STI – установить флаг, команда CLI- сбросить флаг)
«Немаскируемые» – прерывания, поступающие на особый вход прерывания NMI процессора (non-masked interrupt). Эти прерывания невозможно программно запретить.
Слайд 9
2. Системные прерывания - внутренние прерывания, генерируемые самим процессором, в ответ
на обнаруженные им событиях при чтении команды из памяти, ее дешифрации или исполнении.
Например: несуществующий адрес памяти, неправильный код операции, попытка деления на ноль в команде деления и т.д.
3. Программные прерывания - создаются командой INT n из исполняемой программы
Слайд 10Обязанности ОС в системе прерываний
За каждым источником прерывания в системе закрепить номер
прерывания.
Разместить в памяти процедуры («обработчики прерывания») для каждого источника прерывания
Создать в памяти Таблицу прерываний с адресами (сегмент: внутрисегментный адрес) «обработчиков прерываний».
Замечание:
Процессор всегда знает адрес размещения Таблицы прерываний в памяти. В зависимости от режима работы процессора – этот адрес фиксирован или занесен в определенный регистр процессора.
Слайд 11Таблица прерываний для реального режима процессора
(16-разрядные обработчики прерываний)
Таблица состоит из 4-байтовых
элементов (векторов).
Один вектор содержит адрес одной процедуры: указатель сегмента (2 байта) и внутрисегментное смещение (2 байта).
Номер прерывания в команде INT – это номер вектора, с адресом процедуры (0, 1, 2, ….n)
Пример:
Слайд 12Работа процессора при поступлении прерывания
Принять по ШД от контроллера прерываний n-номер
прерывания (только для внешних прерываний)
Сохранить в стеке CS:IP и текущее состояние регистров процессора
Вычислить адрес нужного вектора Таблицы прерываний:
адрес Таблицы прерываний + n * 4
(4 байта -размер вектора для 16-разр.программ)
Прочитать в регистры CS и IP значения «сегмент» и «смещение» из вектора прерывания. Так, процессор начнет исполнение процедуры обработки прерывания
Последняя команда процедуры – IRET заставит процессор восстановить из стека в CS и IP адрес возврата, в регистры – их прежнее состояние. Так, продолжится выполнение прерванной программы