Скачать 1.73 Mb.
|
Поддержка сегментированной модели памяти Дескрипторные таблицы Микропроцессор аппаратно поддерживает три типа дескрипторных таблиц:
1. Таблица GDT (Global Descriptor Table) — глобальная дескрипторная таблица. Это основная общесистемная таблица, к которой допускается обращение со стороны программ, обладающих достаточными привилегиями. Расположение таблицы GDT в памяти произвольно; оно локализуется с помощью специального регистра gdtr (48 бит). В таблице GDT могут содержаться следующие типы дескрипторов:
2. Таблица LDT (Local Descriptor Table) — локальная дескрипторная таблица. Для любой задачи в системе может быть создана своя дескрипторная таблица подобно общесистемной GDT. Для связи между таблицами GDT и LDT в таблице GDT создается дескриптор, описывающий область памяти, в которой находится LDT. Расположение таблицы LDT в памяти также произвольно и локализуется с помощью специального регистра ldtr (16 бит). В таблице LDT могут содержаться следующие типы дескрипторов:
3. Таблица IDT (Interrupt Descriptor Table) — дескрипторная таблица прерываний. Данная таблица также является общесистемной и содержит дескрипторы специального типа, которые определяют местоположение программ обработчиков всех видов прерываний. В качестве аналогии можно привести таблицу векторов прерываний реального режима. Расположение таблицы IDT в памяти произвольно и локализуется с помощью специального регистра idtr (48 бит). Элементы данной таблицы называются шлюзами. Отметим, что эти шлюзы бывают трех типов:
Каждая из дескрипторных таблиц может содержать до 8192 (213) дескрипторов. Формат селектора сегмента В защищенном режиме иначе интерпретируется содержимое сегментных регистров. Теперь в них содержатся не адреса начала сегмента, а номер соответствующего сегмента (индекс, или селектор) в таблице дескрипторов сегментов. Поэтому теперь сегментные регистры называются селекторами сегментов. Каждый регистр разбивается на три поля:
Формат дескриптора сегмента Каждый сегмент описывается соответствующим дескриптором сегмента. Структурно дескриптор сегмента представляет собой 8-байтовую структуру. И состоит из следующих полей:
Обратим внимание на следующее
дело в том, что защищенный режим впервые появился в микропроцессоре i80286. Этот микропроцессор имел 24-разрядную адресную шину и, соответственно, мог адресовать в защищенном режиме до 16 Мбайт оперативной памяти. Для этого ему достаточно было иметь в дескрипторе поле базового адреса 24 бита и поле размера сегмента 16 бит. После появления микропроцессора i80386 с 32-разрядной шиной команд и данных в целях совместимости программ разработчики не стали изменять формат дескриптора, а просто использовали свободные поля. Внутри микропроцессора эти поля объединены. Внешне же они остались разделены, и при программировании с этим приходится мириться.
Как это возможно, если суммарный размер поля размера сегмента всего 20 бит, что соответствует величине 1 Мбайт? Секрет скрыт в поле гранулярности — бит G. Если бит G=0, то значение в поле размера сегмента означает размер сегмента в байтах, а если G=1, то в страницах. Размер страницы составляет 4 Кбайт. Нетрудно подсчитать, что когда максимальное значение поля размера сегмента составляет Ofrfffh, то это соответствует 1 М страниц, что и соответствует величине 1 М * 4 Кб = 4 Гб. Таким образом, первый тип защиты - по уровню доступа - реализуется в защищенном режиме благодаря тому, что информация о базовом адресе сегмента и его размере выведена на уровень микропроцессора Þ это позволяет аппаратно контролировать работу программ с памятью и предотвращать обращения по несуществующим адресам либо по адресам, находящимся вне предела, разрешенного полем размера сегмента (limit). Другой тип защиты - по привилегиям - заключается в том, что сегменты неравноправны в правах доступа к ним. Суть этого механизма защиты по привилегиям заключается в том, что конкретный сегмент может находиться на одном из четырех уровней привилегированности с номерами 0, 1, 2 и 3. Самым привилегированным является уровень 0. Существует ряд ограничений на взаимодействие сегментов с различными уровнями привилегий. Информация о правах доступа к сегменту содержится в специальном байте AR дескриптора. Формат байта AR дескриптора сегмента Номер бита в Символическое Назначение и содержимое байте AR обозначение О А Бит доступа (Accessed) к сегменту. Устанавливается аппаратно при обращении к сегменту 1 R Для сегментов кода — это бит доступа по чтению (Readable); определяет, возможно ли чтение из сегмента кода при осуществлении замены префикса сегмента: О — чтение из сегмента запрещено; 1 — чтение из сегмента разрешено W Для сегментов данных — это бит записи: О — модификация данных в сегменте запрещена; 1 — модификация данных в сегменте разрешена 2 С Для сегментов кода — это бит подчинения (Conforming): 1 — подчиненный сегмент кода; О — обычный сегмент кода; ED Для многозадачного режима определяет особенности смены значения текущего уровня привилегий. Для сегментов данных — это бит расширения вниз (Expand Down); служит для различения сегментов стека и данных, а также определяет трактовку поля limit: О — сегмент данных; 1 — сегмент стека 3 I Бит предназначения (Intending): О — сегмент данных или стека; 1 — сегмент кода 4 S Если S-1 — то это бит сегмента (Segment). Для любых сегментов в памяти равен 1. Назначение и порядок использования сегмента уточняется битами С и R; если = 0 — то это бит системный (System). Такое состояние бита S говорит о том, что данный дескриптор описывает специальный системный объект, который может и не быть сегментом в памяти 5...6 dpl Поле уровня привилегий сегмента (Descriptor Privilege Level). Содержит численное значение в диапазоне от О до 3 привилегированности сегмента 7 Р Бит присутствия (Present): О — сегмента нет в оперативной памяти в данный момент; 1 — сегмент находится в оперативной памяти в данный момент Наиболее важные поля байта AR — это
Поле dpl — часть механизма защиты по привилегиям. Содержит значение 0.. 3 привилегированности сегмента. Тип сегмента определяется тремя битами. Это поле определяет целевое назначение сегмента. Рассмотрим назначение некоторых комбинаций этих битов. Комбинации битов Назначение сегмента 000 Сегмент данных, только для чтения 001 Сегмент данных с разрешением чтения и записи 010 Не определена 011 Сегмент стека с разрешением чтения и записи 100 Сегмент кода с разрешением только выполнения 101 Сегмент кода с разрешением выполнения и чтения из него 110 Подчиненный сегмент кода с разрешением выполнения 111 Подчиненный сегмент кода с разрешением выполнения и чтения из него Замечание. Возможны два принципиально разных вида сегментов: данных и кода. Сегмент стека является разновидностью сегмента данных, но с особой трактовкой поля размера сегмента. Это объясняется спецификой использования стека (он растет в направлении младших адресов памяти). Таким образом, видно, что поле типа ограничивает использование объявленных сегментов. В частности, программные сегменты не могут быть модифицированы без применения специальных приемов. Доступ к сегменту данных также может быть ограничен только на чтение. Поддержка страничной модели памяти Вспомним, при страничной организации ОП делится на блоки (страницы) фиксированного размера 4 Кб (число, кратное степени двойки, Þ операции сложения можно заменить на операции конкатенации). Диспетчер памяти для каждой страницы формирует соответствующий дескриптор. Дескрипторы страниц собираются в таблицы. Таблицы страниц Есть два типа таблиц страниц:
Каждая таблица состоит из 1024 (2**10) элементов. Элементами таблиц являются дескрипторы страниц. Размер одного дескриптора - 4б. Þ Þ для хранения одной таблицы необходима одна страница памяти. Говорят, что осуществляется двухшаговая страничная трансляция адресов. Рассмотрим составляющие этого механизма. Для текущей задачи создается одна таблица PDE и одна или более страниц PTE. Все страницы текущей задачи описаны в таблицах страниц PTE - page table entry. Одна таблица PTE состоит из 1024 (2**10) элементов - дескрипторов страниц Þ одна таблица страниц описывает пространство памяти в 4 Мб. Если задаче недостаточно памяти в 4 МБ, создается несколько таблиц PTE. Пусть текущая задача использует 50 Мб памяти (например, графический редактор) Þ для описания этой памяти надо иметь 14 таблиц PTE. Для таблиц PTE текущей задачи создается таблица PDE. В ней каждый дескриптор указывает местонахождение одной таблицы PTE. Таблица PDE также состоит из 1024 (2**10) элементов. (Остальные дескрипторы не используются.) Обратим внимание, что для описания 50 Мб памяти одной задачи требуется 15 страниц = 60Кб памяти (такие потери считаются приемлемыми). Формат дескриптора страницы Каждая страница описывается дескриптором (32 бита). Старшие 20 битов - номер страницы. По существу, это адрес страницы, т.к. приписывание в качестве младших разрядов 12 нулей приводит к получению начального адреса страницы; ! Количество битов, отводимое под номер страницы, определяет объем возможной ОП, которой может пользоваться программа.
Остальные биты
Переход микропроцессора в защищенный режим Вспомним кратко процесс загрузки ОС и подчеркнем момент перехода в защищенный режим. Сразу после включения питания или нажатия кнопки сброса микропроцессор начинает свою работу в реальном режиме. В этом режиме он производит действия по тестированию аппаратуры компьютера. После успешного завершения тестирования микропроцессор выполняет начальную загрузку системы, используя программу начальной загрузки, хранящейся на нулевой дорожке диска. Программа начальной загрузки считывает с диска программу инициализации операционной системы и передает ей управление. Действие этой программы зависит от того, в каком режиме работы микропроцессора будет осуществляться дальнейшее функционирование системы. Если в реальном режиме, то операционная система формирует среду и структуры данных для работы в этом режиме. Если же загружаемая операционная система собирается дальше работать в защищенном режиме, то она должна в него специальным образом перейти. Но прежде чем сделать это, операционная система формирует системные структуры данных (в частности, рассмотренные нами дескрипторные таблицы) для работы в защищенном режиме. Затем может быть осуществлен переход в защищенный режим и выполнение дальнейших действий. Лекция №12 |
Техническое задание на разработку программного обеспечения, используемого... Государственное образовательное учреждение высшего профессионального образования Академия народного хозяйства |
Инструкция по установке программного обеспечения ас «Поликлиника» «Поликлиника» поставляется в виде исполняемых модулей и дополнительного программного обеспечения сторонних производителей на компакт-диске.... |
||
Программа дисциплины «Системное программное обеспечение» для специальности... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные... |
Программа дисциплины «Системное программное обеспечение» для специальности... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные... |
||
Программа дисциплины «Системное программное обеспечение» для специальности... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные... |
Инструкция программное обеспечение для лазерного гравера Qualitech rdca 0 Система управления лазерным гравером включает в себя материнскую плату, lcd дисплей и программное обеспечение. Данная инструкция... |
||
1. Коммерческие условия поставки программного обеспечения Программное обеспечение Adobe, графические и видео редакторы, издательские системы, средства web-разработки 6 |
1. Коммерческие условия поставки программного обеспечения Программное обеспечение Adobe, графические и видео редакторы, издательские системы, средства web-разработки 7 |
||
Техническое задание Предмет закупки: продление лицензий Программное обеспечение для защиты рабочих мест пользователей от вредоносного программного обеспечения |
Лекция 1 Молчанов А. Ю. Системное программное обеспечение. Лабораторный практикум: – спб.: Питер, 2005. – 284 с |
||
Вопросы для подготовки к экзамену по профессиональному модулю пм.... Дисциплины: мдк. 09. 01 Установка и настройка системного программного обеспечения компьютерных систем и комплексов |
2 2 Ключевые вопросы сопровождения программного обеспечения 152 Программная инженерия и сущность инженерного подхода к созданию программного обеспечения 9 |
||
Задачах программирования лабораторный практикум по дисциплине «Системное... Методические указания предназначены для подготовки дипломированных специалистов направления 230100 «Информатика и вычислительная... |
Порядок действий при утрате/повреждении ключа шифрования программного обеспечения ViPNet Client Рением «. dst») программного обеспечения ViPNet Client производится в случае утраты ключевого носителя с записанным ключом шифрования... |
||
Методические рекомендации по выполнению внеаудиторной самостоятельной... ПМ. 01 Разработка программных модулей программного обеспечения для компьютерных систем |
Расчетов за услуги связи «Fastcom» версия 12 Руководство системного... Бпо – Базовое программное обеспечение программное обеспечение фирмы oracle, необходимое для функционирования ппо |
Поиск |