Работа с виртуальной памятью

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 13.02.2016
Размер файла 77,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

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

«Уральский федеральный университет имени первого Президента России Б. Н. Ельцина»

Факультет ускоренного обучения

Кафедра микропроцессорной техники

Курсовая работа

По дисциплине: «Системное программирование»

Работа с виртуальной памятью

Руководитель: Кулюкин В.П.

Студент гр. УОВ 420101с Хасанов А.А.

Екатеринбург 2015

Содержание

1. Виртуальная память. Общие понятия

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

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

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

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

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

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

Список использованных источников

Приложение

Введение

Цель работы: Создать программу для определения страниц оперативной памяти, используемых процессом.

1. Виртуальная память. Общие понятия

Итак, мы вплотную подошли к проблеме виртуальной памяти: что это такое и для чего это нужно? Дело в том, что с развитием и появлением новых компьютерных технологий, машины несомненно преобразились в лучшую сторону: в мире профессиональных программистов уже не существует понятия “ОЗУ на ферритовых сердечниках” или “накопителей на магнитных лентах”. Что и говорить, с изобретением персонального компьютера, даже простой непрофессиональный пользователь получил возможность использовать ПК для собственных целей и нужд. Фирмой Intel™ и другими производителями вычислительной техники были выпущены компьютеры достаточно простые в обращении (по сравнению с огромными ламповыми IBM1401 или “Унивак П”). Компьютеры нового поколения имели процессоры Intel™ 80386, 80486, с 16ти и 32х разрядными шинами, огромным быстродействием (2566Mhz). Эти персоналки большой шаг вперед в развитии компьютерных технологий. Вместе с этим у пользователя появилась тенденция “оседлать” быструю машину заставить её делать как можно больше. Как экономить машинное время и в то же время производить больше? Ответ на этот вопрос был найден посредством организации мультипрограммной работы ЭВМ. Этот метод был признан очень удобным, так как при организации мультипрограммного цикла:

1. Машина не простаивала зря: при одновременном выполнении нескольких программ и команд в работе процессора появлялась новая функция анализ и распределение машинного времени, отведённого на выполнение каждой программы;

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

Действительно, метод мультипрограммной работы оказался потрясающе эффективным, но для его успешной реализации требовалось очень много оперативной памяти, так как всякая программа, которая может быть вызвана впоследствии, оставляет небольшую (а иногда и очень большую!) свою часть резидентной в оперативной памяти. Возможны два варианта: сохранить большую часть ОЗУ свободной, по надобности загружая в ОП ту или иную программу, требующую непосредственного выполнения и, после этого, отработав с данной программой, отчистить содержимое ОП для загрузки новой программы. Второй вариант состоит в том, чтобы сразу загрузить в ОП Машины все требующиеся программы, таким образом заполнив её до основания и потом дать процессору команду на выполнение. Первый вариант не является примером мультипрограммной организации. Второй вариант является. Итак, несомненно, второй вариант наиболее подходящий, но здесь мы сталкиваемся с проблемой нехватки оперативной памяти. В современных компьютерах емкость ОЗУ (аналог RAM) не превышает 1MB, 384KB из которых зарезервированы под ПЗУ, ППЗУ, BIOS... Итого остаётся 640KB “чистой” оперативной памяти но в ней поместятся две три программы и не более.

Хорошо видно, что внедрение более рационального решения сталкивается с единственной проблемой памяти. Но можно ли каким-то образом решить эту проблему? Именно на этом этапе на помощь пользователю приходит виртуальная память, которая позволяет модифицировать ресурсы памяти, сделать объём оперативной памяти намного больше, для того чтобы пользователь, поместив туда как можно больше программ, реально сэкономил время и повысил эффективность своего труда. “Открытие” виртуальной памяти (далее ВП) внесло огромную контрибуцию в развитие современных технологий, облегчило работу как профессионального программиста, так и обычного пользователя, обеспечивая процесс более эффективного решения задач на ЭВМ. Возникает много вопросов: как устроена ВП, как она функционирует, каким образом при использовании ВП ресурсы обычной физической памяти “увеличиваются” во много раз, используются ли для этой цели какие-либо “подручные” средства (устройства)? Действительно, возникает множество интереснейших вопросов, ответы на которые будут даны в следующих параграфах.

