Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация памяти в ЭВМ. Ввод и вывод.doc
Скачиваний:
48
Добавлен:
01.05.2014
Размер:
499.2 Кб
Скачать

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

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

При использовании виртуальной памяти различают:

  1. ФАП (физическое адресное пространство) – это совокупность адресов, соответствующих реально адресуемым физическим ячейкам памяти.

  2. ЛАП (ВАП) (логическое или виртуальное адресное пространство) – это совокупность адресов, которая может использоваться для доступа к данным.

Очевидно, что емкость ВАП должна значительно превышать емкость ФАП

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

Разбиение происходит по двум принципам

  1. Страничное

  2. Сегментное

При первом, вся память (основная и дисковая) разбивается на одинаковые по размерам блоки, называемые страницами; разбиение происходит независимо от типа и характера размещения данных.. Говорят, что страничное разбиение ориентируется на физическую память.

При втором, разбиение оперативной памяти и дисков происходит на логические сегменты, как правило соответствующие логически завершенным объектам задач (программа, массив данных и т.д.); вследствие этого длина каждого сегмента может быть произвольной. Говорят, что сегментное разбиение имеет логическую ориентацию.

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

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

Здесь признак m/dзадает «бит присутствия»:

1- страница есть в ОП, 0 - страница имеется только на диске.

Сущность преобразования адресов:

ВА p.d--> ФАp’.d,

где операция ‘.’ означает конкатенацию.

Стратегия замещения страниц

  1. FIFO– заменяется страница ОП, которая была загружена первой из имеющихся в ОП страниц;

  2. LRU– заменяется страница ОП, на которую была самая давняя ссылка.

  3. WS(workset) рабочее множество: для конкретных интервалов времени создается совокупность страниц ОП, которые активно используются и не замещаются, остальные можно удалить из памяти.

Основная проблема: выбор оптимальных размера и количества страниц. Наиболее часто используется размер от 4кб до 512кб.

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

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

BA pi d

p1 p1I

p2 p2I

PiI

+ ФА

pk pkI

Такая структура называется буфер страничной трансляции (БСТ).

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

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

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

S

Сущность преобразования адресов:

Атрибуты S’ ВАS.d--> ФАS’.d,

где операция ‘.’ означает конкатенацию

Формат строки таблицы сегментов

m/d L R W E АВП Здесь признакm/d- «бит присутствия

1 nI 1 1 1 nII

L - длина сегмента;R,W,E - доступность по чтению, записи, выполнению; АВП – адрес во внешней памяти

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

Фрагментацию обычно различают внутреннюю и внешнюю.

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

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

Для преодоления проблем фрагментации, операционная система запускает процедуру, называемую «сборка мусора» или дефрагментация, которая объединяет свободные участки памяти в сплошные блоки.

Для сегментной организации ВП дефрагментатор нужно запускать чаще, чем для страничной организации.

Для решения проблем внешней фрагментации и сокращения длины таблицы страниц обычно применяется смешанная сегментно-страничная организация.

S P d

номер номер смещение

сегмента страницы в странице

+ ФА1

БА Сегм. 1 табл. стр. 1

+

БА Сегм. i

+

табл. сегм.

+ ФАi

+

табл. стр. i

Сегмент рассматривается не как целый, а разбивается на страницы, именно части страниц будут теряться при фрагментации. Таблицу сегментов также не рассматривают как указатель на сплошное адресное пространство, а как совокупность указателей на различные, не обязательно смежные страницы. Для различных задач могут быть разные таблицы сегментов и разные связи с таблицами страниц. В результате обеспечивается на логическом уровне – сегментная организация, а на физическом – страничная.