Операционные системы, среды и оболочки
Память как один из основных элементов компьютера, позволяющий ему нормально функционировать. Типы памяти и их конфигурация. Страничная и сегментно-страничная организация виртуальной памяти, оценка их основных преимуществ и недостатков, сравнение.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 03.01.2011 |
Размер файла | 98,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
КОНТРОЛЬНАЯ РАБОТА
по теме:
«Страничная организация памяти»
Поспелиха - 2009
Введение
Память компьютера организована в виде множества ячеек, в которых могут храниться значения; каждая ячейка обозначается адресом. Размеры этих ячеек и, собственно, типы значений, которые могут в них храниться, отличаются у разных компьютеров. Некоторые старые компьютеры имели очень большой размер ячеек, иногда до 64К бит в каждой ячейке. Эти большие ячейки назывались «словами». Супер-компьютеры Крей и компьютер Юниварк ориентированы на работу со словами.
Трудность работы со словами большой длины заключается в том, что обычно программы работают не с целыми словами, а с их частями. Поэтому большинство современных компьютеров, и в том числе все персональные компьютеры, используют значительно меньшей размер ячейки памяти, состоящей всего из 8 бит или «байта»: байт - это очень удобная единица информации, отчасти потому, что он позволяет хранить код одной буквы алфавита или одного символа. Поскольку символ занимает в точности один байт, термин «байт» и «символ» часто используются в одном и том же смысле.
Так как IBM/PC использует ячейки памяти длиной 8 бит или 1 байт, в памяти могут храниться значения, которые можно выразить восемью битами. Это значение до двух в восьмой степени или 256. Смысл величины, записанной в ячейку памяти, зависит от способа ее использования. Можно считать, что байт содержит код алфавитного символа - так называемый код ASCII. В то же время его можно рассматривать и как число. Все 256 положительные числа от 0 до 255, либо как числа со знаками в диапазоне от -128 до + 127. Кроме того, байт может как часть большого объема данных, например, строки символов или двухбайтного числа.
Для удобства манипулирования символьными данными компьютеру необходимо, чтобы коды символов преобразовались в байтовые величины. Большинство компьютеров, включая IBM/PC, используют код ASCII, американский стандартный код для обмена информации. Большинство компьютеров фирмы «IBM» используют другую схему кодирование символов, называющуюся EBCDIC; системы ASCII и EBSDIC организованы по-разному, но перекодировка из одной системы в другую большого труда не составляет.
Всем компьютерам требуется память нескольких видов. Память требуется на каждом шагу выполнения программ. Память нужна как для использования данных, так и для хранения результатов. Она необходима для взаимодействия с периферией компьютера и даже для поддержания образа, видимого на экране. В компьютерных системах работа с памятью основывается на очень простых концепциях. В принципе, все, что требуется от компьютерной памяти, - это сохранять один бит информации так, чтобы потом он мог быть извлечен оттуда.
1. Организация памяти
Одним из основных элементов компьютера, позволяющим ему нормально функционировать, является память. Внутренняя память компьютера - это место хранения информации, с которой он работает. Внутренняя память компьютера является временным рабочим пространством; в отличие от нее внешняя память, такая как файл на дискете, предназначена для долговременного хранения информации. Информация во внутренней памяти не сохраняется при выключении питания.
Каждая ячейка памяти имеет адрес, который используется для ее нахождения. Адреса - это числа, начиная с нуля для первой ячейки, увеличивающиеся по направлению к последней ячейке памяти. Поскольку адреса - это те же числа, компьютер может использовать арифметические операции для вычисления адресов памяти.
Архитектура каждого компьютера накладывает собственные ограничения на величину адресов. Наибольший возможный адрес определяет объем адресного пространства компьютера или то, какой объем памяти он может использовать. Обычно компьютер использует память меньшего объема, чем допускается его возможностями адресации. Если архитектура компьютера предусматривает наибольшее адресное пространство, это накладывает суровые ограничения на возможности такого компьютера
IBM/PC использует возможности адресации микропроцессора 8088 полностью. Адреса в 8088 имеют длину 20 бит, следовательно, процессор позволяет адресовать два в двадцатой степени байта или 1024 К.
Такое большое адресное пространство позволяет свободно использовать ресурсы памяти для специальных целей. Большая часть арифметических операций, которые может выполнять микропроцессор 8088, ограничивается манипуляцией с 16-разрядными числами, что дает диапазон значений от 0 до 64К. Поскольку полный адрес должен состоять из 20 разрядов, необходимо было разработать способ управления 20 разрядами. Решение было найдено путем использования принципа сегментированной адресации.
Для работы с сегментированными адресами микропроцессор 8088 имеет специальные регистры сегментов, предназначенные для хранения сегментной части адресов. Загрузив в регистр сегмента некоторое значение, можно адресовать следующие за ним 64К ячеек памяти. Без изменения значения в регистре сегмента компьютер может работать только с 64К байтами из общего адресного пространства в 1024К. Путем изменения значения в регистре сегмента можно адресовать любую ячейку памяти.
Чтобы иметь возможность в каждый момент времени работать более чем с 64К памяти, в микропроцессоре 8088 предусмотрены четыре различных регистра сегмента, каждый из которых имеет особое назначение. Память компьютера используется для различных целей - часть ее занимает программа, другая часть используется для хранения данных, с которыми в данный момент работает программа. Поэтому два регистра сегмента выделены для программы и для данных. Для указания базового адреса программного или кодового сегмента используется регистр DC. Еще одна область памяти, используемая для специальных целей, называется стеком, и ее адрес указывается регистром стека SS. Для обеспечения дополнительных возможностей адресации имеется регистр дополнительного сегмента (или сегмента расширения), ES.
Когда программа подготавливается к выполнению, операционная система, такая как DOS, выбирает ячейки каких разделов будут использоваться для размещения кодовой части программ, данных и стека в регистры сегментов CS, DS и SS заносятся адреса этих ячеек. При выполнении программы адреса в этих регистрах позволяют находить нужные ячейки памяти.
DOS и языковые процессоры используют программные соглашения, которые позволяют увеличить объем программ практически неограниченно, в то время как их адресуемая область данных ограничена 64К. Вы легко заметите это ограничение, работая с Паскалем или компилятором Бейсика. Для «встроенного» интерпретатора Бейсика для IBM/PC собственно выполняемой программой является сам интерпретатор, а то, что мы считаем своей программой, на Бейсике фактически является частью данных интерпретатора. Таким образом, для интерпретатора Бейсика суммарный объем кодовой части и данных Вашей программы не должен превышать 64К, которые позволяет адресовать регистр данных DS.
Как Бейсик, так и Паскаль, лишь до определенной степени позволяют манипулировать сегментированными адресами. Вы можете непосредственно изменять содержимое регистров CS, DS, SS и ES - языковой процессор должен управлять этими регистрами, иначе все может совершенно запутаться. Однако, определенный способ использования в программах сегментированной адресации все же имеется.
Паскаль разрешает использование сегментированной адресации, правда, в более унифицированном и гибком виде, чем Бейсик. На Паскале можно определить переменную как сегментированный адрес, например:
Var пример_адреса: adasmem,
а затем непосредственно задать его сегментную и относительную части ('.s' и '.r', соответственно):
пример_адреса.s: = # 2222;
пример_адреса.r: = # 3333;
Когда все эти присваивания выполнены, можно осуществлять доступ к памяти с помощью указателя сегментированного адреса:
x: = пример_адреса^;
if (chr(x)> = «а») and (chr(x)< = «z») then
пример адреса: = x - 32.
Имея адресное пространство свыше миллиона байт IBM/PC позволяет более удобно и более гибко использовать память, чем большинство других, меньших персональных компьютеров. С одной стороны, резервирование определенных ячеек памяти может наложить ограничение на возможные применения компьютера. В IBM/PC резервируется несколько областей в верхних адресах памяти. Эти области имеют особое значение, а все нижние адреса оставлены для свободного использования. Таким образом, сочетаются достоинства использования зарезервированных блоков памяти и сохранения как можно большего объема памяти для свободного использования.
Верхняя четверть общего объема памяти, начиная с ячейки C 000 и до конца, практически всегда занимается постоянным запоминающим устройством или ПЗУ.
Ниже области ПЗУ располагается большой сегмент памяти, предназначенный для поддержки экранного режима дисплеев. Для хранения информации, отображаемой на экране, необходимо использовать специальную область памяти, которая может располагаться как внутри дисплея, так и внутри компьютера, с которым он соединен. В IBM/PC экранная память входит в общее адресное пространство компьютера (хотя конструктивно она размещается на плате расширения для дисплея).
Блок экранной памяти начинается с адреса В000 и занимает 64К, вплоть до адреса С000. этот блок делится на две части. Нижняя половина, начинающаяся с адреса В000, используется монохромным дисплеем. Верхняя половина, начинающаяся с адреса В800, используется цветным графическим дисплеем. Ни один из дисплейных адаптеров не требует и не использует все 32К, выделенные для них. Монохромный дисплей использует всего 4К, а цветной графический дисплей использует 16К. Оставшаяся часть памяти в настоящее время не используется, но может понадобиться для более совершенных дисплейных адаптеров.
Фактически, для дисплейных адаптеров выделено больше памяти, чем эти 64К от В000 до С000. Блок в 64К, предшествующий им, также зарезервирован. Первые 16К, от А000 до А4000, зарезервированы совершенно таинственным образом, не имеется ни малейшего указания на то, для чего это сделано. Остальные 48К этого блока от А400 до В000, входит в область 112К, которая считается зарезервированной для экранной памяти.
Объем памяти, расположенной ниже адреса А000, составляет 64К, которые предназначены для обычного использования памяти компьютера. Первые 64К располагаются на основной системной плате IBM/PC, а все остальные микросхемы памяти размещаются в блоках расширения. IBM/PC поддерживает всего 256К памяти, но этот предел связан только с тестами BIOS, которые при запуске компьютера проверяют такой объем памяти. Всегда можно подключить больше, чем 256К памяти.
Вся обычная оперативная память, подключенная к компьютеру, располагается в нижних адресах общего адресного пространства. Мы можем подключить такой объем памяти, какой нам необходим в пределах, накладываемых зарезервированными адресами. Независимо от того, подключено ли к компьютеру 48К или 576К, они всегда размещаются, начиная с адреса 0000. Таким образом, оперативная память (ОП) всегда занимает нижние адреса пространства, а постоянная память - в верхних адресах. Между ними располагается экранная память. Между всеми этими разделами могут быть промежутки - промежуток от конца оперативная память до начала экранной памяти и от конца экранной памяти до начала постоянно запоминающих устройств. Это неиспользуемая часть памяти IBM/PC.
2. Страничная организация виртуальной памяти
Рассмотрим первую форму организации виртуальной памяти (ВП) при её страничной организации (СО). Нужно отметить очень важный пункт, что при страничной организации, все ресурсы памяти, как оперативной, так и внешней представляются для пользователя единым целым. Пользователь работает с общим адресным пространством и не задумывается какая память при этом используется: оперативная или внешняя, а эта общая память носит название виртуальной (моделируемой). Виртуальная память разбивается на страницы, которые содержат определённое фиксированное количество ячеек памяти. При этом одна страница математической памяти не может быть больше или меньше других все страницы должны быть одинаковы по количеству ячеек. Типичные размеры страниц 256, 512, 1024, 2048 Байт и более (числа кратные 256).
Рис. 1. Способ формирования страниц виртуальной памяти
Так называемая физическая память, которая включает в себя ОЗУ и ВЗУ так же разбивается на страницы объем которых должен соответствовать размерам ВП, иначе, из-за неправильности размеров, ячейки физической памяти не будут совпадать с ячейками виртуальной памяти, что приведёт к путанице и «зависанию» системы. На рисунке 1 изображен способ формирования страниц виртуальной памяти из физической памяти. Ячейки ОЗУ разбиваются на страницы одинакового объема (например 1024 Байт), каждая из которых может содержать какую-либо информацию. В ВЗУ, представленным накопителем типа «винчестер», процессор резервирует определённые сектора с которыми впоследствии будет работать виртуальной памяти. Всё это складывается вместе и представляет собой единую структуру виртуальной памяти.
При работе пользователя, одна из его программ может находится в оперативной памяти (реально в микросхеме на рис. 1), а другая в ВЗУ (на диске). При этом совершенно не заметно, что пользователь работает с математическими адресами, поэтому в процессе операций процессор может обращаться только к оперативной памяти (или (СОП) Сверхоперативная память) в случае выполнения первой программы, или к диску, если выполняется вторая программа, но при работе второй программы, операционная система должна организовать перепись той страницы, где находится вторая программа, в оперативную память.
Пользователь не задумывается над этим, но в этот момент страница виртуальной памяти с диска, как бы накладывается на свободную* страницу оперативной памяти. Таким образом, при выполнении даже одной программы, различные части этой программы могут находиться в сверхоперативной памяти (СОП) или на магнитных носителях, а одни и те же ячейки общей физической памяти могут называться различными адресами.
Адресная часть команды в пользовательских программах должна содержать адрес математической страницы и адрес слова, которое должно находиться в этой странице (искомое слово). При распределении памяти между различными частями программы, процессор берёт на себя функции преобразования адреса, находящегося в математической странице, в адрес физической страницы. По этому адресу располагается требуемое слово, которое может храниться как в оперативной памяти, так и во внешней памяти. Совокупность адреса физической страницы и адреса слова внутри этой страницы образует физический адрес операнда.
Соответствие между номерами физических и математических страниц устанавливается специальной программой операционной системы, которая носит название менеджер (диспетчер) памяти. Как правило, эта программа является резидентной и управляет всеми ресурсами машинной памяти. Для 286х процессоров используют менеджер himem.sys, а для 386х и 486х машин emm386.sys и qemm.sys. С помощью таких программ формируется так называемая страничная таблица, которая помещается в сверхоперативную память, обладающую наибольшим быстродействием. Эта таблица является неотъемлемой частью организации виртуальной памяти со страничной организацией, так как в ней содержится вся информация о страницах, на данный момент находящихся в памяти. В страничной таблице находятся адреса программ, уровень их приоритета и т.д. Содержание страничной таблицы будет подробно описано ниже.
Рассмотрим пример преобразования виртуальных адресов в физические. Пусть виртуальная память содержит 8 страниц по 2048 Байт в каждой странице. Для компактности примера, предположим, что физическая память имеет ёмкость 4 страницы (по 2 Кб соответственно). При обращении к физической памяти для проведения каких 14-и битовый виртуальный адрес 3-х битовый 11-и битовый адрес в пределах выбранной ВС номер ВС либо операций (записи или выборки операндов, выполнения команды или осуществления передачи управления), программой формируется 14-и битовый адрес, соответствующий виртуальному адресу, который определяет ячейки в промежутке от 0 до 16 Кб 1. В данном примере 14-и битовый адрес как бы разбивается на 3-х битовый номер виртуальной страницы и 11-и битовый внутри той страницы, номер которой определён тем самым 3-х битовым номером. Пример кода адреса при страничной организации памяти показан на рисунке выше. А связь между номерами страниц и самими виртуальными адресами показана на рисунке 3. Итак, рассмотрим рисунок 3: 3-х битовый номер виртуальной страницы 110 (в binформате) соответствует номерам 6 и 6h (dec и hexформаты) необходимо помнить, что все операции в машине производятся в шестнадцатеричном формате. Таким образом, выбирается страница с номером 6 и внутренним адресом 00101001110B (14Eh). Значит по рисунку 3, этот физический адрес будет соответствовать виртуальному адресу 12288…
Страница Виртуальные адреса
Это значит, что шестая страница виртуальной памяти начинается с адреса 12288 и заканчивается по адресу 14335. Общий объем виртуальной страницы составляет 2048 Байт (2 Кб).
· Эта страница необязательно может быть свободной.
Для определения физического адреса пользовательской программы, резидентный диспетчер памяти под управлением операционной системы должен установить местонахождение виртуальной страницы. Физическая страница памяти, которая соответствует виртуальной, может находиться в оперативной памяти, но может также быть и на диске. Как было сказано ранее, для того чтобы установить соответствие между виртуальной и физической страницами, ОС обращается к страничной таблице, каждая из строк которой содержит по одной записи для каждой из восьми виртуальных страниц. Как же организованна эта страничная таблица? Запись в строке содержит три поля: первое однобитовое поле по сути является флагом в этой ячейке может находиться либо включенный, либо выключенный бит (1 или 0), что указывает на конкретное местонахождение страницы: если в этом поле содержится код нуля это подсказывает процессору, что необходимую страницу нужно искать во внешней памяти, если значение бита в данном поле равно 1, то искомая страница уже находится в оперативной памяти. Таким образом, все функции единственного бита в этом поле принимать значения True или False. Второе поле содержит адрес внешней памяти. Этот адрес станет необходим, если искомой страницы нет в оперативной памяти, а она находится в ВЗУ и её надо переписать в ОЗУ для работы с программой, находящейся в этой странице. По этому адресу машина обращается к виртуальной странице, хранящейся на диске и копирует её содержимое в ОЗУ. Важное замечание заключается в том, что если в первом однобитовом поле флаг находится в состоянии 1, то второе поле автоматически игнорируется, потому что искомая страница уже «сидит» в ОП и нет никакой необходимости «MOV CX, ADDRESS» (засылать в регистр CX адрес внешней ВС для его обработки). После того как машина отработает с данной страницей ВП и надобность в ней исчезнет (возможно на какое-то время), эта страница обратно переносится на диск, освобождая место для другой страницы которая нужна машине в данный момент для продолжения работы.
Наконец третье поле, функциональная нагрузка которого указывать номер страницы оперативной памяти, в которой находится необходимая информация. Если нужной страницы нет в оперативной памяти, а она находится на диске (бит первого поля выключен), то третье поле игнорируется. На рисунке 4 изображена схема страничной организации виртуальной памяти.
Страничная организация виртуальной памяти
Итак, при распределении памяти в машине, супервизор формирует страничную таблицу. Входом в эту таблицу является номер математической страницы, в которой находится нужная ячейка памяти. Если адресная страница находится в оперативной памяти, то формирование адреса происходит следующим образом: двух битовый номер страницы заносится в два левых разряда адресного регистра оперативной памяти, а адрес внутри виртуальной страницы (11 бит исходного адреса) переписывается в 11 правых разрядов адресного регистра. Это очень хорошо показано на правой части рисунка. P µ регистр математического адреса, P ф регистр физического адреса, p номер математической страницы, l смещение. Таким образом, смещение переписывается из регистра математического адреса в регистр физического без изменений. По номеру p из страничной таблицы извлекается номер физической страницы и, если эта страница уже находится в ОП, то её номер записывается в регистр физического адреса, если же искомая страница находится в ВЗУ, то она сначала переписывается в ОП. Для этого используется или свободная страница ОП, или какая-либо страница ОП освобождается: информация из этой страницы снова переносится во внешнюю память (но ни в коем случае не стирается!). После этого страничная таблица обновляется в неё заносятся сведения о новых страницах (той которая на данный момент находится в ОЗУ и той которая переместилась во внешнюю память). Страничная таблица является таким видом информации, которая очень часто обновляется. Она постоянно «дышит». Каждый раз когда у пользователя возникает потребность в новой информации (в частности в новой странице памяти), привходит процесс свопирования, то есть перемены местами страниц ОП и ВЗУ (англ. swap менять местами). При этом в страничную таблицу заносится наиболее свежая информация о том в какую страницу виртуальной памяти была помещена страница, только что удалённая из оперативной памяти, содержится ли в этой странице нужное на следующем этапе слово и т.д. У страничной таблицы множество работы.
Как было отмечено, для наиболее эффективного функционирования машины необходимы большая ёмкость ОЗУ и быстродействие. Как известно, обычная оперативная память (RAM) не является максимально быстродействующей. Это значит, что если бы страничная таблица находилась в такой памяти, то пользователь сталкивался бы с реальной потерей времени, так как процессор довольно часто обращается к СТ. Выход из этой неудобной ситуации был найден при помещении страничной таблицы в сверхоперативную память, которая обладает наибольшим быстродействием, хотя и во много раз меньше по объему, чем RAM. Но этого объёма вполне хватает процессору и он получает возможность работать с большей производительностью, так как при каждом перераспределении памяти между пользовательскими программами осуществляется изменение данных, содержащихся в страничной таблице.
При страничной организации памяти очень важным является алгоритм своппирования страниц. Действительно, процессор должен «подумать» какую страницу стоит в первую очередь удалить из ОП, дабы на освободившееся место переписать из внешней памяти необходимую в данный момент страницу.
3. Преимущества и недостатки виртуальной памяти со страничной организацией
Несомненно, применение виртуальной памяти в современных машинах это важнейшее достижение как в компьютерной технологии, так и в максимизации удобств создаваемых для пользователя. Но, как известно, каждая система имеет свои преимущества и недостатки. Предлагаю проанализировать суть применения виртуальной памяти; её слабости и критерии эффективности, её плюсы и минусы.
Во-первых одним из преимуществ виртуальной памяти со страничной организацией, является достаточно большой объём прямо адресуемой памяти. Действительно объем памяти может исчисляться сотнями мегабайт (и даже гигабайтами). Размер виртуальной памяти целиком зависит от объёма накопителя на (жестком) магнитном диске. Созданный SWAP-файл размещается на диске и эмулирует оперативную память. При этом пользователь не задумывается о том куда будет помещен «кусок» его программы, с которой он только что отработал. Таким образом, ещё одним преимуществом виртуальной памяти со страничной организацией, является то, что программы пользователя могут размещаться в любых свободных страницах. И наконец, одним из важнейших преимуществ виртуальной памяти со страничной организацией (то, ради чего, собственно и была изобретена виртуальная память) повышение уровня мультипрограммной работы. Как было сказано выше, эта цель была одной из самых главных. С организацией виртуальной памяти со страничной организацией пользователь получил реальную возможность загружать в память большее количество программ, для того чтобы машина обрабатывала программы сразу (в действительности процессор устанавливает приоритет для каждой программы, находящейся в памяти, и далее в соответствии с приоритетом выделяет определённое количество времени на реализацию каждой программы или команды). Сам процессор постоянно «занят» каждый машинный такт выполняет определённую программу. Метод организации виртуальной памяти со страничной организацией значительно повысил эффективность работы с машиной.
У каждого гениального изобретения к сожалению есть свои недостатки. Таковые есть и у виртуальной памяти со страничной организацией. Попытаемся проанализировать их. Основным недостатком виртуальной памяти, пожалуй, является то количество времени, которое машина тратит на обращение к внешней памяти. Извлечь необходимую информацию из ячеек оперативной памяти не представляет особого труда и больших затрат времени. Совсем иначе обстоит дело с диском: для того чтобы найти необходимую информацию, нужно сначала «раскрутить» диск, потом найти необходимую дорожку, в дорожке найти сектор, кластер, далее считать побитовую информацию в оперативной памяти. Все это требует времени и, порой, если при методе случайного удаления страниц *, процессору понадобятся сразу несколько страниц, хранящихся во внешней памяти, большого времени. К сожалению, этот недостаток принадлежит к виду «неисправимых». И если другие недостатки, рассмотренные ниже можно каким-то образом устранить (например, путем расширения технических средств и т.д.), то данный недостаток не может быть устранён никоим образом, так как понятие виртуальной памяти ассоциируется с применением внешней памяти (магнитного диска).
Следующий недостаток скорее относится к вопросу о технической характеристике компьютера: наличие сверхоперативной памяти (СОП). Как было сказано выше, СОП, как правило, имеет не большую ёмкость и достаточно высокое быстродействие. СОП используется для хранения управляющей информации, служебных кодов, а также информации, к которой осуществляется наиболее частое обращение в процессе выполнения программы. Этот недостаток в работе с ВП к счастью можно ликвидировать. Что касается технической характеристики, есть ли в микросхемах оперативной памяти дополнительные интегральные схемы, которые являются запоминающими устройствами СОП? Если есть, то проблема с СОП решена, а если нет? Тогда, благодаря достижениям в области компьютерной технологии, могут использоваться драйверы, резервирующие маленькую область ОП для имитирования СОП. Итак, что касается этого недостатка, то, мне кажется, что он не настолько серьёзен, чтобы о нём беспокоится. И, наконец, третьим недостатком является внутренняя фрагментация страниц.
4. Сегментно-страничная организация виртуальной памяти
При использовании метода сегментно-страничной организации виртуальной памяти (ВП), пользовательские программы разбиваются на отдельные массивы. Эти массивы независимые участки называются сегментами. Сегмент представляет собой единый логический объект, содержащий какую-либо процедуру, массив или набор данных. Как правило, информация, содержащаяся в сегменте, однородная, то есть в одном сегменте могут находиться только служебные коды программы, другой может являться сегментом стека, третий содержать коды связи с объектными (.obj) файлами и т.д.
Каждый сегмент представляет собой последовательность адресов от нуля до определённого максимального значения. Отличие сегмента от страницы состоит в том, что длина сегмента может изменяться в процессе работы.
Сегменты, как и любая структура виртуальной памяти, могут размещаться как в оперативной памяти, так и во внешней памяти (магнитных носителях). Виртуальная память с ССО функционирует, подобно виртуальной памяти со страничной организацией: если требующийся на данный момент сегмент отсутствует в оперативной памяти, то при надобности работы с ним, он предварительно перемещается в оперативную память.
Сегментно-страничная организация памяти требует более сложной аппаратурно-программной организации. Рассмотрим, как же осуществляется обращение к виртуальной памяти посредством ССО. По самому названию «сегментно-страничный» нетрудно догадаться, что при таком методе используется как сегментная, так и страничная таблицы. Это очень похоже на сложно структурированный метод «процедуры в процедуре» во многих алгоритмических языках. На рисунке 5 подробно показан способ организации ВП с ССО. Адрес ячейки в данном случае складывается из 3-х частей: первая содержит номер самого сегмента (S egment), по этому номеру машина обращается к сегментной таблице. Вторая часть адреса содержит номер искомой страницы (p age), которая находится внутри выбранного сегмента и третья смещение (l ength), по которому находится требуемый адрес. Pµ, обведенное в двойную рамку показывает математический адрес, а Pф физический. Как и при СО, смещение l переписывается в ячейку физического адреса без изменений.
Вверху рисунка, аббревиатурой N обозначен номер какой-нибудь программы пользователя. А 0 с индексом 1 обозначает конкретный начальный адрес сегментной таблицы для данной программы. Сначала берется этот адрес и номер сегмента S из регистра математического адреса. Оба этих адреса складываются в сумматоре, который изображен в виде обведенного плюса. Получившийся адрес А 1 + S является входом в сегментную таблицу. Далее, благодаря этому адресу, отыскивается соответствующий адрес страничной таблицы, который в свою очередь суммируется с номером искомой страницы p в сумматоре. Результирующая сумма есть вход в страничную таблицу. Структура страничной таблицы нам уже знакома: благодаря получившемуся адресу, находится соответствующий адрес физической страницы, процессор определяет местонахождение этой страницы (включенный бит страница находится в ОП, выключенный во внешней памяти).
память компьютер виртуальный организация
Сегментно-страничная организация ВП
Итак, краткое описание функционирования ВП с ССО: с помощью начального адреса сегментной таблицы и номера сегмента из регистра математического адреса (S) образуется адрес вход в сегментную таблицу, в которой находится начальный адрес страничной таблицы. К этому адресу в свою очередь прибавляется номер страницы из РМА. Эта сумма служит входом в страничную таблицу, в которой затем отыскивается адрес искомой физической страницы и, в соответствии с уровнем доступности, процессор либо начинает работать с этой страницей, либо вырабатывает аппаратурное прерывание и подключает супервизора, который затем организует ее перепись в ОП. Если вся ОП будет занята, то супервизор, в соответствии с принятым методом, своппирует какую-нибудь страницу.
5. Виртуальная память в современных компьютерах
Как было сказано выше, с развитием компьютерных технологий стали появляться новые перспективы использования персональных компьютеров. Упоминая, о компьютере Intel™ 486DX4 с тактовой частотой 75 Mhz, произведенным фирмой Texas Instruments. Несомненно, возможности этого компьютера огромны. Он комплектуется огромным жестким диском (1.2 GB) и имеет 32 MB оперативной памяти. Предположим, что эта машина будет использоваться для разработки космического корабля, робота хирурга или в области кибернетики. Для этих целей необходимо использовать «серьёзное» программное обеспечение (скажем, производимое фирмой Silicon Graphics ®), требующее огромного количества оперативной памяти. В такой ситуации даже 32 MB может не хватать. В таких ситуациях по-прежнему проявляется тенденция к использованию ВП. Виртуальная память применяется во многих программах, операционных оболочках, коммуникационном программном обеспечении. В следующих пунктах приведены примеры использования виртуальной памяти в современных компьютерах с различными программами.
Использование ВП в Microsoft ® Windows™ 3.1
Microsoft Windows 3.1 является наиболее популярной операционной оболочкой как среди любителей, так и среди профессиональных пользователей. Windows обеспечивает независимый запуск и выполнение сразу нескольких программ. Большинство других оболочек и операционных систем рассчитаны на выполнение в данный момент только одной программы. В рамках Windows можно запустить сразу несколько программ. Для этих целей используется ВП. 1. RAM диск (виртуальный, псевдо, электронный диск) Разновидность виртуальной памяти. Супервизор резервирует для него область EMS или XMS памяти и, таким образом устанавливает диск в памяти. Он работает быстрее, чем реальный физический диск, но при выключении питания его содержимое теряется. Он весьма удобен для хранения промежуточной информации в течение одного сеанса работы. Но RAM диск не является прямым аналогом ВП.
Использование 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файлов.
Разносекторное и перманентное применение ВП
Разносекторный (временной) 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. Так же было разработано множество профессиональных пакетов, ориентированных на математику, статистику, программирование, бухгалтерию и т.д. Вот здесь и нашлось место для применения виртуальной памяти. Благодаря возможности работы в мультипрограммном режиме, огромные массивы информации постоянно находятся в движении. Пользователь может запустить на выполнение сразу несколько программ, (каждая из которых требует памяти). Применение ВП значительно увеличивает объем физической памяти и позволяет работать эффективнее.
6. Способы замены (свопирования) страниц
Как было упомянуто выше, использование виртуальной памяти (ВП) подразумевает применение магнитного диска, на котором хранятся те страницы или сегменты, которые на данный момент не нужны в оперативной памяти. Метод применения ВП довольно прост: те страницы, с которыми пользователь работает в данный момент, находятся в памяти машины и к ним осуществляется непосредственный доступ. Через определённое время процессору, отработавшему с данной страницей, требуется другая страница, которая подгружается в память с диска. Страница, с которой только что отработали «вытесняется» на диск, а ни в коем случае не уничтожается.
Довольно часто случается так, что вся реальная память, разбитая на страницы полностью занята. И при необходимости подгрузить новую страницу, супервизор должен установить какую страницу перенести да диск, чтобы освободить место для требующейся. Это достаточно сложная задача, так как удалённая страница может понадобиться на следующем этапе, а это может привести к потере времени. Для своппирования страниц в разных программах используются различные стратегии, примеры которых приведены ниже.
Случайное удаление страниц
Случайное удаление не является самым эффективным способом, так как оно не может дать стопроцентной гарантии, что только что удалённая страница не понадобится на следующем этапе работы. Случайное удаление осуществляется с помощью функции случайных чисел. Супервизор попросту берет начальный адрес случайной страницы в оперативной памяти и переписывает его в swapфайл (на диск). При этом корректируется страничная (сегментная) таблица.
Удаление по времени пребывания в оперативной памяти
Механизм этой стратегии можно представить, как «первым вошел, первым вышел». Это значит, что страница, дольше всех находящаяся в оперативной памяти на данном этапе будет удалена первой. Этот метод также не универсален, так как каждой странице отведено определенное время на функционирование, и основное неудобство заключается в том, что необходимо вести механизм учёта за длительностью пребывания страниц в оперативной памяти, что также связанно с усложнением структуры и потерей времени.
Удаление в связи с давностью использования
На мой взгляд, этот метод является наиболее удачным. Механизм его таков: если страница дольше всех находится в оперативной памяти, значит пользователь в течение долго времени не нуждался в ней, а значит появляется вероятность, что эта страница не понадобится и на следующем этапе.
Удаление по вероятности использования
Вероятность использования страницы N очень небольшая, а вероятность использования страницы M высока. В этом случае, страница N будет удалена из памяти. Этот способ также не представляется мне достаточно эффективным, так как здесь всё основано на вероятности. Но, каждый раз, когда мы подбрасываем монету, неизвестно какой стороной она упадёт. Так же и здесь нет никакой гарантии, что эта страница не понадобится на следующем этапе.
Удаление по приоритетам
Этот способ, пожалуй, является достаточно эффективным, так как страницы удаляются по приоритетам. Каждая страница имеет свой приоритет, который устанавливается супервизором в соответствии с «важностью» программы, находящейся в определённой станице. Предположим, что в странице N находятся коды важной пользовательской подпрограммы, а в странице M текстовый файл, работа с которым не является столь важной. Тогда N получает приоритет 1, а M, предположим, 9. Заметим, что необходимые, часто требующиеся страницы имеют приоритеты 13, менее необходимые 46, и практически ненужные 59. Это значит, что когда в следующий раз супервизору понадобится удалить из оперативной памяти страницу, он начнет со страниц, имеющих самый низкий уровень приоритета (9).
7. Анализ и оценка виртуальной памяти. Показатели эффективности
Эффективное решение задач на ЭВМ определяется не только емкостью и быстродействием запоминающих устройств, наличием мощного процессора с большой тактовой частотой, но и организацией и распределением памяти. Современные компьютеры обладают средствами и техническими характеристиками для организации виртуальной памяти. Применение виртуальной памяти получило широкое применение, как среди пользователей любителей, так и среди профессионалов. Основная функция виртуальной памяти расширение адресного пространства. ВП создаётся для увеличения функциональных возможностей компьютера, повышения уровней мультипрограммной работы. Объединив, ячейки реальной оперативной памяти с ячейками на быстродействующих магнитных носителях, (чаще всего для этих целей используются винчестеры. Применение НГМД не было бы столь эффективно, а применение НМД или НМБ понесло бы невосполнимые потери), пользователь имеет возможность значительно расширить память и при этом не думать о том, в «какой» памяти хранится его программа. ВП была создана для облегчения работы пользователей при размещении программ. Благодаря виртуальной памяти, появилась возможность для более эффективного применения программ-мультитаскеров (multitasker) специальных пакетов, позволяющих повысить уровень мультипрограммной работы. (Программы, которые распределяют время процессора и память так, что например, связываться по модему, печатать на принтере и обрабатывать текст можно одновременно). В настоящее время, благодаря применению ВП, усилилась тенденция к использованию DeskView менеджера-мультитаскера (производства фирмы QuatterDeck).
Сравнивая реальную оперативную память с виртуальной, можно отметить, что объем реальной оперативной памяти (РП) ограничен, то есть в каждой микросхеме фиксированное число ячеек. Что касается ВП, то она может иметь достаточно большой объем, ограниченный только местом на диске (возможностью адресации). Объем ВП может достигать нескольких десятков и сотен мегабайт. РП имеет линейную структуру (адресация в порядке возрастания). ВП использует сквозную адресацию.
В целом, применение виртуальной памяти является весомым вкладом в прогрессировании современных компьютерных технологий и большим шагом в развитии программирования, открывающим профессиональному программисту путь к созданию мощных мультизадачных систем и комплексов. Применение виртуальной памяти широко оценивается специалистами в компьютерной медицине, научной кибернетике, профессиональном программировании.
Библиографический список
1. Олифер В.Г. Сетевые операционные системы / В.Г. Олифер, Н.А. Олифер. - СПб.:Питер, 2001. - 544 с.
2. Робачевский А.А. Операционная система UNIX / А. Робачевский. - СПб.:BHV, 1999. - 451 с.
3. Медник С. Операционные системы/ С. Медник, Дж. Донован. - М.: Мир, 1978. - 648 с.
4. Косарева В.П. и Еремина Л.В. Экономическая информатика. - .: Финансы и статистика, 2001. - 592 с.
Размещено на Allbest.ru
Подобные документы
Распределение виртуальной памяти. Страничная и сегментная организации виртуальной памяти. Сегментно-страничная организация виртуальной памяти. Преобразование виртуального адреса в физический. Упрощение адресации памяти клиентским программным обеспечением.
курсовая работа [440,7 K], добавлен 04.03.2014Архитектура компьютеров и возможности операционной системы по управлению памятью. Суть концепции виртуальной памяти. Аппаратно-независимые и аппаратно-зависимые средства управления виртуальной памятью. Сегментно-страничная организации виртуальной памяти.
презентация [355,2 K], добавлен 27.12.2010Организация памяти компьютера и простые схемы управления ею. Принципы связывания адресов. Динамическое распределение и свопинг. Сегментная и сегментно-страничная организация памяти. Выталкивание редко используемой страницы. Описание работы с программой.
курсовая работа [3,1 M], добавлен 19.01.2016Схема распределения памяти, соответствующая пользовательской трактовке распределения памяти. Перемещение с помощью таблицы сегментов. Аппаратная поддержка сегментного распределения памяти. Сегментно-страничная организация памяти с двухуровневой схемой.
лекция [1,5 M], добавлен 24.01.2014Стратегии размещения информации в памяти. Алгоритмы распределения адресного пространства оперативной памяти. Описание характеристик модели и ее поведения, классов и элементов. Выгрузка и загрузка блоков из вторичной памяти. Страничная организация памяти.
курсовая работа [708,6 K], добавлен 31.05.2013Динамическое распределение памяти. Анализ виртуальной памяти, алгоритм ее обращения, общие принципы защиты. Страничная организация. Особенности переключения в мультизадачный режим. Режим системного управления. Расширение размера адресного пространства.
презентация [1,3 M], добавлен 14.12.2013- Управление памятью. Страничная организация памяти. Сегментная организация памяти. Виртуальная память
Как осуществляется трансляция адресов при страничной организации. Что такое компактировка и как с ее помощью избавиться от внешней фрагментации. Что такое регистр таблицы страниц, сегментация. Методы распределения памяти в виде отдельных сегментов.
контрольная работа [236,2 K], добавлен 23.12.2016 Понятие и функциональные особенности запоминающих устройств компьютера, их классификация и типы, сравнительная характеристика: ROM, DRAM и SRAM. Оценка преимуществ и недостатков каждого типа оперативной памяти, направления и пути их использования.
презентация [118,1 K], добавлен 20.11.2013Обобщение основных видов и назначения оперативной памяти компьютера. Энергозависимая и энергонезависимая память. SRAM и DRAM. Триггеры, динамическое ОЗУ и его модификации. Кэш-память. Постоянное запоминающее устройство. Флэш-память. Виды внешней памяти.
курсовая работа [1,7 M], добавлен 17.06.2013Внутренний кэш. Смешанная и разделенная кэш-память. Статическая и динамическая память. TLB как разновидность кэш-памяти. Организация кэш-памяти. Отображение секторов ОП в кэш-памяти. Иерархическая модель кэш-памяти. Ассоциативность кэш-памяти.
курсовая работа [229,1 K], добавлен 04.11.2006