Анализ и оценка виртуальной памяти ЭВМ при ее сегментно-страничной организации

Загрузить архив:
Файл: 240-1619.zip (46kb [zip], Скачиваний: 99) скачать

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

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

Компактная микроэлектронная «память» широко применяется в современной аппаратуре самого различного назначения. Но тем не

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

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

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

и обрабатываемых данных.  Следует сказать,что команды и дан-

ные поступают в ЭВМ через устройство ввода, на выходе которого

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

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

ОЗУ предназначенно для хранения переменной информации; оно допускает изменение своегосодержимого в ходевыполнения вы-числительного процесса. Таким образом, процессор берёт изОЗУ

код команды и, после обработки каких-либо данных, результат об-

ратно помещается в ОЗУ.  Причемвозможноразмещение в ОЗУ

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

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

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

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

формирования виртуальных адресов.

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

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

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

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

тем пережигания легкоплавких металлических перемычек в струк-

туре ПЗУ. В ходе работы процессора эта информация может толь-

ко считываться.Таким образомПЗУ работаеттолько в режимах

хранения и считывания.

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

ные возможности ОЗУ шире чем ПЗУ: оперативное запоминающееустройство  может работать в качестве  постоянного,то есть в ре-

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

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

заключение, в свою очередь, приводит к выводу, что ПЗУ не учас-

твует в процессе формирования виртуальной памяти. Но бесспорно,

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

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

Дляобеспечениянадежной  работыЭВМпри  отказахпитания

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

Copyright © 1994 by Vsevolod Ukrainsky

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

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

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

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

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

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

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

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

                         Рис.1                                Рис.2

   На рисунках 1 и 2 изображены микросхемы памяти как функци-

ональных узлов:рис. 1 - ОЗУ,рис. 2 - ПЗУ.Основной составной частью микросхемы ОЗУ является массив элементов памяти, объе-

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

нить одинбитинформации. Каждый ЭП обязательно имеет свой адрес. Дляобращения к ЭП необходимо его «выбрать» с помощью

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

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

   Это былкраткий экскурс в такназываемые «ресурсы» машин-

ной памяти, необходимыйдля более глубокогопонимания как фу-

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

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

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

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

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

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

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

сиональныйпользовательполучил возможностьиспользовать ПК

для собственных целей и нужд.  Фирмой Intel™и другими произво-

дителямивычислительной техникибыливыпущены  компьютеры достаточно простые в  обращении(по сравнению с огромными лам-повыми IBM-1401 или «Унивак П»).  Компьютеры нового поколения*

————

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

имелипроцессорыIntel™ 80386,  80486, с 16-ти и 32-х разрядными  шинами, огромным быстродействием (25-66Mhz).Эти  персоналки - большой шаг вперед в развитии компьютерных технологий. Вместе с

этим у пользователя появилась тенденция«оседлать» быструюма-

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

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

   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

Copyright © 1994 by Vsevolod Ukrainsky

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

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), по этому номеру маши-

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

Copyright © 1994 by Vsevolod Ukrainsky

житномерискомой  страницы (page), которая  находитсявнутри выбранного сегмента итретья-  смещение(length),по которому находится требуемый адрес. Pµ, обведенное в двойную рамку пока-зывает математический адрес, а Pф - физический.Как и при СО, смещение l переписывается в ячейку физического адреса без изме-нений.

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

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

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

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

А1+ S является входом в сегментную таблицу (изображен в первой колонке сегментной таблицы). Далее, благодаря этому адресу, отыс-кивается соответствующий адрес страничной таблицы (А0с индек-

сом 2),которыйв свою  очередь суммируется сномером искомой страницыpв сумматоре.  Результирующаясумма-есть вход в страничную таблицу.Структура страничной таблицы нам уже зна-кома:  благодаряполучившемуся адресу,находится соответствую-

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

в ОП, выключенный - во внешней памяти).

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

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

начального адресасегментной таблицы и номера сегмента из регист-

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

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

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

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

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

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

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

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

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

стали появлятьсяновые перспективыиспользования персональных

компьютеров. В § 3 упомонается о компьютере Intel™ 486DX4 с такто-

войчастотой75Mhz,  произведеннымфирмойTexas  Instruments. Несомненно, возможности  этогокомпьютераогромны. Он комплек-

туетсяогромнымжестским диском (1.2GB) и имеет 32MB оператив-

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

для разработкикосмического корабля, робота-хирурга или в области кибернетики.Для этих  целей необходимоиспользовать «серьёзное» программноеобеспечение(скажем,  производимоефирмойSilicon Graphics®), требующее огромного количества оперативной памяти.В такой ситуации даже 32MB может нехватать.В таких ситуациях по-прежнему проявляется тенденция к использованию ВП.

   Виртуальная память применяется во многихпрограммах, операци-

онныхоболочках,коммуникационномпрограмном  обеспечении.В

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

