Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Сегментная модель (линейный адрес совпадает с физическим)

Читайте также:
  1. P.S. Не забудь поменять мои координаты в адресной книжке. До скорого.
  2. XIII. Электронные адреса
  3. А кто должен быть главным адресатом современной церковной миссии?
  4. Автор - Elena_K, Россия Адрес фанфика на Фикбуке: http://ficbook.net/readfic/1998725 Адрес фанфика на Проза.ру: http://www.proza.ru/2015/01/07/467
  5. Адреса и реквизиты Сторон
  6. АДРЕСА, РЕКВИЗИТЫ И ПОДПИСИ СТОРОН
  7. Адресаты судебной речи

При работе процессора Pentium в защищенном режиме, в распоряжении программиста имеется виртуальное адресное пространство – совокупность сегментов. Каждый сегмент имеет описание, называемое дескриптором сегмента (8 байт) и содержит все характеристики сегмента. Различают три типа сегментов:

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

2) Сегмент кода

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

Дескрипторы сегментов объединяются в таблицы (LDT, GDT)

GDT – предназначена для описания сегментов ОС и общих сегментов всех прикладных процессов

LDT – дескрипторы сегмента отдельного пользовательского процесса.

IDT – таблица дескрипторов прерываний.

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

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

Процесс обращается к физической памяти по виртуальному адресу (селектор:смещение)

При «сегментной» организации памяти каждый процесс может иметь виртуальное пространство 64 Тбайт.

линейный адрес может считаться физическим адресом, если не включен ре­жим страничной трансляции адресов.

СЕГМЕНТНО – СТРАНИЧНАЯ МОДЕЛЬ (ЛИНЕЙНЫЙ АДРЕС НЕ СОВПАДАЕТ С ФИЗИЧЕСКИМ) (4 Кб страницы)

Прежде всего, нужно понять очень важную вещь: при использовании страничной адресации структуры из сегментной адресации (как то – таблицы дескрипторов, селекторы, регистры таблиц дескрипторов) НИКУДА НЕ ДЕВАЮТСЯ!

ВАЖНЫЙ МОМЕНТ: ЕДИНСТВЕННОЕ МЕСТО, ГДЕ СТРАНИЧНАЯ АДРЕСАЦИЯ ДЕЙСТВИТЕЛЬНО ВКЛИНИВАЕТСЯ В ПРОЦЕСС РАБОТЫ ПРОЦЕССОРА – ПРИ ПЕРЕВОДЕ ЛИНЕЙНОГО АДРЕСА В ФИЗИЧЕСКИЙ!

три понятия:

1) логический, (допустим CS + EIP)

2) линейный;

3) физический адрес.

При использовании страничной адресации линейный адрес не совпадает с физическим, как в случае с сегментной адресацией. Т.е. мы имеем дело с виртуальной памятью. Процессор делит линейное адресное пространство на страницы фиксированного размера (длиной 4Кб, 2Мб или 4Мб), которые, в свою очередь, уже отображаются в физической памяти (или на диске). Когда программа (или задача) обращается к памяти через логический адрес, процессор переводит его в линейный и затем, используя механизму страничной адресации, переводит его в соответсвтующий физический адрес. Если страницы в данный момент нет в физической памяти, то возникает исключение #PF. Это по сути кульминационный момент: обработчик этого исключения (#PF) должен выполнить соответствующие манипуляции по устранению данной проблемы, т.е. подгрузить страницу с харда (или наоборот – скинуть ненужную страницу на диск).

Итак, страничная организация непосредственно в проце управляется тремя флажками:

  1. Флаг PG (paging): бит 31 в регистре CR0. Появился в 386 проце.
  2. Флаг PSE (page size extensions): бит 4 в регистре CR4. Появлися в пнях.
  3. PAE (physical address extension) flag: бит 5 в регистре CR4. Появился в пентиум pro процах.

Теперь подробнее. Флаг PG разрешает страничную адресацию. Сразу после установки его в единицу страничная адресация включена.

Флаг PSE, если его установить, позволяет использовать страницы больших размеров (4Мб и 2Мб). Если сброшен – страницы имеют размер 4Кб.

Флаг PAE позволяет расширить физический адрес до 36 бит (стандартно он 32-х битный). Данный флаг можно использовать ТОЛЬКО в режиме страничной адресации. Узнать, поддерживает ли проц. данное расширение можно по 17 биту в EDX после CPUID.

При трансляции линейного адреса в физический (при включенной страничной адресации) процессор использует 4 структуры данных:

1) Каталог страниц – массив 32-битных записей (PDE – page- directory entry), к-рые хранятся в 4Кб странице (всего 1024 штуки)

2) Таблица страниц – массив 32-битных записей (PTE – page-table entry), которые также все расположены в одной 4Кб странице.

3) Сама страница – 4Кб, 2Мб или 4Мб кусок памяти:)

4) Указатель на каталог страниц – массив 64-битных записей

И что мы видим? А видим мы следующее: линейный адрес (тот самый, который получается в результате сложения базы сегмента со смещением при сегментной организации) при страничной организации с 4Кб страницами делится на три части:

На самом деле, может создаться ошибочное мнение, что каталог страниц – один единственный, и указывает на него регистр CR3 (как в случае с глобальной таблицей дескрипторов и регистром GDTR, помнишь?). На самом же деле все обстоит совсем не так, каталогов страниц может быть несколько, даже у каждой задачи свой, а регистр CR3 меняется после переключения задачи (подробнее – в выпуске, про переключение задач).


Дата добавления: 2015-08-21; просмотров: 181 | Нарушение авторских прав


Читайте в этой же книге: Частоте выполнения | Приоритет, меняющийся во время исполнения процесса, называется ___ приоритетом. | В специальной быстрой памяти процессора и оперативной памяти | Начальным | Только для облегчения отладки программ | Синхронизация задач, обеспечение их средствами коммуникации | Режим обмена с прерываниями |
<== предыдущая страница | следующая страница ==>
Управление памятью| Линейная адресная трансляция (4Мб страницы)

mybiblioteka.su - 2015-2024 год. (0.007 сек.)