При загрузке UNIX коды инициализации системы создают процесс swapper, который является системным процессом, не имеющим прикладного контекста. Идентификатор PID этого процесса равен нулю. Процесс swapper выполняет процедуру sched(), которая работает непрерывно (до завершения работы системы или ее краха) и, как правило, он находится в режиме сна. Система будит процесс каждую секунду, либо при возникновении некоторых событий.
Также вам может показаться, что такая тема как http://www.privateglass.ru/ никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт privateglass.ru. Тема умное стекло там представлена весьма широко. На том сайте можно узнать много интересного на тему умное стекло. Что означает вообще тема умное стекло, где найти умное стекло - про это написано на сайте privateglass.ru. Это очень важная для многих людей тема - умное стекло. Спасибо сайту privateglass.ru за информацию на тему умное стекло.
Процесс swapper производит проверку количества свободной памяти и на основе полученного значения принимает решение о дальнейших действиях. Если количество свободной памяти меньше, чем величина (настраиваемого) параметра t_gpgslo, демон swapper выгружает процесс из памяти. Для выбора такого процесса процесс вызывает для каждого класса зависимую от его приоритета операцию CL_SWAPOUT, которая возвращает наиболее подходящего кандидата в этом классе (см. раздел 5.5). Процедура класса CL_SWAPIN осуществляет обратную операцию, то есть выбирает процесс, возвращаемый в основную память при увеличении ее свободного размера.
Задача swapper выгружает процесс с помощью вызова функции as_swapout(), которая один за другим просматривает каждый сегмент и вызывает специфическую применительно к нему операцию выгрузки. На этом этапе работы драйверу сегмента необходимо сохранить данные всех страниц сегмента, находящихся в памяти, на резервный носитель. Большинство сегментов, как правило, имеют тип seg_vn. Реализация операции выгрузки для сегментов такого типа возложена на операцию segvn_swapout(). Последним этапом работы процесса swapper является выгрузка области и процесса.
Для обратной загрузки процесса в память swapper восстанавливает в памяти только его область и. А уже при выполнении процесс вызовет исключительные состояния при обращении к страницам, что приведет к их загрузке в основную память.
Файловая система обеспечивает резервное копирование большого количества сегментов VM.
Из этого можно сделать вывод, что подсистема VM постоянно взаимодействует с файловой системой, производя обмен данных между файлами и памятью. Файловая система в реализациях вызовов read и write применяет отображения в памяти. В этом разделе будет описано взаимодействие VM и файловой системы. Здесь также будут затронуты некоторые интересные проблемы, имевшие место при реализации этого взаимодействия.
Изменения в интерфейсе vnode
В таких ОС, как 4.3BSD, структуры данных управления памятью содержат информацию о физическом размещении файловых блоков (располагающихся в элементах заполняемой по мере необходимости таблицы страниц). Основным недостатком такого подхода является обособление друг от друга файловой подсистемы и подсистемы VM. В архитектуре VM все специфические детали файловой системы перенесены на уровень vnode, обращение к файлам осуществляется через процедурный интерфейс vnode. Для встраивания такой возможности в системе SVR4 появились три дополнительные операции интерфейса vnode: V0P_MAP, VOP_GETPAGE и VOP_PUTPAGE.
Опубликовал katy
June 20 2015 10:03:10 ·
0 Комментариев ·
3208 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.