Оригинальная реализация VM использует принцип отложенных вычислений также при инициализации карт преобразования адресов. В отличие от системы BSD, в которой размещение и инициализация всех таблиц страниц происходит во время выполнения fork или ехес, подсистема VM старается по возможности отсрочить эту задачу. Инициализация каждого элемента карты происходит только при первом обращении процесса к странице. Точно так же выделение каждой страницы карты происходит только при возникновении такой необходимости.
Также вам может показаться, что такая тема как http://fili-tek.ru/services/catalysts/ustanovka-katalizatorov никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт fili-tek.ru. Тема установка катализаторов там представлена весьма широко. На том сайте можно узнать много интересного на тему установка катализаторов. Что означает вообще тема установка катализаторов, где найти установка катализаторов - про это написано на сайте fili-tek.ru. Это очень важная для многих людей тема - установка катализаторов. Спасибо сайту fili-tek.ru за информацию на тему установка катализаторов.
Несмотря на то, что описываемый подход позволяет избавиться от некоторого объема вычислений, его применение приводит к увеличению количества системных исключений.
Преимущества «отложенного» подхода становятся очевидными в том случае, когда перегрузка системы вследствие роста числа исключений компенсируется экономией времени на излишние операции.
В подсистеме VM количество исключений очень велико. Измерения на машине AT&T ЗВЗ/400 показали, что обработка мнимых ошибок памяти (то есть возникающих при наличии страницы в памяти при отсутствии ее корректного преобразования) занимает 3,5 мс в архитектуре VM по сравнению с 1,9 мс в сегментной архитектуре SVR2/SVR3. Появление такой разницы обусловлено, в первую очередь, модульностью архитектуры VM, результатом которой является потребность в большем количестве вызовов и «разбухании» исходных текстов.
Сходные тенденции наблюдаются и при разделении страниц между процессами на основе копирования при записи (на стадии выполнения fork). Цель методики состоит в копировании только тех страниц памяти, которые были изменены родителем или предком. Для этого подсистема VM откладывает копирование всех страниц до тех пор, пока родительский процесс или его потомок не вызовут исключение. Недостатком метода опять же является увеличение числа исключений. На машине ЗВ2 обработка исключения и копирование страницы занимает 4,3 мс, в то время как само копирование требует всего только 1 мс. Следовательно, применение копирования при записи будет выгоднее лишь в том случае, если достаточно копировать менее четверти от общего количества страниц. Если же количество изменяемых страниц после вызова fork превышает это значение, то наиболее быстрым окажется копирование всех страниц.
Измерения показали, что в первоначальной реализации VM возникает примерно в четыре раза больше исключений по сравнению с сегментной архитектурой. Системные вызовы fork и ехес оказались наиболее критичны, так как именно они отвечают за настройку адресного пространства процессов и разделение памяти. Знание этого важно, разработчикам системы необходимо представлять, в каких наиболее распространенных ситуациях выделения страниц следует быть готовыми к страничным ошибкам.
В следующих реализациях подсистемы VM появились три новых дополнения, позволивших решить вышеописанные проблемы. Им будет посвящен следующий подраздел.
Новые возможности подсистемы VM в SunOS
Первым и наиболее значимым расширением VM стало появление возможности выделения и инициализации карт преобразований адресного пространства процесса-предка по время выполнения fork. Даже в том случае, если предок через некоторый промежуток времени вызовет ехес, как правило, между вызовами fork и ехес происходит выполнение некоторого количества прикладного кода (например, перенаправление ввода-вывода, закрытие нескольких дескрипторов и т. д.). Эти инструкции становятся причиной определенного количества ложных исключений. Обработка этих ошибок занимает практически то же время, что и построение и копирование карт преобразования адресов.
Вторым изменением подсистемы является частичная инициализация карт преобразования адресов при выполнении ехес. Каждый сегмент ассоциируется с vnode, который в свою очередь, поддерживает связанный список всех страниц в памяти, относящихся к этому объекту. В новой версии VM системный вызов ехес просматривает список и инициализирует все вхождения карты преобразования, отображающие такие страницы. Он также выделяет новые карты преобразования, необходимые для таких вхождений. Это предупреждает возникновение ложных исключений, причиной которых является принцип отложенных вычислений.
Описанный метод производит приблизительное определение рабочего набора сегмента путем подсчета количества страниц vnode, уже находящихся в памяти. Часть из этих действий может оказаться излишними, так как процесс не всегда обращается к страницам, еще не выгруженным из основной памяти. С дру
Опубликовал katy
June 20 2015 18:25:47 ·
0 Комментариев ·
3239 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.