Структура seg также обладает указателем на вектор seg_ops, являющийся набором виртуальных функций, определяющих независимый от типа интерфейс к классу сегмента. Каждый специфический порожденный класс (то есть каждый тип сегмента) должен иметь собственные реализации операций этого вектора.
Также вам может показаться, что такая тема как http://smsc.ru/bulksms/ никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт smsc.ru. Тема рассылка смс сообщений там представлена весьма широко. На том сайте можно узнать много интересного на тему рассылка смс сообщений. Что означает вообще тема рассылка смс сообщений, где найти рассылка смс сообщений - про это написано на сайте smsc.ru. Это очень важная для многих людей тема - рассылка смс сообщений. Спасибо сайту smsc.ru за информацию на тему рассылка смс сообщений.
Структура seg содержит указатель (s_data) на зависимую от типа структуру данных, в которой хранятся закрытые данные сегмента. Эта структура не видна остальной части ядра и используется только зависимыми от конкретного типа сегмента функциями, реализующими операции над ним.
Каждый сегмент также обладает процедурой создания create. Несмотря на то, что такая процедура является зависимой от определенного типа сегмента, доступ в ней не производится через вектор seg_ops по причине необходимости ее вызова до создания сегмента и, следовательно, до инициализации вектора seg_ops. Ядро имеет сведения об именах и синтаксисе вызова всех процедур создания сегмента (входные аргументы процедур могут отличаться друг от друга для разных типов сегментов) и само вызывает нужную из них при необходимости.
Следует упомянуть о разнице между виртуальной функцией и ее специфическими версиями для определенных порожденных классов. Например, функция faulta является виртуальной и определяет одну из общих операций над сегментом, но не существует какой-либо функции ядра под названием faultaQ. Каждый класс-наследник (или тип сегментов) обладает собственной реализацией этой функции. Например, для сегмента типа seg_vn используется функция segvn_faulta().
Анонимные страницы
Анонимной страницей называется страница, не имеющая постоянного адреса хранения. Такие страницы создаются при первом изменении процессом страниц отображением их на объект типа MAP_PRIVATE. Система VM должна произвести создание закрытой копии такой страницы для процесса с тем, чтобы изменения не смогли повлиять на лежащий в ее основе объект. Все последующие обращения к странице должны переадресовываться к ее копии (не затрагивая при этом оригинальную страницу). Анонимные страницы могут уничтожаться при завершении работы процесса или при отказе от отображения. В то же время они могут при необходимости быть скопированы в область свопинга.
Анонимные страницы используются всеми сегментами, поддерживающими закрытые отображения. Например, инициализированные страницы данных, изначально указывающие на исполняемый файл, могут стать анонимными при первой попытке внесения изменений в них. За резервное копирование анонимных страниц отвечает уровень свопинга.
Опубликовал katy
June 20 2015 08:22:46 ·
0 Комментариев ·
2721 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.