Почему виртуальная память также носит название математической, кажущейся? Как можно реорганизовать ОЗУ таким образом, чтобы её объём удвоился, утроился? Преимущество ВП состоит в том, что объем ОЗУ не может быть увеличено ни практически, ни теоретически. (Это попросту невозможно ни какими средствами нельзя оптимизировать или преобразовать ячейки памяти, для того, чтобы, скажем, помещать туда два бита информации вместо одного). Но как же построена ВП? Дело в том, что при работе машины, использующей виртуальную память, обязательно используется Внешнее Запоминающее Устройство (ВЗУ), которое обычно представляет собой накопитель на гибком магнитном диске или жестком диске типа “винчестер”. (Последнее устройство используется чаще).

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

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

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

Рассмотрим первую форму организации ВП при её страничной организации (СО). Нужно отметить очень важный пункт, что при СО, все ресурсы памяти, как оперативной, так и внешней представляются для пользователя единым целым. Пользователь работает с общим адресным пространством и не задумывается какая память при этом используется: оперативная или внешняя, а эта общая память носит название виртуальной (моделируемой). Виртуальная память разбивается на страницы, которые содержат определённое фиксированное количество ячеек памяти. При этом одна страница математической памяти не может быть больше или меньше других все страницы должны быть одинаковы по количеству ячеек. Типичные размеры страниц 256, 512, 1024, 2048 Байт и более (числа кратные 256).

Рис.1

Так называемая физическая память, которая включает в себя ОЗУ и ВЗУ так же разбивается на страницы объем которых должен соответствовать размерам ВП, иначе, из-за неправильности размеров, ячейки физической памяти не будут совпадать с ячейками ВП, что приведёт к путанице и “зависанию” системы. На рисунке 1 изображен способ формирования страниц ВП из физической памяти. Ячейки ОЗУ разбиваются на страницы одинакового объема (например 1024 Байт), каждая из которых может содержать какую-либо информацию. В ВЗУ, представленным накопителем типа “винчестер”, процессор резервирует определённые сектора с которыми впоследствии будет работать ВП. Всё это складывается вместе и представляет собой единую структуру ВП.

При работе пользователя, одна из его программ может находится в ОП (реально в микросхеме на рис. 1), а другая в ВЗУ (на диске). При этом совершенно не заметно, что пользователь работает с математическими адресами, поэтому в процессе операций процессор может обращаться только к ОП (или СОП Сверхоперативная память) в случае выполнения первой программы, или к диску, если выполняется вторая программа. Но при работе второй программы, операционная система должна организовать перепись той страницы, где находится вторая программа, в Оперативную Память.

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

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

Соответствие между номерами физических и математических страниц устанавливается специальной программой операционной системы, которая носит название менеджер (диспетчер) памяти. Как правило эта программа является резидентной и управляет всеми ресурсами машинной памяти. Для 286х процессоров используют менеджер himem.sys, а для 386х и 486х машин emm386.sys и qemm.sys С помощью таких программ формируется так называемая страничная таблица, которая помещается в сверхоперативную память, обладающую наибольшим быстродействием. Эта таблица является неотъемлемой частью организации ВП с СО, так как в ней содержится вся информация о страницах, на данный момент находящихся в памяти. В страничной таблице находятся адреса программ, уровень их приоритета и т. д. Содержание страничной таблицы будет подробно описано ниже.

Рассмотрим пример преобразования виртуальных адресов в физические. Пусть виртуальная память содержит 8 страниц по 2048 Байт в каждой странице. Для компактности примера, предположим, что физическая память имеет ёмкость 4 страницы (по 2 Кб соответственно). При обращении к физической памяти для проведения каких либо операций (записи или выборки операндов, выполнения команды или осуществления передачи управления), программой формируется 14ти битовый адрес, соответствующий виртуальному адресу, который определяет ячейки в промежутке от 0 до 16 Кб 1.

