Подсистема памяти и файловая система тесно взаимоувязаны друг с другом. Файловая система отвечает за резервное хранение сегментов VM, в том время как подсистема VM реализует доступ к файлам (см. рис. 14.13). Если процесс вызывает read или write по отношению к файлу, ядро производит временное отображение его части в своем адресном пространстве, используя сегмент seg_map.
Также вам может показаться, что такая тема как http://just-kid.ru/dlya-detskoy/rastushchie-stulya никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт just-kid.ru. Тема купить растущие стулья kotokota там представлена весьма широко. На том сайте можно узнать много интересного на тему купить растущие стулья kotokota. Что означает вообще тема купить растущие стулья kotokota, где найти купить растущие стулья kotokota - про это написано на сайте just-kid.ru. Это очень важная для многих людей тема - купить растущие стулья kotokota. Спасибо сайту just-kid.ru за информацию на тему купить растущие стулья kotokota.
После этого в системе возникает исключение для переноса данных в образ, и затем необходимая информация копируется в адресное пространство процесса или из него. Драйвер seg_map считывает блоки файловой системы в страничную память, для этой цели уже не нужен буферный кэш. Такой подход расширяет семантику доступа к отображаемым файлам на традиционные методы доступа. Унифицированный подход к интерпретации файлов позволяет избавиться от проблем достоверности данных, которые могут возникать при одновременном обращении к одному и тому же файлу разными методами.
Драйвер seg_map является упрощенной версией драйвера vnode и предоставляет возможность быстрого создания временного отображения файла в ядре.
Ранее были показаны используемые при этой операции структуры. Закрытые данные сегмента (структура segmap_data) содержат указатели на массив элементов структур smap, а также на таблицу хэширования и список свободных элементов smap. Каждое вхождение smap содержит связь с таблицей хэширования и список свободных элементов, указатель на vnode и смещение представляемой им страницы, а также счетчик ссылок, отслеживающий количество процессов, обращающихся к элементу.
Каждый элемент smap описывает одну страницу сегмента. Виртуальный адрес страницы ядра определяется по следующей формуле:
addr = base + entrynum * MAXBSIZE;
где base — начальный адрес сегмента seg_map, entrynum — индекс smap в массиве, a MAXBSIZE — размер страницы (зависит от конкретной аппаратной архитектуры). На одной машине способны сосуществовать сразу несколько различных файловых систем, поэтому одна страница сегмента может указывать на один блок, несколько блоков или даже некоторую часть блока файловой системы.
Опубликовал katy
June 20 2015 10:13:59 ·
0 Комментариев ·
3897 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.