скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Виртуальная память

стратегиях замены (своппирования) страниц см. в § 8

либо операций (записи или выборки операндов, выполнения команды или

осуществления передачи управления), программой формируется 14ти битовый адрес,

соответствующий виртуальному адресу, который определяет ячейки в промежутке от 0

до 16 Кб 1. В данном примере 14ти битовый адрес как бы разбивается на 3х битовый

номер виртуальной страницы и 11ти битовый внутри той страницы, номер которой

определён тем самым 3х битовым номером. Пример кода адреса при страничной

организации памяти показан на рисунке 4. А связь между номерами страниц и самими

виртуальными адресами показана на рисунке 5. Итак, рассмотрим рисунок 4: 3х

битовый номер виртуальной страницы 110 (в binформате) соответствует номерам 6 и

6h (dec и hexформаты) необходимо помнить, что все операции в машине производятся

в шестнадцатеричном формате. Таким образом, выбирается страница с номером 6 и

внутренним адресом 00101001110B (14Eh). Значит по рисунку 5, этот физический

адрес будет соответствовать виртуальному адресу 12288...

Страница Виртуальные адреса

Рис.5

Это значит, что шестая страница виртуальной памяти начинается с адреса 12288 и

заканчивается по адресу 14335. Общий объем виртуальной страницы составляет 2048

Байт (2 Кб).

Для определения физического адреса пользовательской программы, резидентный

диспетчер памяти под управлением операционной системы должен установить

местонахождение виртуальной страницы. Физическая страница памяти, которая

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

быть и на диске. Как было сказано ранее, для того чтобы установить соответствие

между виртуальной и физической страницами, ОС обращается к страничной таблице,

каждая из строк которой содержит по одной записи для каждой из восьми

виртуальных страниц. Как же организованна эта страничная таблица? Запись в

строке содержит три поля Первое однобитовое поле по сути является флагом в этой

ячейке может находится либо включенный, либо выключенный бит (1 или 0), что

указывает на конкретное местонахождение страницы: если в этом поле содержится

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

внешней памяти, если значение бита в данном поле равно 1, то искомая страница

уже находится в оперативной памяти. Таким образом, все функции единственного

бита в этом поле принимать значения True или False. Второе поле содержит адрес

внешней памяти. Этот адрес станет необходим если искомой страницы нет в

оперативной памяти, а она находится в ВЗУ и её надо переписать в ОЗУ для работы

с программой, находящейся в этой странице. По этому адресу машина обращается к

виртуальной странице, хранящейся на диске и копирует её содержимое в ОЗУ. Важное

замечание заключается в том, что если в первом однобитовом поле флаг находится в

состоянии 1, то второе поле автоматически игнорируется, потому что искомая

страница уже "сидит" в ОП и нет никакой необходимости "MOV CX, ADDRESS"

(засылать в регистр CX адрес внешней ВС для его обработки). После того как

машина отработает с данной страницей ВП и надобность в ней исчезнет (возможно на

какое-то время), эта страница обратно переносится на диск, освобождая место для

другой страницы которая нужна машине в данный момент для продолжения работы.

Наконец третье поле, функциональная нагрузка которого указывать номер страницы

оперативной памяти, в которой находится необходимая информация. Если нужной

страницы нет в ОП, а она находится на диске (бит первого поля выключен), то

третье поле игнорируется. На рисунке 6 изображена схема Страничной организации

виртуальной памяти.

 

Рис.6 Страничная организация Виртуальной Памяти.

Итак, при распределении памяти в машине, супервизор формирует страничную

таблицу. Входом в эту таблицу является номер математической страницы, в которой

находится нужная ячейка памяти. Если адресная страница находится в ОП, то

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

заносится в два левых разряда адресного регистра оперативной памяти, а адрес

внутри виртуальной страницы (11 бит исходного адреса) переписывается в 11 правых

разрядов адресного регистра. Это очень хорошо показано на правой части рисунка.

Pµ регистр математического адреса, Pф регистр физического адреса, p номер

математической страницы, l смещение. Таким образом, lсмещение переписывается из

регистра математического адреса в регистр физического без изменений. По номеру p

из страничной таблицы извлекается номер физической страницы и, если эта страница

уже находится в ОП, то её номер записывается в регистр физического адреса, если

же искомая страница находится в ВЗУ, то она сначала переписывается в ОП. Для

этого используется или свободная страница ОП, или какая-либо страница ОП

освобождается: информация из этой страницы снова переносится во внешнюю память

(но ни в коем случае не стирается!). После этого страничная таблица обновляется

в неё заносятся сведения о новых страницах (той которая на данный момент

находится в ОЗУ и той которая переместилась во внешнюю память). Страничная