В данном примере 14ти битовый адрес как бы разбивается на 3х битовый номер виртуальной страницы и 11ти битовый внутри той страницы, номер которой определён тем самым 3х битовым номером. Пример кода адреса при страничной организации памяти показан на рисунке 4. А связь между номерами страниц и самими виртуальными адресами показана на рисунке 5. Итак, рассмотрим рисунок 4: 3х битовый номер виртуальной страницы 110 (в binформате) соответствует номерам 6 и 6h (dec и hexформаты) необходимо помнить, что все операции в машине производятся в шестнадцатеричном формате. Таким образом, выбирается страница с номером 6 и внутренним адресом 00101001110B (14Eh). Значит по рисунку 5, этот физический адрес будет соответствовать виртуальному адресу 12288...

Рис.2

Это значит, что шестая страница виртуальной памяти начинается с адреса 12288 и заканчивается по адресу 14335. Общий объем виртуальной страницы составляет 2048 Байт (2 Кб).

Для определения физического адреса пользовательской программы, резидентный диспетчер памяти под управлением операционной системы должен установить местонахождение виртуальной страницы. Физическая страница памяти, которая соответствует виртуальной, может находится в оперативной памяти, но может также быть и на диске. Как было сказано ранее, для того чтобы установить соответствие между виртуальной и физической страницами, ОС обращается к страничной таблице, каждая из строк которой содержит по одной записи для каждой из восьми виртуальных страниц. Как же организованна эта страничная таблица? Запись в строке содержит три поля Первое однобитовое поле по сути является флагом в этой ячейке может находится либо включенный, либо выключенный бит (1 или 0), что указывает на конкретное местонахождение страницы: если в этом поле содержится код нуля это подсказывает процессору, что необходимую страницу нужно искать во внешней памяти, если значение бита в данном поле равно 1, то искомая страница уже находится в оперативной памяти. Таким образом, все функции единственного бита в этом поле принимать значения True или False. Второе поле содержит адрес внешней памяти. Этот адрес станет необходим если искомой страницы нет в оперативной памяти, а она находится в ВЗУ и её надо переписать в ОЗУ для работы с программой, находящейся в этой странице. По этому адресу машина обращается к виртуальной странице, хранящейся на диске и копирует её содержимое в ОЗУ. Важное замечание заключается в том, что если в первом однобитовом поле флаг находится в состоянии 1, то второе поле автоматически игнорируется, потому что искомая страница уже “сидит” в ОП и нет никакой необходимости “MOV CX, ADDRESS” (засылать в регистр CX адрес внешней ВС для его обработки). После того как машина отработает с данной страницей ВП и надобность в ней исчезнет (возможно на какое-то время), эта страница обратно переносится на диск, освобождая место для другой страницы которая нужна машине в данный момент для продолжения работы.

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

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

