Клименков Евгений, магистр технических наук, аспирант кафедры Программного обеспечения информационных технологий Белорусского государственного университета информатики и радиоэлектроники.
Родился в Беларуси в 1988 году, окончил Белорусский Государственный
Университет информатики и радиоэлектроники в 2010 году (факультет компьютерных систем и сетей), магистратуру в 2011. Год провел на стипендии в ETHZ при System Group. Сфера научных интересов включает микроядерные и многоядерные операционные системы.
В данной работе представляется модель управления памятью M-M/S-CD, которая была разработана для микроядер как альтернатива управлению памятью на основе capability.
Предлагаемая модель обладает более простой архитектурой и реализацией, за счет
чего обеспечивает большую эффективность и гибкость для серверов управления памятью пользовательского режима.
В то же время она гарантирует целостность памяти и предоставляет строгие правила изоляции/разделения памяти между приложениями, создавая
среду для их функционирования.
1 Философия M-M/S-CD
Модель управления памятью M-M/S-CD была разработана для ОС на основе истинного мик-роядра. В отличие от моделей управления памя-тью на основе рекурсивного построения адресно-го пространства [2] и на основе capability [1], M-M/S-CD является более
простой, гибкой и эффек-тивной, однако охватывает такие функции как управление памятью пространства пользователя и пространства ядра, а так же управление как физической так и виртуальной памятью. M-M/S-CD спроектирована на основе двух ключевых ка-честв:
замкнутость и явность, и использует семан-тику разделения/изоляции вместо традиционной выделения/освобождения.
M-M / S-CD рассматривает физическую па-мять компьютера как замкнутую систему. Она предполагает постоянство карты физической па-мяти в течение всего срока функционирования си-стемы. При этом каждая страница физической па-мяти СФП всегда отображена в как минимум одно виртуальное адресное пространство (ВАП).
M-M/S-CD опирается на идею явности всех операций управления памятью. Все по-литики управления памятью реализуются в пользовательском пространстве программами-менеджерами, и все операции над памятью проте-кают явным образом, с согласия и под контролем ее менеджера. Функции ядра включают только: выполнение операций над памятью, осуществле-ние контроля доступа, обеспечение целостности памяти системы и преобразование памяти в ре-сурсы второго порядка и обратно. В свою очередь, менеджеры памяти пользовательского режима обладают полной информацией о состоянии их ВАП и управляемой ими физической памяти в каждый момент функционирования системы. Яв-ность операций управления памятью позволяет переместить всю функциональность связанную с учетом памяти из пространства ядра в простран-ство пользователя, что приводит к созданию более детерминированных, предсказуемых и эффектив-ных приложений и систем.
В отличие от традиционного подхода к управлению памятью в терминах выделе-ния/освобождения, M-M/S-CD управляет памя-тью в терминах разделения/изоляции. Управле-ние памятью осуществляется с помощью трех основных операций: разделение, изоляция и пере-дача прав на управление.
Модель M-M/S-CD охватывает управление физической и виртуальной памятью и инкапсу-лирует управление TLB. Кроме того, ее можно разделить на два слоя: базовый слой управле-ния внутриядерной памятью и верхний слой под-держки управления пользовательской памятью. Нижний слой заклыдывает основу для управле-ния памятью, поверх которой строятся все осталь-ные подсистемы ядра. Верхний уровень, создает API управления памятью, экспортируемый из яд-ра для использования менеджерами.
2 Абстракции
Страница физической памяти. СФП пред-ставляет собой непрерывный участок физической памяти с фиксированным размером и выравнива-нием. Каждая СФП имеет два атрибута: адрес и счетчик ссылок. Каждая СФП, имеет по крайней мере одну ссылку на протяжении всей жизни си-стемы.
Виртуальное адресное пространство.
ВАП играет роль контейнера для СФП и пото-ков. В каждый момент времени жизни системы существует по крайней мере одно ВАП. Обратите внимание, что в случае наличия только одного ВАП в системе, в таком ВАП будет отображена вся доступная физическая память.
Область виртуальной памяти (ОВП).
ВАП разделяется на ряд областей фиксирован-ного размера. ОВП является единицей управле-ния ВАП и имеет назначенного менеджера. Мене-джер не обязательно должен выполняться в том же ВАП, в котором находится ОВП. Благодаря этому ОВП обеспечивают возможность внешнего управления ВАП и, таким образом, создают осно-ву для функционирования менеджеров памяти.
Страница виртуальной памяти. Каждая ОВП, в свою очередь, состоит из фиксированно-го количества СВП. Каждая СВП либо содержит ссылку на СФП, либо является пустой. Стоит от-метить, что несколько СВП могут ссылаться на одну и ту же СФП, но для каждой СФП есть по крайней мере одна СВП, ссылающаяся на него.
Абстракции M-M/S-CD отражают абстрак-ции используемые MMU. Эта особенность M-M/S-CD позволяет избежать введения дополнитель-ных структур данных для отслеживания состоя-ния памяти (Фактически, M-M/S-CD может ис-пользовать те же таблицы страниц, которые ис-пользует для управления памятью MMU). Про-стота реализации, в свою очередь, ведет к по-вышению производительности, предсказуемости и детерминизма операций управления памятью.
3 Операции
Ключевая концепция модели управления памя-тью M-M/S-CD - это выделение двух типов ссы-лок на СФП: сильные и слабые. Сильная ссыл-ка дает владеющему ей ВАПу права доступа и управления для соответствующей СФП. Слабая ссылка дает владельцу только права доступа, но не предоставляет прав управления. Главная осо-бенность сильных ссылок заключается в том, что
они не могут быть ни созданы, ни удалены на про-тяжении всей жизни системы. Благодаря этому в каждый момент времени для каждой СФП, име-ется ровно одна сильная ссылка. В то же время, на каждую СФП, может ссылаться также произ-вольное количество слабых ссылок.
M-M/S-CD поддерживает три основные опе-рации управления памятью:
Move(src, trg ). Где src - это СВП, содержа-щая сильную ссылку на СФП, на которую не ука-зывают слабые ссылки, а trg - пустую СВП. После завершения операции src пуста, а trg содержит сильную ссылку.
Clone(src, trg ). Где src - это СВП, содержа-щая сильную ссылку, а trg - пустая СВП. После завершения операции src останется неизменным, а trg содержит слабую ссылку.
Destroy(trg ). Где trg - это СВП, которая со-держит слабую ссылку. После завершения опера-ции trg будет пустой.
Модель M-M/S-CD предполагает наличие двух типов субъектов в управлении памятью: ло-кальные потоки и потоки менеджеров памяти. Ло-кальный поток это любой поток, выполняющий-ся в контексте текущего ВАП. Поток менедже-ра памяти - это поток, потенциально выполняю-щийся в контексте внешнего ВАП, назначенный менеджером ОВП текущего ВАП. Каждая ОВП имеет назначенного менеджера. Локальные пото-ки принимают решения о том, какому менедже-ру и на какую ОВП будут делегированы права управления. В свою очередь, менеджер имеет пра-во клонировать и разрушать страницы в своей ОВП, а также перемещать страницы в и из нее. Любая ошибка страницы, произошедшая в ОВП, передается для обработки соответствующему ме-неджеру, который имеет все необходимые права для ее прозрачной обработки. Стоит отметить, что несколько менеджеров памяти могут одновре-менно обслуживать одно и то же ВАП (процесс).
Список литературы
[1] Dhammika Elkaduwe, Philip Derrin, and Kevin Elphinstone. A memory allocation model for an embedded microkernel. In International Workshop on Microkernels for Embedded Systems, pages 28 34, Sydney, Australia, jan 2007. NICTA.
[2] Jochen Liedtke. Improving ipc by kernel design. SIGOPS Oper. Syst. Rev., 27(5):175 188, December 1993.
Уважаемые коллеги! Для прохода в здание РАН просим принести документ, удостоверяющий личность.