рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Организация виртуальной памяти

Организация виртуальной памяти - раздел Философия, Организация памяти компьютеров В 1961 Году Группа Исследователей Из Манчестера (Англия) Предложила Способ Ав...

В 1961 году группа исследователей из Манчестера (Англия) предложила способ автоматического перемещения сегментов программ и данных между оперативной и внешней памятью компьютера, т.е. между полупроводниковой памятью и накопителями на магнитных дисках. Автоматизм перемещения сегментов в многоуровневой памяти обеспечивается за счет использования ресурсов аппаратуры и операционной системы компьютера. Построенная таким образом память, объединяющая в себе и оперативную, и внешнюю память была названа виртуальной (фиктивной, кажущейся) памятью. За счет использования оперативной памяти была решена проблема объединения в единую систему оперативной памяти и накопителей на магнитных дисках, в результате чего программисты получили возможность работать с очень большими адресными пространствами – от 4 Гигабайт. При этом виртуальная память обеспечивает равнодоступность любых адресов команд и данных.

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

Равнодоступность слов данных должна быть физически реализована путем встраивания в компьютер средств, обеспечивающих, во-первых, преобразование виртуальных адресов в адреса ячеек, и, во-вторых, передачу слов данных в оперативную память, если адресуемое слово на момент обращения к нему размещается вне оперативной памяти. Таким образом, в физическом отношении, виртуальная память – это совокупность оперативной и внешней памяти, охваченных средствами преобразования виртуальных адресов в физические адреса ячеек и средствами, автоматизирующими перемещение данных между устройствами памяти.

Процессы преобразования адресов и перемещения данных наиболее просто реализуются при страничной адресации памяти. Метод страничной адресации состоит в следующем. Множество адресов (слов, ячеек) разделяется на сегменты, состоящие из, например, 212 соседних адресов и называемые страницами. Так, адреса 0, 1, …,212 - 1 относятся к странице 0, адреса 212, 212 + 1, …,213 - 1 – к странице 1 и т.д. В результате этого адрес рассматривается как совокупность двух полей

 

 
 

 


Здесь P – адрес страницы, принимающий значения 0, 1, …, 220 – 1, и А – адрес байта в странице Р , принимающий значения 0, 1, …, 4096.

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

 

 


Здесь S – адрес сегмента, принимающий значения 0, 1, …, 220 – 1, и А – адрес байта в сегменте S. Таким образом, страница – совокупность из 212 байтов, а сегмент - совокупность из 212 байтов, являющихся местом хранения страницы.

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

Текущее состояние памяти компьютера характеризуется таблицей страниц, структура которой приведена в табл. 5.1. Отдельной странице Р = 0, 1, 2, … соответствует одна строка таблицы, в которой указываются параметры, характеризующие страницу Р. Значение SР определяет адрес сегмента SР = 0, 1, 2, …, в котором размещается страница Р, иначе говоря, физический адрес страницы Р. Бит dp называется признаком доступности страницы P. Если страница Р размещается в оперативной памяти, то dp = 1, поскольку эта страница доступна для процессора. Если страница Р хранится во внешней памяти, то бит доступности dp = 0. Таблица страниц размещается в оперативной памяти и в любой момент времени доступна процессору.

Порядок использования таблиц страниц для отображения виртуальных адресов иллюстрируется рис. 5.1. Таблица страниц должна содержать все данные о состоянии всех сегментов, относящихся к инициируемой программе, данным, которые будут обрабатываться программой, и прочей информации, относящейся к программе. Поскольку и программа, и множество данных, которое обрабатывает программа, ограничены, то таблица страниц также ограничена, т.е. содержит конечное число строк. Физически страницы могут размещаться как в оперативной памяти, где они доступны для процессорной обработки, так и во внешней памяти – в накопителях на магнитных дисках (см. рис. 5.1.). В рассматриваемом примере таблица страниц определяет, что страницы с адресами 0, 212, 1 и 2 доступны для процессорной обработки, а страница с адресом 32875 находится в накопителе на магнитных дисках и недоступна процессору.

Способы преобразования виртуальных адресов.Команды и слова данных идентифицируются в программе своими виртуальными адресами.Для обращения к слову необходимо преобразовать виртуальный адрес в физический, для чего в процессор встраивается схема преобразования адресов.

Наиболее простая схема преобразования адресов изображена на рис. 5.2. Виртуальный адрес слова определяется путем нахождения адреса ячейки, указанного в команде. Для нахождения адреса ячейка, где хранится слово, производится обращение к ячейке (В + Р) оперативной памяти, где В – фиксированный базовый адрес таблицы страниц, и выбираются значения Sd и dp, описывающие страницу Р. Если dp = 0, то в данный момент времени страница P недопустима для обработки. По этой причине работа процессора прерывается сигналом d = 0 и управление передается средствам перемещения страниц. Если dp = 1 , то S : = Sp и производится обращение к ячейке S.A оперативной памяти.

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

Для обеспечения малых затрат времени на преобразование виртуальных адресов в физические адреса в процессор встраивается модуль управления памятью, который является операционным устройством, выполняющим следующие функции:

1) загрузку из таблицы страниц в ячейки специального запоминающего устройства физических адресов страниц;

2) преобразование виртуальных адресов страниц в физические адреса.