Итак, при распределении памяти в машине, супервизор формирует страничную таблицу. Входом в эту таблицу является номер математической страницы, в которой находится нужная ячейка памяти. Если адресная страница находится в ОП, то формирование адреса происходит следующим образом: двух битовый номер страницы заносится в два левых разряда адресного регистра оперативной памяти, а адрес внутри виртуальной страницы (11 бит исходного адреса) переписывается в 11 правых разрядов адресного регистра. Это очень хорошо показано на правой части рисунка. P µ регистр математического адреса, P ф регистр физического адреса, p номер математической страницы, l смещение. Таким образом, смещение переписывается из регистра математического адреса в регистр физического без изменений. По номеру p из страничной таблицы извлекается номер физической страницы и, если эта страница уже находится в ОП, то её номер записывается в регистр физического адреса, если же искомая страница находится в ВЗУ, то она сначала переписывается в ОП. Для этого используется или свободная страница ОП, или какая-либо страница ОП освобождается: информация из этой страницы снова переносится во внешнюю память (но ни в коем случае не стирается!). После этого страничная таблица обновляется в неё заносятся сведения о новых страницах (той которая на данный момент находится в ОЗУ и той которая переместилась во внешнюю память). Страничная таблица является таким видом информации которая очень часто обновляется. Она постоянно “дышит”. Каждый раз когда у пользователя возникает потребность в новой информации (в частности в новой странице памяти), происходит процесс свопирования, то есть перемены местами страниц ОП и ВЗУ (англ. swap менять местами). При этом в страничную таблицу заносится наиболее свежая информация о том в какую страницу виртуальной памяти была помещена страница, только что удалённая из ОП, содержится ли в этой странице нужное на следующем этапе слово и т. д. У страничной таблицы множество работы. Как было отмечено, для наиболее эффективного функционирования машины необходимы большая ёмкость ОЗУ и быстродействие. Как известно, обычная оперативная память (RAM) не является максимально быстродействующей. Это значит, что если бы страничная таблица находилась в такой памяти, то пользователь сталкивался бы с реальной потерей времени, так как процессор довольно часто обращается к СТ. Выход из этой неудобной ситуации был найден при помещении страничной таблицы в сверхоперативную память, которая обладает наибольшим быстродействием, хотя и во много раз меньше по объему чем RAM. Но этого объёма вполне хватает процессору и он получает возможность работать с большей производительностью, так как при каждом перераспределении памяти между пользовательскими программами осуществляется изменение данных, содержащихся в страничной таблице.

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

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

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

Во-первых одним из преимуществ ВП с СО является достаточно большой объём прямо адресуемой памяти. Действительно объем памяти может исчисляться сотнями мегабайт (и даже гигабайтами). Размер виртуальной памяти целиком зависит от объёма накопителя на [жестком] магнитном диске. Созданный SWAPфайл размещается на диске и эмулирует оперативную память. При этом пользователь не задумывается о том куда будет помещен “кусок” его программы с которой он только что отработал. Таким образом, ещё одним преимуществом ВП с СО является то, что программы пользователя могут размещаться в любых свободных страницах. И наконец, одним из важнейших преимуществ ВП с СО (то, ради чего, собственно и была изобретена виртуальная память) повышение уровня мультипрограммной работы. Как было сказано выше, эта цель была одной из самых главных. С организацией ВП с СО пользователь получил реальную возможность загружать в память большее количество программ для того чтобы машина обрабатывала программы сразу (в действительности процессор устанавливает приоритет для каждой программы, находящейся в памяти, и далее в соответствии с приоритетом выделяет определённое количество времени на реализацию каждой программы или команды). Сам процессор постоянно “занят” каждый машинный такт выполняет определённую программу. Метод организации виртуальной памяти со страничной организацией значительно повысил эффективность работы с машиной.

У каждого гениального изобретения к сожалению есть свои недостатки. Таковые есть и у ВП с СО. Попытаемся проанализировать их. Основным недостатком виртуальной памяти пожалуй является то количество времени, которое машина тратит на обращение к внешней памяти. Извлечь необходимую информацию из ячеек оперативной памяти не представляет особого труда и больших затрат времени. Совсем иначе обстоит дело с диском: для того чтобы найти необходимую информацию, нужно сначала “раскрутить” диск, потом найти необходимую дорожку, в дорожке найти сектор, кластер, далее считать побитовую информацию в ОП. Все это требует времени и, порой если при методе случайного удаления страниц *, процессору понадобятся сразу несколько страниц, хранящихся во внешней памяти, большого времени. К сожалению, этот недостаток принадлежит к виду “неисправимых”. И если другие недостатки, рассмотренные ниже ущё можно каким-то образом устранить (например путем расширения технических средств и т. д.), то данный недостаток не может быть устранён никоим образом, так как понятие виртуальной памяти ассоциируется с применением внешней памяти (магнитного диска).

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