Использование ВП в Microsoft®Windows™ 3.1*

Microsoft Windows 3.1является наиболее популярнойоперационной оболочкой как среди любителей, так и среди пофессиональных поль-зователей. Windows обеспечивает независимый запуск и выполнение сразунескольких программ.Большинство  другихоболочек и опе-рационных   системрасчитаны  навыполнениев  данныймомент только одной пограммы.В рамках Windows можно запустить сразу несколько программ. Для этих целей используется ВП.

1. RAM диск (виртуальный, псевдо, электронный диск)-  Разновид-

ность виртуальной памяти. Супервизор резервирует для него область EMS или XMS памяти и, такимобразом устанавливает диск в памя-

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

ты. Но RAM диск не является прямым аналогом ВП.

2. Использование SWAP-файла виртуальной памяти.

Виртуальная память воболочке Windows 3.1 используетсятолько в расширенном (extended) режиме.Каковы характеристики компьюте-

ра,работающегос Windows  в расширенномрежиме?Он  должен иметь 386-ой процессор и минимум 2 мегабайта памяти.Итак вирту-альная память в Windows представляетсобой механизм, обеспечива-

ющий расширение адресного  пространства за счетдискового прост-

—————

* Рассмотрены компьютеры фирм IBM (PS/2, Pentium™, OverDrive™)

AcerPower™, NEC, American Megatrends, Zeos™, Tandy™, HP Vectra™,

Toshiba, Dell, Packard Bell  идругие машины укомплектованные про-

цессорамиIntel™и  Cyrix™.Машины ЕС,из-за недостатка ОЗУ не

работают в Windows и в данном примере не рассмотрены.

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

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

го пространства,остальная же часть которого расположена на диске

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

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

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

вания», процессорможетсвоппировать страницуоперативной па-

мяти со страницей на диске. (от англ. swap - менять местами). Таким

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

страница с которойтолькочто  работали«отправляется»на  диск.

В Windows 3.1 возможно несколько вариантов реализации ВП. На ри-

сунке8 показанноиспользование двух видов ВП в Windows:разно-

секторного (temporary)иперманентного (permanent) swap-файлов

              Рис.8Разносекторное и перманентное применение ВП

Разносекторный (временной) swap-файл

Разносекторныйswap-файл состоит из множестванезависимых сек-

торов, которые разбросанны по всему диску. Каждый раз когда опера-

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

страницу, она должна обратится к  разносекторному swap-файлу.Но

неудобство применения такой разновидности ВПзаключается в том,

что в концекаждой части этого целого своп-файла стоит пересылка

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

цессору необходимо  «представить» в памяти целостную картину дан-

ногофайладабы извлечь изнего нужную  информацию.Для этого

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

зирует представленный в памяти файл.

   Если пользователь выбирает такой вид реализации ВП, то Windows

автоматически   создаётразносекторныйswap-файл  вдиректории

