- •5. Способы адресации в пэвм с 32-разрядной архитектурой
- •9. Эффект гонок в микропрограммных автоматах и способы его устранения
- •17. Сегментация микропрограмм
- •18. Назначение, основные характеристики и функции систем прерывания программ
- •19. Запоминание состояния, переход к прерывающей программе и возврат из нее
- •20. Приоритетное обслуживание прерываний
- •22. Сравнение систем прерываний ес эвм и пэвм
- •23. Классификация систем памяти (см. Пособие Память эвм)
- •24. Сегментная адресация памяти
- •25. Страничная адресация памяти
- •26. Защита памяти
- •27. Защищенный режим в пэвм
- •28. Алгоритмы замещения информации в основной памяти
- •29. Алгоритмы управления очередностью обмена с внешними зу (см. Пособие Память эвм)
- •30. Принципы построения систем ввода-вывода в эвм
- •31. Организация интерфейсов ввода-вывода (должно дорабатываться)
- •32. Программное управление вводом-выводом
- •33. Передача данных с прямым доступом к памяти
- •34. Структура эвм Единой Системы и см эвм
- •35. Основные типы микропроцессоров. Структура микроЭвм
- •36. Совмещение во времени выполнения нескольких команд программы
- •37. Суперскалярная и пакетно-сетевая архитектуры процессоров пэвм
- •38. Процессоры с risc-архитектурой и эвм, управляемые потоками данных
- •39. Гиперпоточная архитектура в пэвм и архитектура эвм с большой длиной командного слова
- •40. Классификация вычислительных систем
27. Защищенный режим в пэвм
Защищенный режим является основным для ПЭВМ и используется для реализации многопрограммной (многозадачной) работы ПЭВМ. Основным ресурсом, защищаемом в этом режиме является память отдельных программ.
В защищенном режиме программа оперирует с адресами, относящимися к некоторому абстрактному адресному пространству, называемому виртуальным. Расположение адресов такого пространства в памяти ПЭВМ может изменяться в процессе работы программы. Размер виртуального адресного пространства программы в архитектуре IA-32 может достигать 64 Тбайт. (Это обеспечивается разбиением памяти на сегменты, размер которых может достигать 4 Гб, а самих сегментов может быть до 16K.)
Очевидно, что в настоящее время далеко не каждая ПЭВМ обладает даже суммарно такой емкостью запоминающих устройств, а тем более емкостью оперативной памяти, поэтому это пространство и называют виртуальным.
Переключить процессор в защищенный режим можно установкой в “1” младшего бита управляющего регистра CR0. Переключиться в реальный режим можно сбросом этого бита в нуль или общим сбросом процессора сигналом RESET.
Защита программ в защищенном режиме основывается на следующих механизмах: сегментации памяти, системе привилегий и выделении привилегированных команд, которые реализуются за счет:
возможности использования программой только тех сегментов памяти, которые занесены в локальную и глобальную таблицы дескрипторов (LDTиGDT) при соответствующем типе (чтение / запись) доступа к этим сегментам;
проверкой привилегий при доступе к сегментам;
возможностью выполнения привилегированных команд при определенных уровнях текущей привилегии CPL(currentprivilege) и привилегии ввода-выводаIOPL(input-outputprivilege– 13 и 14 разряды регистра флагов).
В защищенном режиме используется система привилегий, включающая 4 уровня привилегий, пронумерованных от 0 (высший уровень) до 3. Привилегии управляют выполнением привилегированных команд и доступом к памяти через систему сегментирования.
Атрибуты привилегий, присваиваются задачам, дескрипторам сегментов и селекторам сегментов.
Привилегии задачопределяют порядок выполнения команд и использование дескрипторов.
Уровень привилегии задачи (CPL) определяется состоянием двух младших разрядов регистраCS. Уровень привилегии может измениться только при передаче управления новому сегменту (команд).
Начальная привилегия задачи при передаче ей управления определяется селектором кодового сегмента в TSS(сегменте состояния задачи).
Задача с нулевым уровнем привилегии имеет доступ ко всем сегмента GDTи обеспечивает выполнение всех команд.
Привилегии дескрипторазадаются разрядамиDPLбайта управления доступом, определяющими низший уровень привилегий задачи, при котором возможен доступ к сегменту. ПриDPL= 0 доступ к сегменту допускается только для задач сCPL= 0. ПриDPL= 3 к сегменту имеют доступ все задачи (если это сегмент, дескриптор которого размещен вGDT).
Привилегии селекторазадаются полемRPL(requestedprivilege– запрашиваемая привилегия), расположенным в двух младших разрядах селектора.RPLиспользуется как дополнительный ограничитель права доступа, поскольку при доступе к сегменту проверяется эффективная привилегияEPL=max(CLP,RPL), т.е. берется низший из двух уровней. Очевидно, чтоRPL= 0 не накладывает дополнительных ограничений наCPL.
Доступ к сегментам проверяется при выполнении команд, загружающих селекторы в регистры SS,DS,ES,FS,GS. Для получения доступа привилегияEPLдолжна быть не ниже (численно – не больше) привилегииDPLдескриптора сегмента.
При доступе с подчиненному сегменту кода, доступному только для чтения – это правило может быть нарушено (т.е. подчиненный кодовый сегмент может иметь более высокую привилегию).
При передаче управления проверяется селектор, загружаемый в CS. Тип нового дескриптора должен соответствовать команде перехода:
JMPилиCALLмогут вызывать подчиненный сегмент сDPLCPL, либо неподчиненный сегмент сDPL=CPL;
прерывания могут передать правление сегменту кода (возможно и с более высокой) только через вентили с более низкой или равной привилегией
возврат и переключение задач может передать управление только сегменту кода с более низкой или равной привилегией
При вводе-выводе проверяется возможность выполнения команд ввода/вывода и управление флагом прерываний IF. Эти действия разрешаются приCPLIOPL(более высокой привилегии CPL).
Если CPL>IOPL, то команды ввода-вывода могут выполняться только для портов, у которых в карте разрешения ввода-вывода вTSSустановлены нулевые значения битов.
Изменить значение привилегии IOPLможно только приCPL= 0.
Состояние программы (задачи) отображается управляющими регистрами (CR0 –CR4), регистром флагов и сегментом состояния задачиTSS.
CR0 содержит информацию о состоянии процессора, а также биты управления кэшем и страничным механизмом (расширяющие прежний регистр слова состояния процессораMSW: разрешение защиты -PE, мониторинг сопроцессора -MP, эмуляция сопроцессора -EM, переключение задач –TS, запрет сквозной записи кэша –NW, включение страничной адресации -PGи др.); CR1 – не используется,CR2 – указывает на адрес последнего страничного сбоя,CR3 – содержит базовый адрес таблицы каталога страниц и два бита для управления кэшированием,CR4 – указывает архитектурные расширения процессора (показаны не все возможные флаги расширения).
Сегмент TSSсодержит состояние регистров процессора, карту ввода вывода и обратную ссылку на селектор задачи, вызвавшей данную задачу.