Методы своппирования страниц имеют большую ёмкость и достаточно высокое быстродействие. СОП используется для хранения управляющей информации, служебных кодов, а также информации к которой осуществляется наиболее частое обращение в процессе выполнения программы. Этот недостаток в работе с ВП к счастью можно ликвидировать. Что касается технической характеристики есть ли в микросхемах оперативной памяти дополнительные интегральные схемы, которые являются запоминающими устройствами СОП? Если есть, то проблема с СОП решена, а если нет..? Тогда, благодаря достижениям в области компьютерной технологии, могут использоваться драйверы, резервирующие маленькую область ОП для имитирования СОП(стандартные операционные процедуры). Итак, что касается этого недостатка, то, мне кажется, что он не настолько серьёзен, чтобы о нём беспокоится. И, наконец третьим недостатком является внутренняя фрагментация страниц.

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

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

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

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

Сегментно-страничная организация памяти требует более сложной аппаратурно-программной организации. Рассмотрим как же осуществляется обращение к ВП посредством ССО. По самому названию “сегментно-страничный” нетрудно догадаться, что при таком методе используется как сегментная, так и страничная таблицы. Это очень похоже на сложно структурированный метод “процедуры в процедуре” во многих алгоритмических языках. На рисунке 7 подробно показан способ организации ВП с ССО. Адрес ячейки в данном случае складывается из 3х частей: первая содержит номер самого сегмента ( S egment), по этому номеру машина обращается к сегментной таблице. Вторая часть адреса содержит номер искомой страницы ( p age), которая находится внутри выбранного сегмента и третья смещение ( l ength), по которому находится требуемый адрес. Pµ, обведенное в двойную рамку показывает математический адрес, а Pф физический. Как и при СО, смещение l переписывается в ячейку физического адреса без изменений.

Вверху рисунка, аббревиатурой N обозначен номер какой-нибудь программы пользователя. А 0 с индексом 1 обозначает конкретный начальный адрес сегментной таблицы для данной программы. Сначала берется этот адрес и номер сегмента S из регистра математического адреса. Оба этих адреса складываются в сумматоре, который изображен в виде обведенного плюса. Получившийся адрес А 1 + S является входом в сегментную таблицу (изображен в первой колонке сегментной таблицы). Далее, благодаря этому адресу, отыскивается соответствующий адрес страничной таблицы (А 0 с индексом 2), который в свою очередь суммируется с номером искомой страницы p в сумматоре. Результирующая сумма есть вход в страничную таблицу. Структура страничной таблицы нам уже знакома: благодаря получившемуся адресу, находится соответствующий адрес физической страницы, процессор определяет местонахождение этой страницы (включенный бит страница находится в ОП, выключенный во внешней памяти).

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

Итак, краткое описание функционирования ВП с ССО: с помощью начального адреса сегментной таблицы и номера сегмента из регистра математического адреса (S) образуется адрес вход в сегментную таблицу в которой находится начальный адрес страничной таблицы. К этому адресу в свою очередь прибавляется номер страницы из РМА. Эта сумма служит входом в страничную таблицу, в которой затем отыскивается адрес искомой физической страницы и, в соответствии с уровнем доступности, процессор либо начинает работать с этой страницей, либо вырабатывает аппаратурное прерывание и подключает супервизора, который затем организует ее перепись в ОП. Если вся ОП будет занята, то супервизор, в соответствии с принятым методом (см. § 8), своппирует какую-нибудь страницу.

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

Как было сказано выше, с развитием компьютерных технологий стали появляться новые перспективы использования персональных компьютеров. В § 3 упоминается о компьютере Intel™ 486DX4 с тактовой частотой 75Mhz, произведенным фирмой Texas Instruments. Несомненно, возможности этого компьютера огромны. Он комплектуется огромным жестким диском (1.2GB) и имеет 32MB оперативной памяти. Предположим, что эта машина будет использоваться для разработки космического корабля, робота хирурга или в области кибернетики. Для этих целей необходимо использовать “серьёзное” программное обеспечение (скажем, производимое фирмой Silicon Graphics ®), требующее огромного количества оперативной памяти. В такой ситуации даже 32MB может не хватать. В таких ситуациях по-прежнему проявляется тенденция к использованию ВП. Виртуальная память применяется во многих программах, операционных оболочках, коммуникационном программном обеспечении. В следующих пунктах приведены примеры использования виртуальной памяти в современных компьютерах с различными программами.

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

