Архитектура VM [5] базируется на определении объекта памяти (memory object), являющегося программным представлением связи между областью памяти и резервным носителем.
В системе используются несколько различных видов таких носителей, в том числе пространство свопинга, локальные или удаленные файлы и буферы фреймов. Система VM видит такие объекты одинаково и выполняет над ними один и тот же набор операций: например, выбирает страницу из такого носителя или, наоборот, сбрасывает страницу на резервный носитель.
В противоположность системе VM внутри носителя упомянутые операции могут быть реализованы по-разному. Следовательно, система определяет общий интерфейс, а каждый носитель — его собственную реализацию.
Архитектура VM является объектно-ориентированной. Основные концепции ООП (применительно к системам UNIX) были представлены в разделе 8.6.2. Используя принятую в концепции объектно-ориентированного подхода терминологию, общий интерфейс к объекту памяти представляет собой абстрактный базовый класс [4]. Каждый тип объектов памяти (относящийся к каждому типу носителя) является порожденным классом (или классом-наследником) базового класса. Каждое отдельное отображение является экземпляром (или объектом) соответствующего порожденного класса.
Адресное пространство процесса содержит множество образов различных объектов данных. При этом корректными адресами объекта считаются только те, которые отображены. Объект предоставляет постоянное место хранения для страниц, отображенных на него. Отображение делает объект доступным для процесса путем прямой адресации. Отображаемый объект сам по себе ничего не «осознает» и никак не изменяется при создании образа.
Пространство имен объектов памяти, а также механизмы доступа к их данным, предоставляются файловой системой. Взаимодействие VM с файловой системой осуществляется на уровне vnode. Между объектами памяти и объектами vnode существует взаимосвязь по типу «много к одному». Каждый именованный объект памяти ассоциируется с уникальным объектом vnode, при этом один и тот же объект vnode вправе быть ассоциирован с несколькими объектами памяти. Некоторые объекты памяти, например, прикладные стеки, не могут быть ассоциированы с файлами и не могут иметь имен. Такие объекты представлены анонимными объектами (anonymous).
Физическая память выступает как кэш данных отображаемых объектов. Ядро пытается хранить большинство используемых страниц в основной памяти машины, минимизируя тем самым общее количество страничных операций.
Опубликовал katy
June 20 2015 08:07:03 ·
0 Комментариев ·
1754 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.