Существует еще одно понятие, связанное с анонимными страницами, — анонимный объект. В системе имеется единственный анонимный объект. Он представлен указателем vnode, равным NULL (в некоторых реализациях систем это файл /dev/zero) и является источником всех страниц, заполняемых нулями.
Также вам может показаться, что такая тема как http://ломбарды.рф/?p=885 никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт ломбарды.рф. Тема займы под залог там представлена весьма широко. На том сайте можно узнать много интересного на тему займы под залог. Что означает вообще тема займы под залог, где найти займы под залог - про это написано на сайте ломбарды.рф. Это очень важная для многих людей тема - займы под залог. Спасибо сайту ломбарды.рф за информацию на тему займы под залог.
Области неинициализированных данных и стека процесса являются ото бражением типа MAP_PRIVATE для анонимного объекта, в то время как совместно используемые области являются отображаемыми на него (МАР_ SHARED).
При первом обращении к странице, имеющей ссылку на анонимный объект, такая страница становится анонимной независимо от того, является ли отображение закрытым или разделяемым. Это случается потому, что анонимный объект не обладает возможностью резервного копирования своих страниц, задача сброса их на устройство свопинга должна решаться ядром.
Анонимная страница представляется структурой anon, невидимой для остальных компонентов системы VM и управляемой при помощи процедурного интерфейса. Так как анонимная страница может быть совместно используемой, структура anon содержит счетчик ссылок. Сегмент, обладающий анонимными страницами, имеет ссылку на структуры anon таких страниц. Если отображение является закрытым, в каждом сегменте хранится отдельная ссылка на анонимную страницу. Если отображение разделяемое, то сегменты используют один и тот же счетчик. О совместном использовании анонимных страниц мы расскажем чуть позже, в разделе 14.7.4.
Процедурный интерфейс к остальной части системы VM экспортируется на уровне анонимности и содержит следующие функции:
♦ anon_dup() — дублирует ссылки на набор анонимных страниц. Это действие увеличивает на единицу значение счетчика ссылок каждой структуры anon, входящей в набор;
♦ anon_free() — освобождает ссылки на набор анонимных страниц, уменьшая значение счетчика ссылок каждой структуры anon, принадлежащей набору. Если при этом значение счетчика становится равным нулю, страница удаляется и освобождается ее структура anon;
♦ anon_private() — создает закрытую копию страницы и ассоциирует с ней новую структуру anon;
♦ anon_zero() — создает страницу, заполненную нулями, и ассоциирует с ней новую структуру anon;
♦ anon_getpage() — разрешает исключительное состояние анонимной страницы, производя ее чтение из устройства свопинга (при необходимости).
Аппаратное преобразование адресов
В системе VM все аппаратно зависимые коды собраны в отдельный модуль, называемый уровнем HAT (hardware address translation, аппаратное преобразование адресов), доступ к которому осуществляется при помощи четко определенного процедурного интерфейса.
Уровень HAT полностью отвечает за преобразование адресов. Он должен устанавливать и поддерживать отображения, необходимые для MMU, такие как для таблиц страниц и буферов преобразования. Он является интерфейсом между ядром системы и устройством ММU, скрывая внутри себя детали архитектуры памяти конкретной машины от остальной части ядра.
Опубликовал katy
June 20 2015 09:02:05 ·
0 Комментариев ·
2605 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.