Microsoft Windows 3.1 является наиболее популярной операционной оболочкой как среди любителей, так и среди профессиональных пользователей. Windows обеспечивает независимый запуск и выполнение сразу нескольких программ. Большинство других оболочек и операционных систем рассчитаны на выполнение в данный момент только одной программы. В рамках Windows можно запустить сразу несколько программ. Для этих целей используется ВП. 1. RAM диск (виртуальный, псевдо, электронный диск) Разновидность виртуальной памяти. Супервизор резервирует для него область EMS или XMS памяти и, таким образом устанавливает диск в памяти. Он работает быстрее, чем реальный физический диск, но при выключении питания его содержимое теряется. Он весьма удобен для хранения промежуточной информации в течение одного сеанса работы. Но RAM диск не является прямым аналогом ВП.

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

Виртуальная память в оболочке Windows 3.1 используется только в расширенном (extended) режиме. Каковы характеристики компьютера, работающего с Windows в расширенном режиме? Он должен иметь 386ой процессор и минимум 2 мегабайта памяти. Итак виртуальная память в Windows представляет собой механизм, обеспечивающий расширение адресного пространства за счет дискового прост AcerPower™, NEC, American Megatrends, Zeos™, Tandy™, HP Vectra™, Toshiba, Dell, Packard Bell и другие машины укомплектованные процессорами Intel™ и Cyrix™. Машины ЕС, из-за недостатка ОЗУ не работают в Windows и в данном примере не рассмотрены. ранства. Реальные ограничения на объем такой виртуализированной оперативной памяти отсутствуют. В физической оперативной памяти в каждый момент представлена некоторая часть полного виртуального пространства, остальная же часть которого расположена на диске По мере необходимости, например если пользователю понадобился следующий фрагмент его программы, который в данный момент находится на диске, а реальная оперативная память “загружена до основания”, процессор может своппировать страницу оперативной памяти со страницей на диске. (от англ. swap менять местами). Таким образом, попросту будет осуществлена перестановка страниц, и та страница с которой только что работали “отправляется” на диск. В Windows 3.1 возможно несколько вариантов реализации ВП. На рисунке 8 показано использование двух видов ВП в Windows: разносекторного (temporary) и перманентного (permanent) swapфайлов

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

Разносекторный (временной) 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®, Borland International, Lotus Development и т. д.) было написано много программного обеспечения специально для среды Windows. Так же было разработано множество профессиональных пакетов, ориентированных на математику, статистику, программирование, бухгалтерию и т. д. Вот здесь и нашлось место для применения виртуальной памяти. Благодаря возможности работы в мультипрограммном режиме, огромные массивы информации постоянно находятся в движении. Пользователь может запустить на выполнение сразу несколько программ, (каждая из которых требует памяти). Применение ВП значительно увеличивает объем физической памяти и позволяет работать эффективнее.

Список использованных источников

1. http://av-assembler.ru/

2. Управление памятью: Методические указания к лабораторному практикуму по дисциплинам «Операционные системы», «Системное программное обеспечение» / сост. В.П.Кулюкин. - Екатеринбург: УГТУ-УПИ, 2009.

3. http://habrahabr.ru

Приложение

Листинг программы

.386

model flat, STDCALL

include win32.inc

extrnBeginPaint:PROC

extrnCreateWindowExA:PROC

extrnDefWindowProcA:PROC

extrnDispatchMessageA:PROC

extrnEndPaint:PROC

extrnExitProcess:PROC

extrnGetMessageA:PROC

extrnGetModuleHandleA:PROC

extrnLoadCursorA:PROC

extrnLoadIconA:PROC