таблица является таким видом информации которая очень часто обновляется. Она

постоянно "дышит". Каждый раз когда у пользователя возникает потребность в новой

информации (в частности в новой странице памяти), привходит процесс

свопирования, то есть перемены местами страниц ОП и ВЗУ (англ. swap менять

местами). При этом в страничную таблицу заносится наиболее свежая информация о

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

удалённая из ОП, содержится ли в этой странице нужное на следующем этапе слово и

т. д. У страничной таблицы множество работы.

Как было отмечено, для наиболее эффективного функционирования машины необходимы

большая ёмкость ОЗУ и быстродействие. Как известно, обычная оперативная память

(RAM) не является максимально быстродействующей. Это значит, что если бы

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

реальной потерей времени, так как процессор довольно часто обращается к СТ.

Выход из этой неудобной ситуации был найден при помещении страничной таблицы в

сверхоперативную память, которая обладает наибольшим быстродействием, хотя и во

много раз меньше по объему чем RAM. Но этого объёма вполне хватает процессору и

он получает возможность работать с большей производительностью, так как при

каждом перераспределении памяти между пользовательскими программами

осуществляется изменение данных, содержащихся в страничной таблице.

При страничной организации памяти очень важным является алгоритм своппирования

страниц. Действительно, процессор должен "подумать" какую страницу стоит в

первую очередь удалить из ОП, дабы на освободившееся место переписать из внешней

памяти необходимую в данный момент страницу... Этот вопрос будет подробно

рассмотрен в § 8.

5. Преимущества и недостатки ВП со страничной организацией.

(Анализ и оценка эффективности СО при рассмотрении преимуществ и недостатков)

Несомненно, применение виртуальной памяти в современных машинах это важнейшее

достижение как в компьютерной технологии, так и в максимизации удобств

создаваемых для пользователя. Но, как известно, каждая система имеет свои

преимущества и недостатки. Предлагаю проанализировать суть применения ВП; её

слабости и критерии эффективности, её плюсы и минусы.

Во-первых одним из преимуществ ВП с СО является достаточно большой объём прямо

адресуемой памяти. Действительно объем памяти может исчисляться сотнями мегабайт

(и даже гигабайтами). Размер виртуальной памяти целиком зависит от объёма

накопителя на [жестком] магнитном диске. Созданный SWAPфайл размещается на диске

и эмулирует оперативную память. При этом пользователь не задумывается о том куда

будет помещен "кусок" его программы с которой он только что отработал. Таким

образом, ещё одним преимуществом ВП с СО является то, что программы пользователя

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

преимуществ ВП с СО (то, ради чего, собственно и была изобретена виртуальная

память) повышение уровня мультипрограммной работы. Как было сказано выше, эта

цель была одной из самых главных. С организацией ВП с СО пользователь получил

реальную возможность загружать в память большее количество программ для того

чтобы машина обрабатывала программы сразу (в действительности процессор

устанавливает приоритет для каждой программы, находящейся в памяти, и далее в

соответствии с приоритетом выделяет определённое количество времени на

реализацию каждой программы или команды). Сам процессор постоянно "занят" каждый

машинный такт выполняет определённую программу. Метод организации виртуальной

памяти со страничной организацией значительно повысил эффективность работы с

машиной.

У каждого гениального изобретения к сожалению есть свои недостатки. Таковые есть

и у ВП с СО. Попытаемся проанализировать их. Основным недостатком виртуальной

памяти пожалуй является то количество времени, которое машина тратит на

обращение к внешней памяти. Извлечь необходимую информацию из ячеек оперативной

памяти не представляет особого труда и больших затрат времени. Совсем иначе

обстоит дело с диском: для того чтобы найти необходимую информацию, нужно

сначала "раскрутить" диск, потом найти необходимую дорожку, в дорожке найти

сектор, кластер, далее считать побитовую информацию в ОП. Все это требует

времени и, порой если при методе случайного удаления страниц*, процессору

понадобятся сразу несколько страниц, хранящихся во внешней памяти, большого

времени. К сожалению, этот недостаток принадлежит к виду "неисправимых". И если

другие недостатки, рассмотренные ниже ущё можно каким-то образом устранить

(например путем расширения технических средств и т. д.), то данный недостаток не

может быть устранён никоим образом, так как понятие виртуальной памяти

ассоциируется с применением внешней памяти (магнитного диска).

Следующий недостаток скорее относится к вопросу о технической характеристике

компьютера: наличие сверхоперативной памяти (СОП). Как было сказано выше, СОП,

как правило, имеет не

—————

* Методы своппирования страниц рассмотрены в § 8. большую ёмкость и достаточно

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

служебных кодов, а также информации к которой осуществляется наиболее частое

