Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТООС, ЗАЧЁТ.docx
Скачиваний:
22
Добавлен:
18.12.2018
Размер:
58.48 Кб
Скачать

72. Архитектурные средства поддержки виртуальной памяти.

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

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

Для преобразования адресного пространства каждого процесса используется одна или несколько таблиц страниц, которые обычно хранятся в оперативной памяти. Для ссылки на таблицу страниц используется специальный регистр процессора. Динамическое  преобразование  адресов в системе осуществляется  следующим  образом. Выполняемый  процесс обращается   по виртуальному адресу v = (p,d). Механизм отображения ищет номер страницы p в таблице   отображения и определяет, что эта страница находится  в страничном  кадре p', формируя реальный адрес из p' и d.

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

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

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

76. Ассоциативная память.

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

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