extrnMessageBoxA:PROC

extrnPostQuitMessage:PROC

extrnRegisterClassA:PROC

extrnShowWindow:PROC

extrnUpdateWindow:PROC

extrnSendMessageA:proc

extrnSetFocus:proc

extrnGetClientRect:proc

extrnVirtualQuery:PROC

extrn_wsprintfA:PROC

.data

newhwnddd 0

lppaintPAINTSTRUCT <?>

msgMSGSTRUCT <?>

wcWNDCLASS<?>

mbiMEMORY_BASIC_INFORMATION

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

vbmdd400000h

rctRECT<?>

hInstdd0

szTitleNamedb 'Карта адресного проставнста процесса',0

szClassNamedb 'ASMCLASS32',0

szClassName1db 'edit',0

lpfordb 'Базовый адрес:%#X,Тип %#XБ, Состояние: %#X, Размер: %#X,\Атриб_Защиты: %#X',0

lpstrdb128 dup (0)

Bufferdb4096 dup (0)

.code

start:

call GetModuleHandleA,0

mov [hInst],eax

reg_class:

mov [wc.clsStyle],CS_HREDRAW+CS_VREDRAW+CS_GLOBALCLASS

mov [wc.clsLpfnWndProc],offset WndProc

mov [wc.clsCbClsExtra],0

mov [wc.clsCbWndExtra],0

mov eax,[hInst]

mov [wc.clsHInstance],eax

call LoadIconA,0,IDI_APPLICATION

mov [wc.clsHIcon].eax

call LOadCursorA,0,IDC_ARROW

mov [wc.clsHCursor],eax

mov [wc.clsHbrBackground], COLOR_WINDOW+1

mov dword ptr [wc.clsLpszMenuName],0

mov dword ptr [wc.clsLpszClassName], offset szClassName

call RegisterClassA, offset wc

call CreateWindowExA,0,offset szClassName,offset szTitleName,\

WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,\

CW_USEDEFAULT, CW_USEDEFAULT,0,0,[hInst],0

mov [newhwnd],eax

call ShowWindow, [newhwnd], SW_SHOWNORMAL

call UpdateWindow, [newhwnd]

msg_loop:

call GetMessageA, offset msg,0,0,0

cmp ax,0

je end_loop

end_loop:

push [msg.msWPARAM]

call ExitProcess

WndProc proc uses ebx edi esi, hwnd:DWORD, wmsg:DWORD,\

wparam:DWORD, lparam:DWORD

LOCAL theDC:DWORD

cmp [wmsg], WM_DESTROY

je wmdestroy

cmp [wmsg], WM_SIZE

je wmsize

cmp [wmsg], WM_CREATE

je wmcreate

cmp [wmsg], WM_LBUTTONDOWN

je wmlbuttondown

cmp [wmsg], WM_PAINT

je wmpaint

jmp defwndproc

wmpaint:

mov eax, 0

jmp finish

wmcreate:

call GetClientRect, [hwnd], offset ret

sub [ret.rcRight], 20

sub [rct.rcBottom], 20

call CreateWindowExa,WS_EX_CLIENTEDGE,offset szClassName1,0,\

WS_VISIBLE or WS_CHILD or ES_LEFT OR ES_MULTILINE or\

es_AUTOHSCROLL or ES_AUTOVSCROLL,0,0,[rct.rcRight],\

[rct.rcBottom],[hwnd],0,[hInst],0

mov [hed],eax

mov edi,offset Buffer

cld

qq4:

mov esi, offset lpstr

call VirtualQuery, [vbm], offset mbi, size mbi

call _wsprintfA,offset lpstr, offset lpfor, [mbi.BaseAddress],\

[mbi.lType],[mbi.State],[mbi.RegionSize],[mbi.AllocationProtect]

mov ecx,eax

rep movsb

mov [edi],byte ptr 13

inc edi

mov [edi],byte ptr 10

inc edi

mov ebx,[mbi.RegionSize]

add[vbm],ebx

cmp [vbm],7ffff000h