Windows. Обычно этот файл носит название WIN386.SWP. Неудобство такого метода ещё заключается в том, что  разносекторный файл(по

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

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

ки удаляется. Вот как может быть представленна программа, написан-ная на Паскале в виде разносекторных файлов:

~pas0c4e.tmp   -  первая страница начинается по адресу 0C4A;

~pas1158.tmp   -  вторая находится в секторе с номером 1158;

~pas1b5a.tmp   -и третья расположена в секторе 1B5A.

В конце каждого .tmp-файла указанна ссылка на другой такой же.

Перманентный (постоянный) swap-файл

Втораяразновидностьсвоп-файлов носитназвание перманентных

Такой файл занимает значительную часть диска, специально зарезер-

вированную для этих целей. Размер перманентного файла определяет-

ся наличием системных ресурсов,  отведенных для работы с Windows

(размером ОП, свободным местом на жестскомдиске и даже  време-

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

быстрее чем разносекторный,так как Windows знает настоящее мес-

тонахождение этогофайла и нет необходимостисобирать его из час-

тей.Обычно этот файлносит имя  386SPART.PAR или SPART.PAR

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

ОП,то использованиеперманентного своп-файла более эффективно.

Перменентныйфайл эмулирует реальнуюоперативнуюпамять  и,

поэтому не стирается при выходе из Windows.

Анализ и оценка применения разных типов ВП в Windows.

Каждая из разновидностей ВП в  Windows имеет свои преимущества

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

не работает в Windows.

   Но в целом,виртуальная память играет значительную рольв при-

менении Windows.Как былосказанно ранее,адресное пространство

расширяется засчет объединения  ячеек реальной ОПс ячейками на

магнитномдиске и при этомразмер  физической памяти становится

значительно большим.Это немаловажно, так какWindows очень по-

пулярная операционная среда,  доступная какпрофессионалу,так и

простомупользователю.Размер  машинноговремени«уделяемого»

Windows достаточно велик.  Вследствиеэтого различнымифирмами

(Microsoft®,BorlandInternational,Lotus  Developmentи т. д.)было

написанно многопрограммногообеспечения  специальнодлясреды

Windows.Так же было разработанномножествопрофессиональных

пакетов,ориентированныхна  математику,статистику,программи-

рование, бухгалтерию и т. д.  Вот здесь инашлосьместо для приме-

нения виртуальнойпамяти.Благодаря  возможности работыв муль-

типрограммном режиме,  огромныемассивыинформации  постоянно

находятсяв движении.Пользователь можетзапустить  на выполне-

ние сразу несколько программ, (каждая из которыхтребует памяти).

ПрименениеВПзначительно  увеличиваетобъемфизической  па-

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

8. Способы замены (свопирования) страниц

     (Механизмы обмена страниц)

   Как было упомянуто выше,использование ВП подразумевает при-менение магнитного диска на котором хранятся те  страницы или сег-

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

Метод применения ВПдовольно прост:те страницы с которыми по-

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

к ним осуществляется непосредственный доступ. Через определённое

время процессору, отработавшему с данной страницей, требуется дру-

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

торой только что отработали  «вытесняется» на диск, а ни в коем слу-

чае не уничтожается.

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

на страницы полностью занята.И при необходимости продгрузить но-

вую страницу, супервизордолжен установитькакую страницу пере-

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

точно сложная задача,таккак удалённая  страницаможетпонадо-

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

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

1. Случайное удаление страниц...

Случайное удаление не является самым эффективным способом, так как оно не мо-жет дать стопроцентной гарантии, чтотолько что удалённаястраница не  понадо-

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

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

страницы в  оперативной памятии переписывает егов swap-файл (на диск).При

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

2. Удаление по времени пребывания в ОП...

Механизм этой стратегии можно представить как «первым вошел, первым вышел».

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

ном этапе будет удалена первой. Этот метод также не универсален так как каждой

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

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

3. Удаление в связи с давностью использования...

На мой взгляд, этот метод является наиболее удачным.Механизм его таков: если страница дольше всех находится в ОП, значит  пользователь в течение долго вре-

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

4. Удаление по вероятности использования...

Вероятность  использования страницы N очень небольшая,а вероятность исполь-

зования страницы M высока. В этом случае, страница N будет удалена из памяти.

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

всё  основанно на вероятности. Но, каждый раз когда мыподбрасываем  монету,

неизвестно какой стороной она упадёт. Так же и здесь - нет никакой гарантии, что

эта страница не понадобится на следующем этапе.

5. Удаление по приоритетам...

Этот способ пожалуй является достаточно эффективным, так как страницы удаля-

ются по приоритетам. Каждая страница имеет свой приоритет, который устанав-

ливается супервизором в соответствии с «важностью» программы,находящейся в

определённой  станице. Предположим чтов страницеNнаходятся коды важной

пользовательской подпрограммы, а в странице M - текстовый файл, работа с кото-

рым не является столь важной. Тогда N получает приоритет 1, а M, предположим,

9.  Заметим, что необходимые, часто  требующиеся страницыимеютприоритеты

1-3, менее необходимые 4-6, и практически ненужные 5-9.Это значит, что когда в следующий разсупервизорупонадобится удалить из ОП страницу,он начнет со страниц, имеющих самый низкий уровень приоритета (9).

9. Анализ и оценка виртуальной памяти. Показатели эффективности.

     (При СО и ССО)

   Эффективноерешение задач на ЭВМ определяется не только ем-

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

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

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

   Применениевиртуальной  памяти получило широкое  применение

каксредипользователей-любителей,так и среди  профессионалов.

Основная функцияВП - расширение адресного пространства.ВП

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

тера, повышения уровней мультипрограммной работы. Объединив,

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

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

ся винчестеры. Применение НГМД не было бы столь эффективно, а применение НМД или НМБ понесло бы невосполнимые потери), поль-зователь имеет возможностьзна-чительнорасширить память и при этомне думать о том в «какой» памяти хранится его программа. ВП была созданна для облегчения работы пользователей при размещении программ.

Благодаря  ВПпоявиласьвозможность для болееэффективного применения программ-мультитаскеров(multi-tasker) - специальных

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

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

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

менеджера-мультитаскера (производства фирмы QuatterDeck).

   Сравниваяреальную  оперативную памятьс виртуальной, можно отметить,что объемРП ограничен,то есть в  каждой микросхеме

фиксированноечисло ячеек. Чтокасается ВП, то онаможет иметь

достаточнобольшой объем, ограниченныйтолько местомна диске

(возможностьюадресации). ОбъемВП можетдостигать нескольких

десяткови сотен мегабайт. РП имеет линейную структуру(адреса-

ция в порядке возрастания). ВП использует сквозную адресацию.

   В целом,применение  виртуальной памятиявляется весомым

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

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

Copyright © 1994 by Vsevolod Ukrainsky