Основы операционных систем Лекция 9 - 20.03.081 Лекция 9. Cредства поддержки виртуальной памяти Проблема размещения больших программ; понятие виртуальной.

Презентация:



Advertisements
Похожие презентации
Операционные системы, среды и оболочки Управление памятью.
Advertisements

Дисциплина: Операционные системы § 7. Организация памяти компьютера План: 1.Физическая память компьютера. 2.Логическая память компьютера. 3.Функции системы.
Процессоры Intel в защищенном режиме. Недостатки реального режима Невозможно адресовать пространство памяти свыше 1-го Мб Невозможно работать с массивами,
Лекция 6. Способы адресации в микропроцессорных системах.
Лекция 7 Управление памятью Сегментная, страничная и сегментно- страничная организация памяти.
Лекция 5 Управление памятью Виртуальное адресное пространство.
Операционные системы и среды. Схема устройства жесткого диска Дорожка N Сектор (блок) Пластина 1 Пластина 2 Цилиндр 0 сторона Диск – одна или несколько.
1 Управление памятью Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
Физические модели баз данных Файловые структуры, используемые для хранения информации в базах данных.
Основы операционных систем.
1 ЛЕКЦИЯ 3 ХАРАКТЕРИСТИКА ЗАЩИЩЕННОГО РЕЖИМА РАБОТЫ МИКРОПРОЦЕССОРА В реальном режиме работы поддерживается выполнение всего одной программы. Для этого.
Виртуальная память. Управление памятью объединяет три задачи Динамическое распределение памяти Отображение виртуальных адресов программы на физические.
Управление памятью. В ИРТУАЛЬНАЯ ПАМЯТЬ Основная идея заключается в разбиении программы на части, и в память эти части загружаются по очереди. Программа.
Демидов А.В г. Операционные системы Лекция 6 Буфер оперативной памяти, Организация памяти.
Тема 2. Способы адресации и система команд МП. Непосредственная адресация Суть способа. Требуемые данные (#data ̶ непосредственный операнд, константа)
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
Лекция 5 Управление памятью Виртуальное адресное пространство Непрерывное…..
Микропроцессор Назначение и основные характеристики памяти Внутренняя память.
Архитектура и обеспечение систем базы данных. СУБД.
Управление памятью. Память является важнейшим ресурсом, требующим тщательного управления со стороны мультипрограммной операционной системы. Распределению.
Транксрипт:

Основы операционных систем Лекция Лекция 9. Cредства поддержки виртуальной памяти Проблема размещения больших программ; понятие виртуальной памяти Архитектурные средства поддержки виртуальной памяти

Основы операционных систем Лекция Понятие виртуальной памяти (1) Давно существует проблема размещения в памяти программ, размер которых превышает размер доступной ОП Один из вариантов ее решения - организация структур с перекрытием - рассматривался в предыдущей главе Предполагалось активное участие программиста в процессе сегментации и загрузки программы Позже было предложено переложить решение проблемы на компьютер

Основы операционных систем Лекция Понятие виртуальной памяти (2) Развитие архитектуры компьютеров привело к значительному усложнению организации памяти Усложнились и расширились задачи операционной системы по управлению памятью виртуальной памятиvirtual memory Одним из основных усовершенствований архитектуры стало появление виртуальной памяти (virtual memory) Впервые была реализована в 1959 г. на компьютере Атлас, разработанном в Манчестерском университете Стала популярной только спустя десятилетие

Основы операционных систем Лекция Понятие виртуальной памяти (3) При помощи виртуальной памяти обычно решают две задачи Во-первых, виртуальная память позволяет адресовать пространство, гораздо большее, чем емкость физической памяти конкретной вычислительной машины В соответствии с принципом локальности для реальных программ обычно нет необходимости в помещении их в физическую память целиком Возможность выполнения программы, находящейся в памяти лишь частично, обеспечивает ряд преимуществ

Основы операционных систем Лекция Понятие виртуальной памяти (4) 1. Программа не ограничена размером ОП; упрощается разработка программ, поскольку можно задействовать большие виртуальные пространства, не заботясь о размере используемой памяти 2. Возможность частичного помещения программы (процесса) в память и гибкого перераспределения памяти между программами позволяет разместить в памяти больше программ, что увеличивает загрузку процессора и пропускную способность системы 3. Объем ввода-вывода для выгрузки части программы на диск может быть меньше, чем при свопинге, и поэтому каждая программа будет работать быстрее

Основы операционных систем Лекция Понятие виртуальной памяти (5) Таким образом, возможность обеспечения (при поддержке операционной системы) для программы видимости практически неограниченной (32- или 64- разрядной) адресуемой пользовательской памяти при наличии ОП существенно меньших размеров является очень важным аспектом защиту пользовательских программ защиту ОС Но введение виртуальной памяти позволяет решать и другую, не менее важную задачу, - обеспечение контроля доступа к отдельным сегментам памяти и в частности защиту пользовательских программ друг от друга и защиту ОС от пользовательских программ

Основы операционных систем Лекция Понятие виртуальной памяти (6) С целью защиты виртуальная память поддерживалась и на компьютерах с 16-разрядной адресацией, в которых объем основной памяти зачастую существенно превышал 64 Кбайт (размер виртуальной памяти) Например, 16-разрядный компьютер PDP-11/70 мог иметь до 2 Мбайт оперативной памяти обеспечение защитыперераспределения ОС этого компьютера, тем не менее, поддерживала виртуальную память, основным смыслом которой являлось обеспечение защиты и перераспределения ОП между пользовательскими процессами

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

Основы операционных систем Лекция Понятие виртуальной памяти (8) Идея аппаратной части механизма виртуальной памяти состоит в том, что адрес памяти, вырабатываемый командой, интерпретируется аппаратурой не как реальный адрес некоторого элемента основной памяти Виртуальный адрес понимается как некоторая структура, где «адрес» является лишь одним из компонентов наряду с атрибутами, характеризующими способ обращения по данному адресу

Основы операционных систем Лекция Понятие виртуальной памяти (9) страничнаясегментная сегментно-страничная модель Традиционно считается, что существует три модели ВП: страничная, сегментная и их комбинация - сегментно-страничная модель На большинстве платформ существует и аппаратно поддерживается страничная модель ВП Сегментно-страничная модель является синтезом страничной модели и идеи сегментации В ВС, в которых сегменты не поддерживаются аппаратно, они реализуются архитектурно- независимым компонентом менеджера памяти Сегментная организация в чистом виде практически не встречается

Основы операционных систем Лекция Средства поддержки ВП (1) Невозможно создать полностью машинно- независимый компонент управления ВП Но имеются существенные части программного обеспечения, связанного с управлением ВП, для которых детали аппаратной реализации неважны Достижением современных ОС является грамотное и эффективное разделение средств управления ВП на аппаратно-независимую и аппаратно-зависимую части Рассмотрим, что и каким образом входит в аппаратно- зависимую часть подсистемы управления ВП Компоненты аппаратно-независимой подсистемы в следующей лекции

Основы операционных систем Лекция Средства поддержки ВП (2) Итак, имеется большое (для 32-разрядных архитектур это обычно 2**32 = 4 Гб) виртуальное адресное пространство и физическое пространство существенно меньшего размера Пользовательский процесс или ОС должны уметь осуществить запись по виртуальному адресу Задача ОС - сделать так, чтобы записанная информация оказалась в физической памяти (впоследствии при нехватке оперативной памяти она может быть вытеснена во внешнюю память) Важный компонент менеджера ВП - система или функция отображения (трансляции) адресов

Основы операционных систем Лекция Средства поддержки ВП (3) Механизм преобразования виртуальных адресов в физические должен предусматривать ведение таблиц, показывающих, какие области ВП в текущий момент находятся в ОП, и где именно размещаются Если бы такое отображение осуществлять побайтно, то информация об отображении была бы велика, и для ее хранения потребовалось бы больше реальной памяти, чем для процессов Нужен способ, позволяющий существенно сократить объем данных отображения Поэтому обычно отображаемая информация группируется в блоки (страницы)

Основы операционных систем Лекция Средства поддержки ВП (4) Страничная память В наиболее простом и наиболее часто используемом случае страничной ВП она (и ОП) представляются состоящими из наборов блоков или страниц одинакового размера страницыpage Виртуальные адреса делятся на страницы (page) страничные кадрыpage frames Соответствующие единицы в ОП образуют страничные кадры (page frames) пейджингомpaging В целом, система поддержки страничной ВП памяти называется пейджингом (paging) Передача данных между памятью и диском всегда осуществляется целыми страницами

Основы операционных систем Лекция Средства поддержки ВП (5) Страничная память 2 Страницы, в отличие от сегментов, имеют фиксированную длину, обычно являющуюся степенью числа 2, и не могут перекрываться. pdp dp Виртуальный адрес в страничной системе - упорядоченная пара (p,d), где p - номер страницы в ВП, а d - смещение в рамках страницы p, по которому размещается адресуемый элемент Процесс может выполняться, если его текущая страница находится в ОП Если текущей страницы в ОП нет, она должна быть переписана (подкачана) из ВП

Основы операционных систем Лекция Средства поддержки ВП (6) Страничная память Поступившая страница может быть размещена в любой свободный страничный кадр таблицу страниц Система отображения виртуальных адресов в физические сводится к системе отображения виртуальных страниц в физические и представляет собой таблицу страниц Для преобразования адресного пространства каждого процесса используется одна или несколько таблиц страниц, которые обычно хранятся в ОП Для ссылки на таблицу страниц используется специальный регистр процессора

Основы операционных систем Лекция Средства поддержки ВП (7) Страничная память v pd Выполняемый процесс обращается по виртуальному адресу v = (p,d) p p' p'd Механизм отображения ищет номер страницы p в таблице отображения и определяет, что эта страница находится в страничном кадре p', формируя реальный адрес из p' и d

Основы операционных систем Лекция Средства поддержки ВП (8) Страничная память move reg, 0 0 Например, в машинной инструкции move reg, 0 адрес 0 находится на первой виртуальной странице, которая может быть размещена во втором страничном кадре В реальных системах функция отображения хранит бит присутствия страницы в физической памяти исключительная ситуация страничным нарушениемpagefault При отсутствии страницы в памяти возникает исключительная ситуация, называемая страничным нарушением (page fault), или отсутствием страницы

Основы операционных систем Лекция Средства поддержки ВП (9) Страничная память При обработке страничного нарушения затребованная страница подкачивается из ВП в свободный кадр физической памяти, и продолжается прерванный код При отсутствии свободных страничных кадров на диск выгружается наименее нужная используемая страница таблице страниц page table Номер страницы служит индексом в таблице страниц (page table), на которую указывает специальный регистр процессора, и позволяет определить номер кадра ОП по виртуальному адресу Атрибуты, содержащиеся в строке таблицы страниц, используются для контроля доступа к соответствующей странице и ее защиты

Основы операционных систем Лекция Средства поддержки ВП (10) Страничная память внешняя фрагментация При использовании схемы пэйджинга отсутствует внешняя фрагментация внутренняя фрагментация Однако возможна внутренняя фрагментация: адресное пространство процесса занимает целое число страниц, и в среднем половина страницы на процесс пропадает Важный аспект - различие точек зрения пользователя и системы на ВП С точки зрения пользователя, его ВП - непрерывное пространство, содержащее только одну программу Реальное отображение скрыто от пользователя и контролируется ОС

Основы операционных систем Лекция Средства поддержки ВП (11) Страничная память Процессу пользователя недоступна чужая память Он не имеет возможности адресовать память за пределами своей таблицы страниц, которая включает только его собственные страницы Для управления физической памятью ОС поддерживает таблицу кадров Таблица содержит одну запись на каждый физический кадр, показывающий его состояние

Основы операционных систем Лекция Средства поддержки ВП (12) Страничная память Отображение должно происходить корректно даже в сложных случаях ОС поддерживает одну или несколько (при наличии нескольких сегментов памяти) таблиц страниц для каждого процесса При использовании одной таблицы страниц для ссылки на нее обычно используется специальный регистр При переключении процессов диспетчер должен найти его таблицу страниц, указатель на которую, таким образом, входит в контекст процесса

Основы операционных систем Лекция Средства поддержки ВП (13) Страничная память В большинстве современных компьютеров со страничной организацией виртуальной памяти все таблицы страниц хранятся в основной памяти кэша Быстрота доступа к элементам таблицы текущей виртуальной памяти достигается за счет наличия сверхбыстродействующей буферной памяти (кэша)

Основы операционных систем Лекция Средства поддержки ВП (14) Сегментная и сегментно-страничная ВП Существуют две другие схемы организации виртуальной памяти: сегментная и сегментно- страничная Идеи сегментации рассматривались в предыдущей лекции При сегментной организации виртуальный адрес по- прежнему является двумерным и состоит из двух полей - номера сегмента и смещения внутри сегмента С точки зрения ОС сегменты являются логическими сущностями, и их главное назначение - хранение и защита однородной информации (кода, данных и т.д.)

Основы операционных систем Лекция Средства поддержки ВП (14) Сегментная и сегментно-страничная ВП С точки зрения пользователя ВП процесса представляется обычно не как линейный массив байтов, а как набор сегментов переменного размера (данные, код, стек) Сегментация - схема управления памятью, поддерживающая этот взгляд пользователя Сегменты содержат процедуры, массивы, стек или скалярные величины, но обычно не содержат информацию смешанного типа

Основы операционных систем Лекция Средства поддержки ВП (15) Сегментная и сегментно-страничная ВП Логическое адресное пространство представляет собой набор сегментов У каждого сегмента имеются имя (номер), размер и другие параметры (уровень привилегий, разрешенные виды обращений, флаги присутствия) Пользователь специфицирует каждый адрес двумя значениями: номером сегмента и смещением Это отличается от схемы пэйджинга, где пользователь задает только один адрес, который разбивается аппаратурой на номер страницы и смещение прозрачным для программиста образом

Основы операционных систем Лекция Средства поддержки ВП (16) Сегментная и сегментно-страничная ВП 0 Каждому сегменту соответствует линейная последовательность адресов от 0 до максимума Различные сегменты могут иметь разные длины, которые могут меняться динамически (например, сегмент стека) В элементе таблицы сегментов, помимо физического адреса начала сегмента (если виртуальный сегмент содержится в основной памяти), содержится размер сегмента Если размер смещения в виртуальном адресе выходит за пределы размера сегмента, возникает прерывание

Основы операционных систем Лекция Средства поддержки ВП (17) Сегментная и сегментно-страничная ВП vsd Логический адрес - упорядоченная пара v=(s,d), номер сегмента и смещение внутри сегмента дескрипторов селекторам При наличии аппаратной поддержки имеется таблица дескрипторов сегментов, и программа обращается к дескрипторам по номерам селекторам сегментных регистров В контекст процесса входит набор сегментных регистров, которые содержат селекторы текущих сегментов кода, стека, данных и т.д., определяющие, какие сегменты будут использоваться при разных видах обращений к памяти На аппаратном уровне определяется допустимость обращений к памяти

Основы операционных систем Лекция Средства поддержки ВП (18) Сегментная и сегментно-страничная ВП Аппаратная поддержка сегментов относительно слабо распространена (главным образом, на процессорах архитектуры Intel) Характеризуется довольно медленной загрузкой селекторов в сегментные регистры, выполняемой при каждом переключении контекста и при каждом переходе между разными сегментами В системах со страничной организацией памяти сегментация реализуется на уровне, независимом от аппаратуры

Основы операционных систем Лекция Средства поддержки ВП (19) Сегментная и сегментно-страничная ВП Хранение в памяти сегментов большого размера может оказаться неудобным; возникает идея их пейджинга При сегментно-страничной организации ВП памяти происходит двухуровневая трансляция виртуального адреса в физический Виртуальный адрес состоит из трех полей: номера сегмента ВП, номера страницы внутри сегмента и смещения внутри страницы Используются две таблицы отображения - таблица сегментов, связывающая номер сегмента с таблицей страниц, и отдельная таблица страниц для каждого сегмента

Основы операционных систем Лекция Средства поддержки ВП (20) Сегментная и сегментно-страничная ВП Сегментно-страничная организация ВП позволяет совместно использовать одни и те же сегменты в ВП разных процессов Для каждой ВП существует отдельная таблица сегментов, но для совместно используемых сегментов поддерживаются общие таблицы страниц

Основы операционных систем Лекция Средства поддержки ВП (21) Таблица страниц Рассмотрим структуру таблицы страниц более детально виртуального номера страницыhigh-order bitsсмещенияlow-order bits Виртуальный адрес состоит из виртуального номера страницы (high-order bits) и смещения (low-order bits) записиentryо виртуальной странице Номер виртуальной страницы используется как индекс в таблице страниц для нахождения записи (entry) о виртуальной странице номер кадраpage frame number Из этой записи берется находится номер кадра (page frame number), к нему прибавляется смещение, и формируется физический адрес Помимо этого, запись в таблице страниц содержит атрибуты страницы, в частности, биты защиты

Основы операционных систем Лекция Средства поддержки ВП (22) Таблица страниц Основную проблему для эффективной реализации таблицы страниц создают большие размеры виртуальных адресных пространств современных компьютеров, которые обычно определяются разрядностью архитектуры процессора Самыми распространенными на сегодняшний день являются 32-разрядные процессоры, позволяющие создавать виртуальные адресные пространства размером 4 Гб Для 64-разрядных компьютеров эта величина равна 2**64 байт

Основы операционных систем Лекция Средства поддержки ВП (23) Таблица страниц Подсчитаем примерный размер таблицы страниц Intel В 32-битовом адресном пространстве при размере страницы 4К (Intel) получаем 1М страниц, а в 64- битовом и того более Тем самым, таблица должна содержать иметь 1М записей, причем запись состоит из нескольких байт Каждый процесс нуждается в своей таблице страниц (а в случае сегментно-страничной схемы - по одной на каждый сегмент) В этом случае таблица страниц может быть слишком большой

Основы операционных систем Лекция Средства поддержки ВП (24) Таблица страниц Кроме того, отображение должно быть быстрым, поскольку производится при каждом обращении к памяти, которое происходит практически в каждой машинной инструкции Эта проблема решается, главным образом, за счет реализации ассоциативной памяти (об этом ниже) многоуровневые Чтобы избежать необходимости иметь огромную таблицу в памяти все время, а хранить лишь несколько ее фрагментов (это возможно опять же на основании свойства локальности!), во многих компьютерах используются многоуровневые таблицы страниц

Основы операционных систем Лекция Средства поддержки ВП (25) Таблица страниц Рtr1 Рtr2Offset Пусть 32-разрядный адрес делится на 10-разрядное поле Рtr1, 10-разрядное поле Рtr2 и 12-разрядное Offset 12 разрядов смещения позволяют адресовать байт внутри страницы размером 4К Рtr строки в таблице верхнего уровня при помощи поля Рtr1 ссылаются на 1024 таблицы второго уровня, каждая из которых содержит также 1024 строки Рtr2 При помощи поля Рtr2 каждая строка таблицы второго уровня указывает на конкретную страницу Избегается постоянная поддержка в ОП всех таблиц второго уровня

Основы операционных систем Лекция Средства поддержки ВП (26) Таблица страниц Рассмотрим пример с круглыми цифрами Пусть процессу нужны 12 Мб памяти: 4 Мб в нижней части памяти для кода, 4 Мб в нижней части для данных и 4 Мб в верхней части памяти для стека Между дном стека и верхом данных имеется гигантское пространство размером 4 Гб - 12 Мб, которое не используется Для этого случая требуются лишь одна таблица верхнего уровня и три таблицы второго уровня Подход обобщается на три и более уровней таблицы

Основы операционных систем Лекция Средства поддержки ВП (27) Таблица страниц Размер записи таблицы страниц колеблется от системы к системе, но 32 бита - наиболее общий случай Самое важное поле - номер кадра; целью страничного отображения является его нахождение read/writeread only Кроме того, содержатся: бит наличия страницы в ОП; биты защиты (0 - read/write, 1 - read only...); биты модификации страницы; биты обращения; биты, разрешающие кэширование Адреса страниц на диске не являются частью таблицы страниц

Основы операционных систем Лекция Средства поддержки ВП (28) Таблица страниц Если предположить, что каждый уровень - отдельная таблица в памяти, то для преобразования адреса могут потребоваться несколько обращений к памяти Число уровней в таблице страниц зависит от особенностей архитектуры DEC PDP-11IntelDEC VAXSun SPARCDEC Alpha Motorola В DEC PDP-11 одноуровневая реализация, в Intel, DEC VAX - двухуровневая, в Sun SPARC, DEC Alpha - трехуровневая, в Motorola – задаваемое число уровней MIPS R2000 В RISC-процессоре MIPS R2000 вообще нет таблиц zero level paging Поиск нужной страницы, если эта страница отсутствует в ассоциативной памяти, должна взять на себя ОС (так называемый zero level paging)

Основы операционных систем Лекция Средства поддержки ВП (28) Ассоциативная память Поиск нужной страницы в многоуровневой таблице страниц, требующий несколько обращений к основной памяти при преобразовании виртуального адреса к физическому занимает много времени В ряде случаев такая задержка недопустима Эта проблема также решается на уровне аппаратуры В соответствии со свойством локальности большинство программ в течение некоторого промежутка времени обращается к небольшому числу страниц Таким образом, интенсивно используется только небольшая часть таблицы страниц

Основы операционных систем Лекция Средства поддержки ВП (29) Ассоциативная память Естественное решение - снабдить компьютер устройством для отображения виртуальных адресов в физические без обращения к таблице страниц Нужна небольшая, быстрая кэш-память, хранящая нужную в данный момент часть таблицы страниц Это устройство называется ассоциативной памятью ассоциативные регистрыtranslation lookaside bufferTLB Иногда используются термины ассоциативные регистры или translation lookaside buffer, TLB TLB Одна запись в TLB содержит информацию про одну виртуальную страницу Поля записи соответствуют полям таблицы страниц

Основы операционных систем Лекция Средства поддержки ВП (30) Ассоциативная память TLB TLB Отображение виртуальных страниц, данные о которых хранятся в TLB, производится быстро, однако кэш- память является дорогостоящей и имеет ограниченный размер; число записей в TLB от 8 до 2048 TLB Память называется ассоциативной, потому происходит одновременное сравнение номера виртуальной страницы с соответствующим полем во всех строках TLB Поэтому эта память является дорогостоящей В строке, поле виртуальной страницы которой совпало с искомым значением, находится номер страничного кадра

Основы операционных систем Лекция Средства поддержки ВП (31) Ассоциативная память При наличии ассоциативной памяти вначале номер виртуальной страницы ищется в ассоциативной памяти Если страница найдена - все нормально, за исключением случаев нарушения привилегий, когда запрос на обращение к памяти отклоняется Если описателя страницы нет в ассоциативной памяти, то она ищется через таблицу страниц TLB Происходит замена одной из записей TLB записью о найденной странице Нужно принимать решение о том, какую запись заменить

Основы операционных систем Лекция Средства поддержки ВП (32) Ассоциативная память TLB hit ratio Число удачных поисков номера страницы в TLB по отношению к общему числу поисков hit (совпадение) ratio (пропорция, отношение) hit ratio Таким образом, hit ratio - часть ссылок, которая может быть сделана с использованием ассоциативной памяти hit ratio Обращение к одним и тем же страницам повышает hit ratio Предположим, например, что для доступа к таблице страниц необходимо 100 нс, а для доступа к ассоциативной памяти - 20 нс hit ratio При 90% hit ratio среднее время доступа - 0.9*20+0.1*100 = 28 нс

Основы операционных систем Лекция Средства поддержки ВП (33) Ассоциативная память Вполне приемлемая производительность современных ОС доказывает эффективность использования ассоциативной памяти hit ratio Высокое значение hit ratio связано с наличием у данных объективных свойств: пространственной и временной локальности. При переключении процессов нужно добиться того, чтобы новый процесс не видел в ассоциативной памяти информацию, относящуюся к предыдущему процессу, например, очищать ее Поэтому использование ассоциативной памяти увеличивает время переключения контекстов

Основы операционных систем Лекция Средства поддержки ВП (34) Инвертированная таблица страниц Несмотря на многоуровневую организацию, таблицы страниц большого объема представляют проблему Она особенно актуальна для 64-разрядных архитектур инвертированной таблицы страницinverted page tableIPT Вариантом решения является применение инвертированной таблицы страниц (inverted page table, IPT) Power PC Hewlett-PackardIBM RTAS/400 Применяется на Power PC, некоторых моделях Hewlett-Packard, IBM RT и AS/400

Основы операционных систем Лекция Средства поддержки ВП (35) Инвертированная таблица страниц IPT В IPT содержится по одной записи на каждый страничный кадр ОП Одной таблицы достаточно для всех процессов Для хранения функции отображения требуется фиксированная часть ОП, независимо от разрядности и числа процессоров IPT Например, для Pentium с 256 Мб ОП нужна IPT размером в 64 тысячи строк

Основы операционных систем Лекция Средства поддержки ВП (36) Инвертированная таблица страниц IPT Применение IPT имеет существенный минус – записи не отсортированы по возрастанию номеров виртуальных страниц, что усложняет трансляцию адреса Один из способов решения проблемы – использование хэш-таблицы виртуальных адресов Номер виртуальной страницы отображается в хэш- таблицу с использованием хэш-функции IPT Каждой странице ОП соответствует одна запись в хэш- таблице и в IPT Виртуальные адреса с одним значением хэш-функции сцепляются в список (обычно не длиннее двух записей)

Основы операционных систем Лекция Средства поддержки ВП (37) Размер страницы Разработчики ОС для существующих машин редко имеют возможность влиять на размер страницы Однако для вновь создаваемых компьютеров решение относительно оптимального размера страницы является актуальным Как и следовало бы ожидать, нет одного наилучшего размера Скорее есть набор факторов, влияющих на размер Обычно размер страницы - это степень двойки от 2**9 до 2**14 байт

Основы операционных систем Лекция Средства поддержки ВП (38) Размер страницы Чем больше размер страницы, тем меньше будет размер структур данных, обслуживающих преобразование адресов Но тем больше будут потери, связанные с внутренней фрагментацией Как следует выбирать размер страницы? Во-первых, нужно учитывать размер таблицы страниц Здесь желателен большой размер страницы (страниц меньше, соответственно и таблица страниц меньше)

Основы операционных систем Лекция Средства поддержки ВП (39) Размер страницы С другой стороны, память лучше утилизируется при небольшом размере страницы В среднем пропадает половина последней страницы процесса Необходимо также учитывать объем ввода-вывода для взаимодействия с внешней памятью и другие факторы Проблема не имеет хорошего ответа Историческая тенденция состоит в увеличении размера страницы

Основы операционных систем Лекция Средства поддержки ВП (40) Размер страницы Как правило, размер страницы задается аппаратно PDP-11VAX-11 В PDP-11 – 8 Кб, в VAX-11 – 512 байт Motorola В других архитектурах размер страницы может задаваться программно (например, в Motorola 68030) В Pentium размер страницы колеблется от 4 до 8 Кб Но в большинстве коммерческих ОС поддерживается только один размер страниц

Основы операционных систем Лекция Заключение (1) Рассмотрены аппаратные особенности поддержки виртуальной памяти Разбиение адресного пространства процесса на части и динамическая трансляция адреса позволяют выполнять процесс даже при отсутствии некоторых его компонентов в основной памяти Подкачка недостающих компонентов с диска производится только при необходимости

Основы операционных систем Лекция Заключение (2) Следствием такой стратегии является возможность выполнения больших программ, размер которых может превышать размер основной памяти Для обеспечения должной производительности отображение адресов производится аппаратно с использованием многоуровневых таблиц страниц и ассоциативной памяти На следующей лекции будет рассматриваться программная поддержка виртуальной памяти