jb qq4

mov [edi],byte ptr 0

call SendMessageA,[hed],WM_SETTEXT,0,offset Buffer

call SetFocus,[hed]

mov eax,0

jmp finish

defwndproc:

call DefWindowProcA,[hwnd],[wmsg],[wparam],[lparam]

jmp finish

wmdestroy:

call PostQuitMessage,0

mov eax,0

jmp finish

wmlbuttondown:

call SendMessageA,[newhwnd],WM_DESTROY,0,0

mov eax,0

jmp finish

wmsize:

mov eax,0

finish:

ret

WndProc endp

public WndProc

end start

Размещено на Allbest.ru

...

Подобные документы

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

    презентация [355,2 K], добавлен 27.12.2010

  • Распределение виртуальной памяти. Страничная и сегментная организации виртуальной памяти. Сегментно-страничная организация виртуальной памяти. Преобразование виртуального адреса в физический. Упрощение адресации памяти клиентским программным обеспечением.

    курсовая работа [440,7 K], добавлен 04.03.2014

  • Понятие виртуальной памяти, ее реализация. Особенности страничной организации по требованию. Этапы обработки ситуации отсутствия страницы в памяти. Стратегии (алгоритмы) замещения страниц. Особенности некоторых операционных систем: Windows NT и Solaris.

    презентация [2,2 M], добавлен 24.01.2014

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

    курсовая работа [43,5 K], добавлен 18.06.2009

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

    курсовая работа [373,7 K], добавлен 22.08.2013

  • Архитектура виртуальной машины, абстракция и виртуализация. Обзор технологии виртуальной машины, ее преимущества и недостатки. Возможности VirtualBox по работе с виртуальными жесткими дисками. Установка Windows 8 в VirtualВox, главное окно программы.

    курсовая работа [3,7 M], добавлен 22.03.2014

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

    контрольная работа [236,2 K], добавлен 23.12.2016

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

    курсовая работа [2,8 M], добавлен 28.03.2014

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

    реферат [960,2 K], добавлен 20.09.2019

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

    контрольная работа [239,4 K], добавлен 10.10.2015

  • Динамическое распределение памяти. Анализ виртуальной памяти, алгоритм ее обращения, общие принципы защиты. Страничная организация. Особенности переключения в мультизадачный режим. Режим системного управления. Расширение размера адресного пространства.

    презентация [1,3 M], добавлен 14.12.2013

  • Структура и основные компоненты виртуальной инженерии как имитационного метода, помогающего инженерам в принятии решений и управлении. Описание ее элементов: цифровая имитация, виртуальное прототипирование и завод. Принципы виртуальной реальности.

    реферат [913,9 K], добавлен 28.04.2016

  • Формы организации сетевых служб в системе VMware. Назначение MAC-адресов для виртуальных компьютеров. Установка средств сетевой поддержки. Способы создания виртуальной сети на изолированном компьютере. Принцип установки средств сетевой поддержки.

    отчет по практике [3,5 M], добавлен 03.02.2011

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

    курсовая работа [1,1 M], добавлен 05.07.2012

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

    дипломная работа [1,4 M], добавлен 12.08.2017

  • Проектирование ОС Windows 2000, ее архитектура. Процессы и потоки. Уровни запросов на прерывания. Менеджер объектов. Распределение виртуальной памяти. Трансляция виртуальных адресов в физические. Локальный вызов процедуры. Структура сообщения LPC.

    презентация [1,5 M], добавлен 24.01.2014

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

    курсовая работа [99,5 K], добавлен 02.12.2009

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

    презентация [9,3 M], добавлен 12.12.2013

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

    курсовая работа [3,2 M], добавлен 15.08.2012

  • История разработки многозадачной операционной системы POSIX-стандарта - FreeBSD; описание ее виртуальной памяти, файловой системы, уровня защиты. Описание основных средств синхронизации процессов - сигналов и семафоров. Способы блокировки файлов.

    презентация [584,2 K], добавлен 02.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.