Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_лекции.doc
Скачиваний:
2
Добавлен:
15.04.2019
Размер:
370.69 Кб
Скачать

Обработка прерываний в защищенном режиме

Также как и в реальном режиме, в защищенном режиме м/п обрабатывает прерывания, которые подразделяются на 3 класса:

  1. внешние (аппаратные), которые вырабатываются аппаратурой или внешними устройствами. Часть аппаратных прерываний может временно запрещаться или маскироваться. Для этого используется флаг IF в регистре флагов (1 – прерывания разрешены, 0 – запрещены). Изменяются флаги команд: STI, CLI.

  2. Исключающие. Вырабатываются самим м/п при возникновении особых ситуаций в выполняемой программе (деление на 0, переполнение). В защищенном режиме добавляется отсутствующая страница в памяти и т д. Флаг IF на исключения не работает.

  3. Программные. Вырабатываются с помощью команд Int n (n – номер прерывания).эВсе прерывания и исключения пронумерованы от 0 до 31. Каждому обрабатываемому в системе прерыванию назначается свой обработчик прерывания. ОС вызывает этот обработчик (программу) в случае возникновения прерывания.

В реальном режиме в младших адресах ОП располагаются так называемые вектора прерываний. (рис)

Каждый вектор содержит 2 16р слова: CS - содержимое регистра сегментов, задающий адрес сегмента и IP – смещение от начала ??? сегмента до точки входа в обработчик.

Обработчик прерывания в реальном режиме: сохранение текущей выполняемой программы:

  1. IPt – в стек CSt FLAGSt

  2. IR<-IPk CS<-CSk

  3. Передается управление по адресу CS:IP - ???

Каждая обрабатываемая команда должна завершать свою работу командой IRET:

  1. 1) IP ^

2) CS^

3) FLAGS

2. CS:IP<-продолжаются выполняться действия прерванной выполняемой программы.

Вектора прерываний в защищенном режиме хранятся в специальной таблице дескрипторов IDT. Эта таблица содержит шлюзы прерываний или исключений, причем 0й дескриптор содержит шлюз 1 – 1го прерывания. Номер дескриптора в этой таблице соответствует номеру прерывания. Шлюз прерывания используется для запуска ??? в режиме запрещенных прерываний. Шлюз исключений вызывает обработчик прерывания в режиме с разрешенными прерываниями. Сам обработчик может прерываться другими прерываниями. Адрес таблицы IDT задается: (рис)

Кэширование в м/п Intel

Для слаженной работы в скоростях между процессором и памятью используют быстродействующую память – кэш-память. В Intel используется 4 уровня кэширования:

    1. скрытые регистры

    2. буфер ассоциативной памяти

    3. внутренний кэш м/п

    4. внешний кэш м/п

(рис)

1. С каждым сегментным регистром связан 64р регистр, в котором хранится дескриптор сегментов, селектор которого расположен в сегментном регистре ??? Они называются скрытыми, т к их видит только м/п.

При 1м обращении к сегментному регистру???, селектор которого находится в сегментном регистре, выполняется полный алгоритм трансляции виртуального адреса. Т е осуществляется просмотр всех таблиц до нахождения нужного дескриптора, потом он копируется в соответствующий скрытый регистр и сохраняется там до тех пор, пока содержимое сегментного регистра не будет изменено, т е пока не изменится селектор. Все последующие обращения к селектору уже не используют весь алгоритм трансляции, а непосредственно работают с дескриптором – в скрытом режиме. Это увеличивает скорость трансляции виртуального адреса.

2. Следующий уровень кэширования работает при страничной организации памяти и используется для хранения физических адресов нескольких наиболее часто используемых страниц. Этот 2й уровень называется буфером ассоциативной памяти TLB и в этом буфере хранятся следующие пары: (рис)

Под логическим номером страницы понимается 20 бит старшего разряда линейного адреса (рис)

  1. внутренний кэш м/п L1. Этот называется внутренним потому, что он расположен внутри м/п и в зависимости от модели м/п имеет размер от 10-в до 100-н Кб. В этом кэше (буфере) м/п временно хранит команды и данные перед их использованием в качестве операнда или команд.

  2. внешний кэш м/п L2. Этот кэш расположен на системной плате и его объем в зависимости от модели от нескольких 100-н Кб до нескольких Мб. Этот кэш также используется для промежуточного хранения команд и данных.

Взаимодействие кэшей различных уровней осуществляется по следующей схеме: (рис)