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

Механизм страничной памяти.

Читайте также:
  1. III. МЕХАНИЗМ ФОРМИРОВАНИЯ И РЕАЛИЗАЦИИ ГОСУДАРСТВЕННОЙ КАДРОВОЙ ПОЛИТИКИ, СИСТЕМА ОБРАЗОВАНИЯ И ВОСПИТАНИЯ СПЕЦИАЛИСТОВ СМИ
  2. VI. Факторы, вовлекающие механизмы, связанные с активацией комплемента.
  3. Адамдарды көтеруге арналған жүккөтергіш механизмдердің статикалық күштемесінен асуын қаншаға дейін шектейді В) 1,5 есе
  4. Аккомодация, ее механизм и расстройства.
  5. Альвеоциты I типа. Особенности строения, функции. Особенности энергетического обмена. Механизм секреции воды.
  6. Апоптоз является общебиологическим механизмом, ответственным за поддержание постоянства численности клеток, формообразование, выбраковку дефектных клеток в органах и тканях.
  7. Архитектура памяти.

Второй этап преобразования требуется, потому что реальный компьютер не имеет, как правило, установленных 4Гб памяти, т.е. возникает необходимость перейти от виртуального линейного адреса к физическому.

На втором этапе работает страничный механизм (см. рис. 25). Полученный линейный виртуальный адрес преобразуется в искомый физический адрес. Особенностью этого преобразования является то, что процессор в этом случае оперирует с блоками равной длины (4Кбайт) – страницами, на которые разбита вся память (как физическая, так и виртуальная, соответствующие страницы также будут называться физическая и виртуальная).

Рисунок 25 Отображение виртуальных страниц в физические

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

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

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

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

Рассмотри подробнее как работает механизм страничной памяти, т.е. как из линейного адреса страницы определяется ее физический адрес. В основе этого механизма лежит процесс вычисления физического адреса страницы на основе линейного, который часто называют трансляцией страниц.

Как уже было сказано выше, информация о страницах находится в таблицах страниц, которые содержат дескрипторы (строки таблицы), описывающие отдельные страницы памяти. Эти дескрипторы содержат:

- физические адреса страниц. Если точнее, то дескриптор содержит старшие 20 бит физического адреса страницы, младшие 12 бит адреса страницы всегда равны нулю;

- бит присутствия — Р (Present). P=l означает, что эта страница в данный момент присутствует в физической памяти, т.е. возможно использование дескриптора данной страницы для трансляции адреса;

- признак грязности — D (Dirty), который устанавливается перед операцией записи по адресу, в преобразовании которого участвует данный дескриптор. Таким образом помечается «грязная» страница, которую в случае замещения необходимо выгрузить на диск.

Физически таблица страниц реализована как двухуровневая таблица - имеется каталог таблиц страниц (или просто каталог). Каталог это, размещенный в памяти, массив 1024 строк (или записей - дескрипторов). Каждая строка содержит адрес таблицы страниц, каждая таблица страниц состоит из 1024 строк – дескрипторов страниц.

Теперь опишем как именно происходит преобразование линейного адреса в физический (см. рис. 26).

Рисунок 26. Страничный механизм (Линейная адресная трансляция).

 

В процессе страничной трансляции адресов полученный линейный адрес разбивается на три части. Старшие десять бит линейного адреса являются индексом (номером) строки из каталога таблиц. По этой строке определяется физический адрес нужной в данный момент таблицы страниц. (Место размещения каталога в памяти известно, так как на его адрес указывает специальный регистр.)

Следующие десять бит линейного адреса (биты 21-12) содержат номер строки (дескриптора) из этой таблицы страниц, т.е. эта часть линейного адреса позволяет выбрать нужный дескриптор страницы из таблицы страниц. Выбранный дескриптор определяет физический адрес страницы.

Младшие 12 бит линейного адреса определяют смещение от начала страницы. Для того чтобы получить физический адрес нужно к найденному физическому адресу страницы добавить это смещение (напоминаем, что 12 младших разрядов этого адрес всегда равны нулю, поэтому смещение можно просто «пристыковать» к адресу страницы).

Если страницы в данный момент нет в физической памяти (признак присутствия P=0), то возникает прерывание (Page fault interrupt – отказ страницы). Обработчик этого прерывания должен выполнить соответствующие манипуляции по устранению данной проблемы, т.е. подгрузить страницу с жесткого диска (или наоборот – скинуть ненужную страницу на диск). Подгрузка (выгрузка) страниц происходит с файла подкачки, это по сути и есть те самые странички памяти на диске, которые после возникновения прерывания должны быть загружены в оперативную память (или наоборот). Как только страница была благополучно водворена на место, то выполнение прерванной программы продолжается с той самой инструкции, которая вызвала прерывание.


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


Читайте в этой же книге: Архитектура памяти. | Постоянная память | Оперативная память | Классическая память DRAM. | Многобанковая организация памяти | Память Direct Rambus DRAM. | Сегментная адресация в реальном режиме. | Верхний блок памяти | Кэш-память. | Кэш-память с прямым отображением. |
<== предыдущая страница | следующая страница ==>
Адресация памяти в защищенном режиме работы процессора| Иерархия запоминающих устройств.

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