Разделение политики и механизма

Важным инструментом, позволяющим справиться со сложностью любой системы, является отделение политики от механизма. Этот принцип может быть применен к управлению памятью за счет запуска основной части диспетчера памяти как процесса на уровне пользователя.
Подобное разделение впервые было предпринято в системе Mach (Young et al., 1987), на которой построено дальнейшее рассмотрение этого вопроса.

Простой пример того, как могут быть разделены политика и механизм, показан на рис. 3.27. Здесь система управления памятью разделена на три части:

♦ низкоуровневую программу управления диспетчером памяти (MMU);

♦ обработчик ошибки отсутствия страницы, являющийся частью ядра;

♦ внешнюю программу страничной организации памяти, запущенную в пользовательском пространстве.

Рис. 3.27. Обработка ошибки отсутствия страницы с использованием внешней системы

страничной организации памяти


Все тонкости работы MMU скрыты в программе управления этим диспетчером памяти, код которой является машинозависимым и должен переписываться для каждой новой платформы, на которую переносится операционная система. Обработчик ошибки отсутствия страницы является машинонезависимым кодом и содержит основную часть механизма страничной организации памяти. Политика определена в основном внешней системой страничной организации памяти, запускаемой в виде пользовательского процесса.

При запуске процесса уведомляется внешняя программа страничной организации, чтобы установить отображение страниц процесса и выделить в случае необходимости резервное хранилище на диске. Во время работы процесс может отображать в своем адресном пространстве новые объекты, о чем опять же уведомляется внешняя программа.

Как только процесс начнет работу, он может столкнуться с ошибкой отсутствия страницы. Обработчик ошибки определяет, какая виртуальная страница требуется процессу, и посылает сообщение внешней программе, сообщая ей о возникшей проблеме.

Затем эта внешняя программа считывает нужную страницу с диска и копирует ее в раздел собственного адресного пространства. Затем она сообщает обработчику, где находится страница. После этого обработчик ошибки удаляет отображение страницы из адресного пространства внешней программы и просит управляющую программу MMU поместить ее в нужное место адресного пространства пользователя. Затем пользовательский процесс может быть перезапущен.

Эта реализация оставляет открытым вопрос, куда поместить алгоритм замещения страниц. Казалось бы, ясно, что он должен быть во внешней программе, но реализация такого подхода сталкивается с рядом проблем. Самой принципиальной из них является то, что внешняя программа управления страницами не имеет доступа к битам Я и М всех страниц, а эти биты играют важную роль во многих алгоритмах замещения страниц. Таким образом, либо необходим какой-нибудь механизм для передачи этой информации вверх внешней программе управления, либо алгоритм замещения страниц должен быть помещен в ядро. В последнем варианте обработчик ошибки сообщает внешней программе управления, какую страницу он выбрал для удаления, и предоставляет данные, либо отображая эту страницу в адресном пространстве внешней программы управления, либо включая их в сообщение. В любом случае внешняя программа управления записывает данные на диск.

Основным преимуществом такой реализации является большая модульность кода и более высокая степень гибкости. Основной недостаток заключается в дополнительных издержках на неоднократные пересечения границы пользовательского пространства и пространства ядра, а также в издержках на пересылку между частями системы различных сообщений. Сейчас вопрос носит весьма спорный характер, но по мере того как компьютеры становятся все более быстродействующими, а программное обеспечение — все более сложным, вероятно, большинству разработчиков будет лучше пожертвовать какой-то долей производительности в пользу более надежного программного обеспечения.

3.7.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Разделение политики и механизма:

  1. § 36 Непосредственное вступление прямых наследников. – Трансмиссия. – Утверждение в наследстве. – Принятие наследства и отречение. – Последствие принятия. – Принятие по описи и разделение долгов. – Раздел наследства. – Возвратные учеты. – Разделение прав и ответственности. – Передел. – Наследство у мусульман.
  2. Разделенная двойственность.
  3. § 2. Разделение властей
  4. Особенности принципа разделения властей
  5. Причины разделения групп.
  6. Политика
  7. Разделение экрана
  8. Разделение мужчины и женщины
  9. Телевидение и политика
  10. Глава 14 РАЗДЕЛЕНИЕ РЕАЛЬНОСТИ
  11. Разделение верха и низа
  12. Разделение внешнего и внутреннего
  13. Разделение мужчины и женщины
  14. ДРУГОЕ РАЗДЕЛЕНИЕ ЗОДИАКА
  15. § 5 Разделение вещей и прав по иностранным законодательствам
  16. § 13 Разделение имуществ по свойству обладателей
  17. Политика в эпоху постмодерна
  18. § 3. Ювенальная политика
  19. Политики шутят