В качестве запоминающего устройства модуля управления памятью используется ассоциативное запоминающее устройство небольшой емкости – обычно емкостью в 8 или 16 слов. Каждая ячейка ассоциативного запоминающего устройства имеет следующую структуру (рис. 5.3).Поскольку рабочее множество страниц невелико и в множество могут быть загружены самые различные виртуальные страницы, виртуальный адрес Р сравнивается со всеми адресами Рα. Если адреса Р и Рα имеют одинаковое значение, то значение физического адреса Sα выбирается из ячейки α и используется в качестве физического адреса стрвницы. Если же виртуальный адрес страницы Р не совпадает ни с одним из адресов Р0, Р1, РL, то фиксируется промах в ассоциативном запоминающем устройстве и производится об ращение к таблице страниц, в которой размещается вся информация о программе и данных. Естественно, что при полной занятости емкости ассоциативного запоминающего устройства, одна из его ячеек должна быть выделена для загрузки в нее данных о новой затребованной странице из таблицы страниц. Для решения задачи о выделении одной из ячеек ассоциативного запоминающего устройства для загрузки в нее новых данных о странице используется управляющее поле УПα, в котором хранятся данные о занятости и об интенсивности использования ячейки α.

Схема и функциональная микропрограмма преобразования виртуальных адресов в физические адреса представлена на рис. 5.4 и рис. 5.5.

В ячейках α = 0, 1, … ассоциативного запоминающего устройства размещаются описания страниц Р0, Р1, …, РL, хранимых в таблице страниц оперативной памяти. Виртуальные адреса Р0, Р1, …, РL размещены в адресном поле АП. В рабочем поле РП представлены физические адреса S0, …, SL этих страниц , причем все физические адреса Sα принадлежат оперативной памяти. Управляющее поле УП состоит из признаков занятости z0, …, zL ячеек 0, …, L и признаков активности t0, …, tL этих ячеек. Бит zα = 0, если ячейка α ассоциативного запоминающего устройства свободна (не содержит описания страницы), и zα = 1, если описание

некоторой страницы загружено в ячейку α. Значение признака активности страницы tα определяется числом обращений к странице α. При каждом обращении к странице α значение признака активности страницы увеличивается на единицу: tα := tα + 1.

Преобразование виртуального адреса в физический адрес выполняется в соответствии с микропрограммой (рис. 5.5). Преобразование начинается с проверки наличия в ассоциативном

запоминающем устройстве описания страницы Р. Если Р Є АП, то преобразование сводится к выборке физического адреса Sα из ячейки α , в которой размещается страница Рα = Р. В противном случае местоположение страницы Р определяется обращением к таблице страниц, из которой выбирается физический адрес и признак доступности dp страницы Р. Если dp = 1, то страниц Р доступна и ее описание заносится в ячейку γ ассоциативного запоминающего устройства, выделяемую управляющим полем УП. Ячейка γ назначается из числа свободных ячеек, отмеченных признаком tγ = max. Заметим, что в данном случае информация, хранимая в ячейке γ, просто затирается описанием страницы, поскольку копия уничтоженного в ассоциативном запоминающем устройстве описания имеется в таблице страниц. Емкость ассоциативного запоминающего устройства выбирается исходя из предельно допустимой вероятности обращения к таблице страниц и зависит от количества страниц, отводимых задаче в таблице страниц оперативной памяти. Вероятность обращения к таблице страниц уменьшается с увеличением емкости ассоциативного запоминающего устройства и возрастает при увеличении числа страниц, принадлежащих обрабатываемой задаче. Обычно ассоциативное запоминающее устройство обслуживает не менее 90% обращений к таблице страниц, и, следовательно, затраты времени на преобразование виртуальных адресов определяются быстродействием ассоциативного запоминающего устройства.

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

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

Наиболее широко применяется алгоритм удаления наиболее неиспользуемой страницы из оперативной памяти, называемой алгоритмом LRU (Liast Recently Used). Хотя этот алгоритм работает достаточно хорошо, в ряде случаев возникает пробуксовка процесса. Например, пусть программа выполняет большой цикл, охватывающий девять виртуальных страниц, а в ассоциативном запоминающем устройстве имеется место только для восьми страниц. Когда программа перейдет к обработке страницы семь, в оперативной памяти размещается восемь страниц с адресами 0, 1,… , 7 и требуется вызвать страницу 8 из дисковой памяти. Алгоритм LRU в качестве удаляемой назначит страницу 0 как наиболее давно используемую, и на ее место будет записана страница 8, ранее находившаяся в дисковой памяти. В результате таблица страниц перейдет в состояние 8, 1, 2, …, 7. После выполнения команд из страницы 8 управление передается в страницу 0. Этот переход приводит к удалению страницы 1, на место которой будет записана страница 0. Затем происходит обращение к странице 1, которая только что была удалена в дисковую память, и т.д. Очевидно, что в этой ситуации алгоритм LRU работает плохо, но и другие алгоритмы назначения кандидатов на удаление из оперативной памяти также плохо работают в сходных ситуациях. Однако если расширить размер рабочего множества, число ошибок из-за отсутствия страниц конечно уменьшится.

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

– Конец работы –

Эта тема принадлежит разделу:

Организация памяти компьютеров

Дополнительными разрядами контролирующими корректность записанного кода При чтении зеркальных копий обращение производится сразу к двум дискам... Уровень RAID основан на использовании алгоритма Хемминга для проверки и... Хемминга позволяет устранить одну ошибку в любом секторе диска По этой причине стремятся уменьшить количество...

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

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Организация КЭШ-памяти
Быстродействие компьютера в наибольшей мере зависит от быстродействия ядра компьютера – процессора и оперативной памяти. Такт работы процессора составляет обычно 1 – 5 наносекунд и команда выполняе

Организация RAID – массивов
В 1988 году исследователей из США предложила ряд способов построения системы из большого числа накопителей на жестких магнитных дисках, которые начали называться RAID (Redundant Array of Inexpensiv

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги