на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


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


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

1. Для чего нужна память? Какие бывают виды памяти?

(Глава, необходимая для понятия предназначения памяти вообще)

Компактная микроэлектронная "память" широко применяется в современной аппаратуре

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

её видах следует начать с определения места и роли, отведённой памяти в ЭВМ.

Память является одной из самых главных функциональных частей машины,

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

Следует сказать, что команды и данные поступают в ЭВМ через устройство ввода, на

выходе которого они получают форму кодовых комбинаций 1 и 0. Основная память как

правило состоит из запоминающих устройств двух видов оперативного (ОЗУ) и

постоянного (ПЗУ).

ОЗУ предназначено для хранения переменной информации; оно допускает изменение

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

процессор берёт из ОЗУ код команды и, после обработки каких-либо данных,

результат обратно помещается в ОЗУ. Причем возможно размещение в ОЗУ новых

данных на месте прежних, которые при этом перестают существовать. В ячейках

происходит стирание старой информации и запись туда новой. Из этого видно, что

ОЗУ является очень гибкой структурой и обладает возможностью перезаписывать

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

программы. Поэтому ОЗУ играет значительную роль в ходе формирования виртуальных

адресов.

ПЗУ содержит такой вид информации, которая не должна изменяться в ходе

выполнения процессором программы. Такую информацию составляют стандартные

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

коэффициентов. Эта информация заносится в ПЗУ предварительно, и блокируется

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

работы процессора эта информация может только считываться. Таким образом ПЗУ

работает только в режимах хранения и считывания.

Из приведённых выше характеристик видно, что функциональные возможности ОЗУ шире

чем ПЗУ: оперативное запоминающее устройство может работать в качестве

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

информации, а ПЗУ не может быть использовано в качестве ОЗУ. Это заключение, в

свою очередь, приводит к выводу, что ПЗУ не участвует в процессе формирования

виртуальной памяти. Но бесспорно, ПЗУ имеет свои достоинства, например сохранять

информацию при сбоях, отключении питания (свойство энергонезависимости). Для

обеспечения надежной работы ЭВМ при отказах питания нередко ПЗУ используется в

качестве памяти программ. В таком случае программа заранее "зашивается" в ПЗУ.

2. Микросхемы памяти.

(Где, находится информация при работе компьютера?)

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

электронная память. Для построения ОЗУ, ПЗУ, регистровых ЗУ в настоящее время

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

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

интегральных схем (ИС) и больших интегральных схем (БИС) на основе кремния с

высокой степенью интеграции.

Рис.1                                          Рис.2

На рисунках 1 и 2 изображены микросхемы памяти как функциональных узлов: рис. 1

ОЗУ, рис. 2 ПЗУ. Основной составной частью микросхемы ОЗУ является массив

элементов памяти, объединённых в матрицу накопителя. Элемент памяти (ЭП) может

хранить один бит информации. Каждый ЭП обязательно имеет свой адрес. Для

обращения к ЭП необходимо его "выбрать" с помощью кода адреса, сигналы которого

подводят к соответствующим выводам микросхемы. ПЗУ построено аналогично, а

функции ЭП в микросхемах ПЗУ выполняют перемычки в виде проводников.

Это был краткий экскурс в так называемые "ресурсы" машинной памяти, необходимый

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

темы проекта.

3. Виртуальная память: Что это такое? Для чего это нужно?

(Рассматривает вопрос организации ВП)

Итак, мы вплотную подошли к проблеме виртуальной памяти: что это такое и для

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

технологий, машины несомненно преобразились в лучшую сторону: в мире

профессиональных программистов уже не существует понятия "ОЗУ на ферритовых

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

изобретением персонального компьютера, даже простой непрофессиональный

пользователь получил возможность использовать ПК для собственных целей и нужд.

Фирмой Intel™ и другими производителями вычислительной техники были выпущены

компьютеры достаточно простые в обращении (по сравнению с огромными ламповыми

IBM1401 или "Унивак П"). Компьютеры нового поколения*

————

* Фирмой Texas Instruments® выпущена модель 486DX475Mhz.

имели процессоры Intel™ 80386, 80486, с 16ти и 32х разрядными шинами, огромным

быстродействием (2566Mhz). Эти персоналки большой шаг вперед в развитии

компьютерных технологий. Вместе с этим у пользователя появилась тенденция

"оседлать" быструю машину заставить её делать как можно больше. Как экономить

машинное время и в то же время производить больше? Ответ на этот вопрос был

найден посредством организации мультипрограммной работы ЭВМ. Этот метод был

признан очень удобным, так как при организации мультипрограммного цикла:

1. Машина не простаивала зря: при одновременном выполнении нескольких программ и

команд в работе процессора появлялась новая функция анализ и распределение

машинного времени, отведённого на выполнение каждой программы;

2. За каждый машинный такт (вследствие с очередностью или уровнем приоритета,

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

несколько команд.

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

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

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

небольшую (а иногда и очень большую!) свою часть резидентной в оперативной

памяти. Возможны два варианта: сохранить большую часть ОЗУ свободной, по

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

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

ОП для загрузки новой программы. Второй вариант состоит в том, чтобы сразу

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

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

является примером мультипрограммной организации. Второй вариант является. Итак,

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

проблемой нехватки оперативной памяти. В современных компьютерах емкость ОЗУ

(аналог RAM) не превышает 1MB, 384KB из которых зарезервированы под ПЗУ, ППЗУ,

BIOS... Итого остаётся 640KB "чистой" оперативной памяти но в ней поместятся две

три программы и не более.

Хорошо видно, что внедрение более рационального решения сталкивается с

единственной проблемой памяти. Но можно ли каким-то образом решить эту проблему?

Именно на этом этапе на помощь пользователю приходит виртуальная память, которая

позволяет модифицировать ресурсы памяти, сделать объём оперативной памяти

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

программ, реально сэкономил время и повысил эффективность своего труда.

"Открытие" виртуальной памяти (далее ВП) внесло огромную контрибуцию в развитие

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

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

ЭВМ. Возникает много вопросов: как устроена ВП, как она функционирует, каким

образом при использовании ВП ресурсы обычной физической памяти "увеличиваются"

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

(устройства)..? Действительно, возникает множество интереснейших вопросов,

ответы на которые будут даны в следующих параграфах.

Почему виртуальная память также носит название математической, кажущейся? Как

можно реорганизовать ОЗУ таким образом, чтобы её объём удвоился, утроился?

Преимущество ВП состоит в том, что объем ОЗУ не может быть увеличено ни

практически, ни теоретически. (Это попросту невозможно ни какими средствами

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

помещать туда два бита информации вместо одного). Но как же построена ВП? Дело в

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

используется Внешнее Запоминающее Устройство (ВЗУ), которое обычно представляет

собой накопитель на гибком магнитном диске или жестком диске типа "винчестер".

(Последнее устройство используется чаще).

Действительно, использование виртуальной памяти обязательно подразумевает

обращение к диску так как при разработке и внедрению систем с таким методом

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

диске будут представлять собой единое целое. По своей сути ВП не такая уж

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

наличием свободного дискового пространства которое задействовано в роли ОП.

Необходимо понимать, что часть программ, которые мы не смогли разместить в ОП

из-за её нехватки, (см. нач. § 3) теперь будут размещены на диске и это будет

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

собой совокупность всех ячеек памяти оперативной и внешней, имеющих сквозную

нумерацию от нуля до предельного значения адреса. Использование ВЗУ очень

удобно, так как в это время пользователь оперирует с общим адресным

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

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

виртуальными адресами и физическими. Интересно проследить за формированием

адресного пространства при использовании ВП. Как же адресное поле может быть

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

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

параграфах.

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

(Страничная организация ВП, формирование виртуальных адресов)

Как было сказано ранее, для более эффективного функционирования ЭВМ используется

динамический метод распределения памяти. Это значит, что процесс распределения

памяти осуществляется непосредственно в ходе решения задачи с учетом предыдущего

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

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

переменную, массив, структуру. В настоящее время процесс динамического

распределения памяти осуществляется методом относительной адресации (с

использованием виртуальных адресов), в виде страничной и сегментной организации

памяти.

Рассмотрим первую форму организации ВП при её страничной организации (СО). Нужно

отметить очень важный пункт, что при СО, все ресурсы памяти, как оперативной,

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

работает с общим адресным пространством и не задумывается какая память при этом

используется: оперативная или внешняя, а эта общая память носит название

виртуальной (моделируемой). Виртуальная память разбивается на страницы, которые

содержат определённое фиксированное количество ячеек памяти. При этом одна

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

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

256, 512, 1024, 2048 Байт и более (числа кратные 256).

Рис.3

Так называемая физическая память, которая включает в себя ОЗУ и ВЗУ так же

разбивается на страницы объем которых должен соответствовать размерам ВП, иначе,

из-за неправильности размеров, ячейки физической памяти не будут совпадать с

ячейками ВП, что приведёт к путанице и "зависанию" системы. На рисунке 3

изображен способ формирования страниц ВП из физической памяти. Ячейки ОЗУ

разбиваются на страницы одинакового объема (например 1024 Байт), каждая из

которых может содержать какую-либо информацию. В ВЗУ, представленным накопителем

типа "винчестер", процессор резервирует определённые сектора с которыми

впоследствии будет работать ВП. Всё это складывается вместе и представляет собой

единую структуру ВП.

При работе пользователя, одна из его программ может находится в ОП (реально в

микросхеме на рис. 3), а другая в ВЗУ (на диске). При этом совершенно не

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

процессе операций процессор может обращаться только к ОП (или СОП

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

выполняется вторая программа. Но при работе второй программы, операционная

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

программа, в Оперативную Память.

Пользователь не задумывается над этим, но в этот момент страница ВП с диска, как

бы накладывается на свободную* страницу ОП. Таким образом, при выполнении даже

одной программы, различные части этой программы могут находится в ОП (СОП) или

на магнитных носителях, а одни и те же ячейки общей физической памяти могут

называться различными адресами.

Адресная часть команды в пользовательских программах должна содержать адрес

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

(искомое слово). При распределении памяти между различными частями программы,

процессор берёт на себя функции преобразования адреса, находящегося в

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

располагается требуемое слово, которое может хранится как в ОП, так и во внешней

памяти. Совокупность адреса физической страницы и адреса слова внутри этой

страницы образует физический адрес операнда.

Соответствие между номерами физических и математических страниц устанавливается

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

(диспетчер) памяти. Как правило эта программа является резидентной и управляет

всеми ресурсами машинной памяти. Для 286х процессоров используют менеджер

himem.sys, а для 386х и 486х машин emm386.sys и qemm.sys С помощью таких

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

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

является неотъемлемой частью организации ВП с СО, так как в ней содержится вся

информация о страницах, на данный момент находящихся в памяти. В страничной

таблице находятся адреса программ, уровень их приоритета и т. д. Содержание

страничной таблицы будет подробно описано ниже.

Рассмотрим пример преобразования виртуальных адресов в физические. Пусть

виртуальная память содержит 8 страниц по 2048 Байт в каждой странице. Для

компактности примера, предположим, что физическая память имеет ёмкость 4

страницы (по 2 Кб соответственно). При обращении к физической памяти для

проведения каких

14ти битовый виртуальный адрес

 3х битовый 11ти битовый адрес в пределах выбранной ВС

номер ВС

Рис.4

—————

* Эта страница необязательно может быть свободной. Подробности о

стратегиях замены (своппирования) страниц см. в § 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. Преимущества и недостатки ВП со страничной организацией.

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

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

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

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


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.