Виртуальная память




Скачать 46.44 Kb.
НазваниеВиртуальная память
Дата публикации12.09.2013
Размер46.44 Kb.
ТипДокументы
uchebilka.ru > Информатика > Документы
Виртуальная память

Концептуально модель памяти в Mach выглядит для пользовательских процессов в виде большого линейного виртуального адресного пространства. Для большинства 32-х разрядных процессоров адресное пространство занимает диапазон от 0 до 232 - 1 (4 Гбайта). Адресное пространство поддерживается страничным механизмом.

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

Теоретически любое виртуальное адресное пространство может быть разреженным, так что способность использовать большое количество разбросанных секций не является в действительности свойством архитектуры виртуальной памяти. Другими словами, любая 32-х битная машина должна позволять процессу иметь 50 000 секций данных, разделенных промежутками по 100 Мбайт, в пределах от 0 до 4 Гбайт. Однако, во многих реализациях линейная страничная таблица от 0 до самой старшей используемой страницы хранится в памяти ядра. На машине с размером страницы в 1 Kб эта конфигурация требует 4 миллиона элементов таблицы страниц, делая такую схему очень дорогой, если не невозможной. Даже при многоуровневой организации страничной таблицы такая разреженность в лучшем случае неприемлема. В ядре Mach при его разработке изначально ставилась задача полной поддержки разреженных адресных пространств.

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



Рис. 6.5. Адресное пространство с назначенными областями,
отображенными объектами и неиспользуемыми адресами


Ключевым понятием, связанным с использованием виртуального адресного пространства, является объект памяти (memory object). Объект памяти может быть страницей или набором страниц, а также может быть файлом или другой, более специальной, структурой данных, например, записью базы данных. Объект памяти может быть отображен в неиспользуемую часть виртуального адресного пространства, формируя новую область, как это показано на рисунке 6.5. Когда файл отображен в виртуальное адресное пространство, то его можно читать или в него можно писать с помощью обычных машинных команд. Отображенные (mapped) файлы постранично вытесняются из памяти обычным образом. Когда процесс завершается, то его отображенные в память файлы автоматически возвращаются в файловую систему вместе со всеми изменениями, произошедшими с их содержанием в то время, когда они были отображены в память. Также возможно отменить отображение файла или другого объекта памяти, освобождая его адресное пространство и делая его доступным для последовательного его распределения или отображения.

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

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

Таблица 6.3.
Примитивы для управления виртуальным адресным пространством

Вызов

Описание

Allocate

Делает область виртуального адресного пространства используемой

Deallocate

Освобождает область виртуального адресного пространства

Map

Отображает объект памяти в виртуальное пространство

Copy

Копирует область в другой диапазон виртуальных адресов

Inherit

Устанавливает атрибут наследования для области

Read

Читает данные из адресного пространства другого процесса

Write

Записывает данные в адресное пространство другого процесса

Первый вызов, Allocate, делает область виртуальных адресов используемой. Процесс может наследовать назначенное адресное пространство, а может и назначить дополнительное, но любая попытка обратиться к неназначенному адресу будет вызывать ошибку. Второй вызов, Deallocate, освобождает область (то есть удаляет ее из карты памяти), что дает возможность назначить ее заново или отобразить что-нибудь в нее, используя вызов Map.

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

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

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

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

Добавить документ в свой блог или на сайт

Похожие:

Виртуальная память iconВиртуальная память в процессоре i80286
Процессор i80286 может непосредственно адресовать до 16 мегабайт физической памяти, однако реально компьютеры редко имеют оперативную...

Виртуальная память iconЛекция 1-04
К внутренней памяти компьютера обычно относят оперативную память, внешнюю кэш-память, кэш-память первого и второго уровней, а также...

Виртуальная память iconЛитературно-музыкальная композиция, посвященная 55-летию Победы в Великой Отечественной войне
И птицы-память по утрам поют, и ветер-память по ночам гудит, Деревья-память целый день лепечут

Виртуальная память iconПамять компьютера Память компьютера имеет иерархическую структуру
Озу или ram (Random Access Memory — память с произвольным доступом). Оперативная память непосредственно доступна процессору: в ней...

Виртуальная память iconКрис Касперски " Память определяет быстродействие "
Рисунок 2 log gif Память… Миллиарды битовых ячеек, упакованных в крошечную керамическую пластинку, свободно умещающуюся на ладони…...

Виртуальная память iconЕ. А. Шайкина в статье рассматриваются приемы изменения и стирания...
Ключевые слова: историческая память, манипуляция сознанием, краткосрочна историческая память, эмоциональная память

Виртуальная память iconКостин, Игорь Виртуальная реальность Новомосковска // 2000, 2012.№18/19....
Костин, Игорь Виртуальная реальность Новомосковска // 2000, 2012.№18/19. С. В1, В2

Виртуальная память icon«Мемориал «Память»»
Мемориал «Память» программа активности украинских радиолюбителей в период с 01 по 15 мая каждого года

Виртуальная память iconВиртуальная выставка до дня святого Валентина

Виртуальная память iconВиртуальная выставка до дня святого Валентина

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<