обращение в процессе выполнения программы. Этот недостаток в работе с ВП к

счастью можно ликвидировать. Что касается технической характеристики есть ли в

микросхемах оперативной памяти дополнительные интегральные схемы, которые

являются запоминающими устройствами СОП? Если есть, то проблема с СОП решена, а

если нет..? Тогда, благодаря достижениям в области компьютерной технологии,

могут использоваться драйверы, резервирующие маленькую область ОП для

имитирования СОП. Итак, что касается этого недостатка, то, мне кажется, что он

не настолько серьёзен, чтобы о нём беспокоится. И, наконец третьим недостатком

является внутренняя фрагментация страниц.

6. Сегментно-страничная организация виртуальной памяти

(Структура, функционирование, отличия от ВП с СО, преимущества и недостатки)

При использовании метода сегментно-страничной организации ВП, пользовательские

программы разбиваются на отдельные массивы. Эти массивы независимые участки

называются сегментами. Сегмент представляет собой единый логический объект,

содержащий какую-либо процедуру, массив или набор данных. Как правило

информация, содержащаяся в сегменте, однородная, то есть в одном сегменте могут

находится только служебные коды программы, другой может являться сегментом

стека, третий содержать коды связи с объектными (.obj) файлами и т. д.

Каждый сегмент представляет собой последовательность адресов от нуля до

определённого максимального значения. Отличие сегмента от страницы состоит в

том, что длинна сегмента может изменяться в процессе работы.

Сегменты, как и любая структура виртуальной памяти, могут размещаться как в ОП,

так и во внешней памяти (магнитных носителях). ВП с ССО функционирует подобно ВП

с СО: если требующийся на данный момент сегмент отсутствует в оперативной

памяти, то при надобности работы с ним, он предварительно перемещается в ОП.

Сегментно-страничная организация памяти требует более сложной

аппаратурно-программной организации. Рассмотрим как же осуществляется обращение

к ВП посредством ССО. По самому названию "сегментно-страничный" нетрудно

догадаться, что при таком методе используется как сегментная, так и страничная

таблицы. Это очень похоже на сложно структурированный метод "процедуры в

процедуре" во многих алгоритмических языках. На рисунке 7 подробно показан

способ организации ВП с ССО. Адрес ячейки в данном случае складывается из 3х

частей: первая содержит номер самого сегмента (Segment), по этому номеру машина

обращается к сегментной таблице. Вторая часть адреса содержит номер искомой

страницы (page), которая находится внутри выбранного сегмента и третья смещение

(length), по которому находится требуемый адрес. Pµ, обведенное в двойную рамку

показывает математический адрес, а Pф физический. Как и при СО, смещение l

переписывается в ячейку физического адреса без изменений.

Вверху рисунка, аббревиатурой N обозначен номер какой-нибудь программы

пользователя. А0 с индексом 1 обозначает конкретный начальный адрес сегментной

таблицы для данной программы. Сначала берется этот адрес и номер сегмента S из

регистра математического адреса. Оба этих адреса складываются в сумматоре,

который изображен в виде обведенного плюса. Получившийся адрес А1 + S является

входом в сегментную таблицу (изображен в первой колонке сегментной таблицы).

Далее, благодаря этому адресу, отыскивается соответствующий адрес страничной

таблицы (А0 с индек

сом 2), который в свою очередь суммируется с номером искомой страницы p в

сумматоре. Результирующая сумма есть вход в страничную таблицу. Структура

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

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

этой страницы (включенный бит страница находится в ОП, выключенный во внешней

памяти).

Рис. 7 Сегментно-страничная организация ВП.

Итак, краткое описание функционирования ВП с ССО: с помощью начального адреса

сегментной таблицы и номера сегмента из регистра математического адреса (S)

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

страничной таблицы. К этому адресу в свою очередь прибавляется номер страницы из

РМА. Эта сумма служит входом в страничную таблицу, в которой затем отыскивается

адрес искомой физической страницы и, в соответствии с уровнем доступности,

процессор либо начинает работать с этой страницей, либо вырабатывает

аппаратурное прерывание и подключает супервизора, который затем организует ее

перепись в ОП. Если вся ОП будет занята, то супервизор, в соответствии с

принятым методом (см. § 8), своппирует какую-нибудь страницу.

7. Виртуальная память в современных компьютерах

(ВП в современных машинах, отличия, преимущества...)

Как было сказано выше, с развитием компьютерных технологий стали появляться

новые перспективы использования персональных компьютеров. В § 3 упоминается о

компьютере Intel™ 486DX4 с тактовой частотой 75Mhz, произведенным фирмой Texas

Страницы: 1, 2, 3


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.