Реализация виртуальной памяти в защищенном режиме работы процессора

Понятие и назначение, принцип работы аппаратных средств поддержки мультипрограммирования. Механизмы распределения памяти. Специфика работы средств сегментации при отключенном механизме управления страницами. Двухуровневая схема адресации страниц.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 03.10.2010
Размер файла 13,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Реализация виртуальной памяти в защищенном режиме работы процессора

1. Общие принципы работы

Аппаратные средства поддержки мультипрограммирования имеются во всех современных процессорах. Несмотря на различия в реализации, для большинства типов процессоров эти средства имеют общие черты. Это относится к популярному семейству процессоров Intel: от 80386 до Pentium IV. Поэтому далее будем использовать обобщенный термин «процессоры Pentium».

Процессор Pentium имеет два режима работы:

? реальный;

? защищенный.

В реальном режиме процессор Pentium работает как быстрый процессор 8086 с несколько расширенным набором команд. В защищенном режиме процессор Pentium может использовать все механизмы 32-х разрядной организации памяти, в том числе механизмы поддержки виртуальной памяти и механизмы переключения задач. Основным режимом является защищенный режим, при котором используются два механизма распределения памяти:

? сегментный;

? страничный.

Физическое адресное пространство процессора Pentium составляет 4 Гбайта, что определяется 32-разрядной шиной адреса. Физическая память является линейной с адресами от 0000000016 до FFFFFFFF16. Виртуальный адрес, используемый в программе, представляет собой пару - номер сегмента и смещение внутри сегмента.

В защищенном режиме может быть определено до 213 сегментов. Так как каждый сегмент может иметь размер до 4 Гбайт, максимальный размер виртуального адресного пространства составляет 64 Тбайт.

Поэтому каждому процессу выделяется виртуальное адресное пространство в 4 Гбайт:

? нижние 2 Гбайт доступны для процесса,

? верхние 2 Гбайт отображаются на память ядра.

В Windows Advanced server и Datacenter server процесс может использовать до 3 Гбайт.

Страницы имеют фиксированный размер и подгружаются по требованию.

Белым цветом на рис. 1 изображена область приватных данных процесса. Затененные области представляют собой память, совместно используемую всеми процессами. Нижние и верхние 64 Кбайт каждого виртуального адресного пространства в обычном состоянии не отображаются на физическую память. Это делается преднамеренно, чтобы облегчить перехват программных ошибок. Недействительные указатели часто имеют значение 0 или -1, и попытки их использования в системе Windows вызовут немедленное прерывание вместо чтения или, что еще хуже, записи слова по неверному адресу.

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

Средства сегментации образуют верхний уровень средств управления виртуальной памятью процессора Pentium, а средства страничной организации - нижний уровень.

Средства страничной организации могут быть как включены, так и выключены, и в зависимости от этого изменяется смысл преобразования виртуального адреса, которое выполняют средства сегментации.

2. Сегментный механизм

Сначала рассмотрим случай работы средств сегментации при отключенном механизме управления страницами.

Таким образом, при работе процессора Pentium в сегментном режиме в распоряжении программиста имеется виртуальное адресное пространство, представляемое совокупностью сегментов.

Каждый сегмент описывается 8-байтной структурой данных - дескриптором сегмента. Он содержит все характеристики сегмента, необходимые для проверки правильности доступа к нему.

Основные поля дескриптора следующие.

1. База - базовый адрес сегмента, разделен на три части из-за совместимости с i286, в котором это поле имеет только 24 бита.

2. Размер - размер сегмента, разнесен на две части.

3. G - единица измерения размера сегмента. Если G = 0, то размер задан в байтах и тогда сегмент не может быть больше 64 Кбайт. Если G = 1, то размер измеряется в страницах по 4 Кбайт.

4. Байт доступа. Содержит информацию, которая используется для принятия решения о возможности или невозможности обращения к данному сегменту и состоит:

a. Бит P - бит присутствия. Определяет, находится ли соответствующий сегмент в данный момент в памяти или он выгружен на диск.

b. Поле DPL содержит данные об уровне привилегий, необходимом для доступа к сегменту.

c. Остальные пять бит зависят от типа сегмента и определяют способ, которым можно использовать данный сегмент.

Различают три типа сегментов:

1. Сегмент данных.

2. Кодовый сегмент.

3. Системный сегмент

Поле типа сегмента, которое в свою очередь делится на несколько полей. Поле S определяет, является ли сегмент системным или пользовательским. В свою очередь пользовательские сегменты делятся на сегменты данных и сегменты кода. Для сегмента данных определяются однобитные поля:

ED - направления распространения сегмента,

W - поле разрешения записи в сегмент,

A - поле доступа к сегменту.

Для сегмента кода используются однобитные признаки:

A - имеет смысл, аналогичный полю A сегмента данных,

R - разрешает или запрещает чтение из кодового сегмента,

C - бит подчинения, разрешает или запрещает вызов данного кодового сегмента из другого кодового сегмента с более низкими правами доступа.

Дескрипторы сегментов объединяются в таблицы. Для управления памятью процессор Pentium поддерживает два типа таблиц сегментов:

1. Глобальная таблица дескрипторов. Глобальная таблица предназначена для описания сегментов операционной системы и сегментов межзадачного взаимодействия, то есть сегментов, которые в принципе могут использоваться всеми процессами.

2. Локальная таблица дескрипторов. Локальная таблица предназначена для описания сегментов отдельных задач. Таблица GDT одна, а таблиц LDT должно быть столько, сколько в системе выполняется задач. При этом активной в каждый момент времени может быть только одна из таблиц LDT.

