Виртуальная и физическая память
Виртуальная и физическая память
Оперативная память является, пожалуй, одним из наиболее дорогих компонентов компьютерной системы. Ранние системы UNIX имели в своем распоряжении 64 Кбайт оперативной памяти, и это количество было явно недостаточным, современные компьютеры обладают гигабайтами оперативной памяти, но и этого уже мало.
Оперативная память может быть представлена в виде последовательности байтов, каждый из которых имеет свой уникальный адрес, называемый физическим адресом. Именно эти адреса в конечном счете использует процессор, обмениваясь данными с оперативной памятью. Однако адресное пространство процесса существенным образом отличается от адресного пространства физической оперативной памяти. Представим себе, что адресное пространство процесса непосредственно отображалось бы в оперативную память, другими словами, что адреса, используемые процессом, являлись бы физическими адресами. При таком подходе на пути создания многозадачной системы нас ожидал бы ряд непреодолимых препятствий:
? Во-первых, трудно себе представить механизм, защищающий адресное пространство одного процесса, от адресного пространства другого или, что более важно, от адресного пространства самой операционной системы. Поскольку каждый процесс работает с физическими адресами, нет никакой гарантии, что процесс не обратится к ячейкам памяти, принадлежащим другим процессам или ядру системы. Последствия такого обращения скорее всего будут весьма плачевными.
? Во-вторых, уже на этапе компиляции необходимо было бы предусмотреть распределение существующего физического адресного пространства. При запуске каждый процесс должен занимать непрерывную и непересекающуюся область физических адресов.
? В-третьих, подобное распределение памяти между процессами вряд ли можно назвать оптимальным. Объем физической оперативной памяти будет существенным образом ограничивать число процессов, одновременно выполняющихся в системе. Так восемь процессов, каждый из которых занимает 1 Мбайт памяти, исчерпают 8 Мбайт оперативной памяти, а операционная система при средней загрузке насчитывает более 80 процессов!
Все перечисленные проблемы преодолимы с помощью виртуальной памяти. При этом адреса, используемые приложениями и самим ядром, не обязаны соответствовать физическим адресам. Виртуальные адреса транслируются или отображаются в физические на аппаратном уровне при активном участии ядра операционной системы.
Смысл виртуальной памяти заключается в том, что каждый процесс выполняется в собственном виртуальном адресном пространстве. Виртуальное адресное пространство — настоящий рай для процесса. Во-первых, у процесса создается ощущение исключительности — ведь все адресное пространство принадлежит только ему. Во-вторых, он больше не ограничен объемом физической памяти — виртуальная память может значительно превышать физическую. В результате процессы становятся изолированными друг от друга и не имеют возможности (даже при желании) "хозяйничать" в адресном пространстве соседа. Физическая память распределяется максимально эффективно — она не зависит от распределения виртуальной памяти отдельного процесса.
Очевидно, что для реализации виртуальной памяти необходим управляемый механизм отображения виртуального адреса в физический. В современных компьютерных системах процесс отображения выполняется на аппаратном уровне (с помощью обеспечивая высокую скорость трансляции. Операционная система осуществляет управление этим процессом.
Современные процессоры, как правило, поддерживают объединение адресного пространства в области переменного размера — сегменты и области фиксированного размера — страницы. При этом для каждого сегмента или страницы может быть задано собственное отображение виртуальных адресов в физические.
На рис. 3.4 показана взаимосвязь между виртуальным и физическим адресным пространством. Виртуальное адресное пространство процесса, как правило, является последовательным в рамках уже знакомых нам сегментов — кода, данных, стека и библиотек. Расположение соответствующих областей физической памяти может иметь фрагментированный характер, позволяя оптимально распределять память между процессами.

Рис. 3.4. Виртуальная и физическая память
Размер виртуальной памяти может существенно превышать размер физической за счет использования вторичной памяти или области свопинга — как правило, дискового пространства, где могут сохраняться временно не используемые участки адресного пространства процесса. Например, если при выполнении процесса происходит обращение к виртуальному адресу, для которого присутствует соответствующая страница физической памяти, операция чтения или записи завершится успешно. Если страница в оперативной памяти отсутствует, процессор генерирует аппаратное прерывание, называемое страничной ошибкой (page fault), в ответ на которое ядро определяет положение сохраненного содержимого страницы в области свопинга, считывает страницу в память, устанавливает параметры отображения виртуальных адресов в физические и сообщает процессору о необходимости повторить операцию. Все эти действия невидимы для приложения, которое работает с виртуальной памятью.
Механизм отображения виртуальных адресов в физические (трансляция адреса) существенным образом зависит от конкретной аппаратной реализации. Чтобы наше обсуждение не носило слишком абстрактного характера, в этом разделе рассмотрим механизм отображения виртуальных адресов в физические в операционной системе SCO UNIX на примере семейства процессоров Intel. Однако, как и для остальных подсистем UNIX, основные принципы отличаются мало, и данное изложение поможет читателю представить механизмы управления памятью и разобраться, при необходимости, в конкретной реализации.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Виртуальная память
Виртуальная память Одноуровневая память AS/400 получила свое имя в честь первопроходцев разработки виртуальной памяти в 60-х годах. Чтобы понять происхождение этого термина, необходимо углубиться в историю.Впервые виртуальная память появилась в компьютере Atlas, созданном в
Виртуальная память для систем разделения времени
Виртуальная память для систем разделения времени В связи с появлением в конце 60-х годов систем разделения времени — раннего этапа эволюции мультипрограммных ОС — многие производители компьютеров приняли виртуальную память на вооружение. При мультипрограммировании
Одноуровневая виртуальная память
Одноуровневая виртуальная память В только что описанной реализации виртуальной памяти программист имеет дело с двумя уровнями хранилища: файловая система и виртуальная память разделены. Двухуровневая система хранения вызывает дополнительные накладные расходы.
Постоянная виртуальная память
Постоянная виртуальная память Размер адреса AS/400 значительно превышает необходимый для покрытия всего дискового пространства. Причина такого положения — другая характеристика одноуровневой памяти, называемая постоянством (persistence). Мы уже говорили об этом в главе 5,
Приложение 1 Физическая структура файловой системы Ext2
Приложение 1 Физическая структура файловой системы Ext2 Таблица П1.1. Структура суперблока Таблица П1.2. Структура описания группы блоков Таблица П1.3. Структура индексного дескриптора файла Таблица П1.4. Тип и права доступа к файлу Таблица П1.5. Специальные индексные
Физическая структура базы данных
Физическая структура базы данных Зачем изучать физическую структуру базы данных? Говоря о физической структуре базы данных InterBase, обычно подразумевают то что представляют собой данные с точки зрения низкоуровневой организации данных - вплоть до уровня байтов. Многие
Виртуальная память и страничная организация памяти
Виртуальная память и страничная организация памяти Первым узким местом быстродействия приложения является страничная организация виртуальной памяти. Его легче понять на примере 32-разрядных приложений. 16-разрядные приложения тоже страдают от тех же проблем, но сама
Физическая безопасность
Физическая безопасность Содержите серверы и чувствительные или критичные клиентские машины в помещениях с хорошо закрываемыми дверями. Если у вас на серверах или рабочих станциях установлена система FAT32, любой пользователь, локально подключившийся к одной такой
2.1.1. Физическая и логическая модель данных
2.1.1. Физическая и логическая модель данных ERwin имеет два уровня представления модели - логический и физический. Логический уровень - это абстрактный взгляд на данные, на нем данные представляются так, как выглядят в реальном мире, и могут называться так, как они называются
Файл подкачки и виртуальная память
Файл подкачки и виртуальная память Первоначально PGP создавался для MS-DOS — примитивной по сегодняшним меркам операционной системы. Но когда он был адаптирован под более комплексные ОС, такие как Microsoft Windows и Macintosh OS, возникла новая проблема. Эта проблема проистекает из
15.1. Виртуальная парикмахерская
15.1. Виртуальная парикмахерская Данный пример посвящен изменению цвета волос. Эта задача является достаточно востребованной и особый интерес может вызвать как у дизайнеров причесок, так и у любителей цифровой фотографии. Действительно, всем интересно увидеть себя или
17.2. Виртуальная косметика
17.2. Виртуальная косметика Макияж умеет делать практически каждая женщина. Именно макияж помогает подчеркнуть достоинства внешности и скрыть ее недостатки. А что если вы не совсем уверены в том, что вам идет, а что нет? Неужели нужно идти в салон и тратить большие деньги на
Первая фаза: Физическая безопасность
Первая фаза: Физическая безопасность Чтобы начать игру, я должна была надеть костюм и исполнить свою роль. Моей целью было проникнуть в компьютерный зал без получения официального разрешения. Надев костюм, я попала в точку — я выглядела как своя.Мария предложила мне
СОФТЕРРА: Память на лица, или Лица на память
СОФТЕРРА: Память на лица, или Лица на память Автор: Алексей КлимовВышла девятая версия ACDSee. Судя по объему нововведений, это не «Девятый вал» Айвазовского [Иван Айвазовский, «Девятый вал». 1850 г] и даже не «9 рота» Бондарчука [Федор Бондарчук, «9 рота». 2005 г]. Поэтому в обзоре
Физическая топология
Физическая топология Система PKI, помимо выполнения целого ряда функций - выпуска сертификатов, генерации ключей, управления безопасностью, аутентификации, восстановления данных, - должна обеспечивать интеграцию с внешними системами. PKI необходимо взаимодействовать с