Таким образом GDT описывает общую часть виртуального адресного пространства процессов, а LDT - индивидуальную часть для каждого процесса.

В каждый момент времени в специальных регистрах GDTR и LDTR хранится информация о местоположении и размерах глобальной таблицы GDT и активной таблицы LDT соответственно.

Для того, чтобы процессор смог найти в физической памяти таблицу

Регистр GDTR содержит 32-битный физический адрес начала сегмента GDT, а также размер 16-битный размер этого сегмента.

Для указания конкретного сегмента используется 16-битный селектор. Он является индексом внутри таблицы дескрипторов. Младшие 2 бита селектора определяют номер привилегированного режима, который может воспользоваться данным селектором для доступа к дескриптору, третий бит определяет локальную  супервизор

A - признак того, был ли доступ к странице,

D - признак модификации содержимого страницы,

PWT и PCD - управляют механизмом кэширования страниц,

AVL - резерв для нужд операционной системы.

При небольшом размере страницы процессора Pentium относительно размеров адресных пространств, таблица страниц должна занимать в памяти весьма значительное место - 4 байта * 1 Мбайт = 4 Мбайта.

Это слишком много, поэтому в процессоре Pentium используется деление всей таблицы страниц на разделы по 1024 дескриптора. Размер раздела выбран так, чтобы один раздел занимал одну физическую страницу. Всего получается 1024 раздела.

Для того, чтобы не хранить все разделы таблицы страниц одновременно в физической памяти, используется каталог разделов таблицы страниц, который использует такие же по структуре дескрипторы страниц, что и в таблице страниц. Поэтому для хранения информации о дескрипторах 1024 разделов необходима память 4 Кбайт, т.е. одна физическая страница. Совокупность дескрипторов, описывающих состояние и характеристики виртуальных страниц разделов таблицы страниц, называется каталогом разделов или таблиц. Виртуальная страница, хранящая содержимое каталога, всегда находится в физической памяти, и номер ее физической страницы указан в специальном управляющем регистре CR3 процессора.

Таким образом, при доступе к странице в процессоре используется двухуровневая схема адресации страниц, что замедляет преобразование, но позволяет использовать страничный механизм и для хранения самой таблицы страниц, и существенно уменьшить объем физической памяти для ее хранения. Для ускорения страничных преобразований в блоке управления страницами используется ассоциативная память, в которой кэшируется 32 комбинации «номер виртуальной страницы - номер физической страницы».

Эта специальная кэш-память значительно ускоряет преобразование адресов, так как в случае попадания в кэш длительный процесс, описанный выше, исключается.


Подобные документы

  • Распределение виртуальной памяти. Страничная и сегментная организации виртуальной памяти. Сегментно-страничная организация виртуальной памяти. Преобразование виртуального адреса в физический. Упрощение адресации памяти клиентским программным обеспечением.

    курсовая работа [440,7 K], добавлен 04.03.2014

  • Архитектура компьютеров и возможности операционной системы по управлению памятью. Суть концепции виртуальной памяти. Аппаратно-независимые и аппаратно-зависимые средства управления виртуальной памятью. Сегментно-страничная организации виртуальной памяти.

    презентация [355,2 K], добавлен 27.12.2010

  • Параллельная вычислительная система кластерной архитектуры. Реализация виртуальной машины в рамках физической. Схема внутренних сетей. Конкретная схема адресации. Общий обзор порядка установки и работы МВС-900. Автоматические запуск и завершение работы.

    практическая работа [116,3 K], добавлен 28.06.2009

  • Схема распределения памяти, соответствующая пользовательской трактовке распределения памяти. Перемещение с помощью таблицы сегментов. Аппаратная поддержка сегментного распределения памяти. Сегментно-страничная организация памяти с двухуровневой схемой.

    лекция [1,5 M], добавлен 24.01.2014

  • Классификация компьютерной памяти. Использование оперативной, статической и динамической оперативной памяти. Принцип работы DDR SDRAM. Форматирование магнитных дисков. Основная проблема синхронизации. Теория вычислительных процессов. Адресация памяти.

    курсовая работа [1,5 M], добавлен 28.05.2016

  • Принцип работы процессора (одномагистральная структура). Временные диаграммы, описывающие выполнение микроопераций для каждой команды. Структурная схема управляющего автомата на основе памяти с одним полем адреса. Описание процессора на языке Active VHDL.

    курсовая работа [621,0 K], добавлен 24.09.2010

  • Формы организации сетевых служб в системе VMware. Назначение MAC-адресов для виртуальных компьютеров. Установка средств сетевой поддержки. Способы создания виртуальной сети на изолированном компьютере. Принцип установки средств сетевой поддержки.

    отчет по практике [3,5 M], добавлен 03.02.2011

  • Понятие виртуальной памяти, ее реализация. Особенности страничной организации по требованию. Этапы обработки ситуации отсутствия страницы в памяти. Стратегии (алгоритмы) замещения страниц. Особенности некоторых операционных систем: Windows NT и Solaris.

    презентация [2,2 M], добавлен 24.01.2014

  • Описание нового вида памяти, в которой данные записываются по всему объему памяти при помощи различных углов наклона лазера. Техническое описание принципа работы голографической памяти. Основные части, обеспечивающие голографическое хранение информации.

    курсовая работа [3,1 M], добавлен 17.01.2010

  • Типовая структура ПЭВМ. Основные элементы системного блока персонального компьютера, их функциональное назначение. Управление обменом информации. Назначение оперативной памяти ПК, схема и принцип работы. Основные характеристики микросхем памяти.

    презентация [1,6 M], добавлен 01.05.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.