Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции кошкин.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
667.65 Кб
Скачать
  1. Управление виртуальной памятью.

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

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

Принято переносить (переписывать) содержимое ВЗУ в оперативную память фрагментами. Важно выделить следующие пункты: 1) когда переносить 2) сколько переносить (какой объем) 3) по каким адресам 4) как часто. Возникает потребность замены существующего содержимого ОЗУ на новый фрагмент, значит какой-то участок (раздел) нужно исключить, поэтому: 5) как выбирать разделы, подлежащие перезаписи. Наиболее простой метод реализации памяти – это размещение страниц по запросам. Вся виртуальная память делится на страницы некой фиксированной длины, число страниц произвольно, но большое. Реальная память поделена на страничные кадры того же объема, что и страницы. Любая страница из ВЗУ может быть отражена в страничном кадре. При этом соответствие между страницей и страничным кадром описывается таблицей отображения страниц. Для каждого процесса (процедуры) своя таблица. Она нужна при аппаратном при образовании адресов. Из виртуальной памяти в соответствующие адреса оперативной памяти.

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

В

страница

изменения

таблице хранятся номера кадров и индикатор изменения. Адрес формируется из номера кадра, например, 11 и ткущего адреса внутри страницы 0; в таблице ведется график изменения. Если в процессе работы содержимое ОЗУ текущей страницы было изменено (данные) при выталкивании этой страницы из ОЗУ она переписывается назад в ОЗУ. Если изменений не было, перезапись не производится. Может оказаться, что в ОЗУ поступит адрес за страницу которая не загружена. В этом случае формируется сигнал прерывания по отсутствию страницы (страничное прерывание). Программа обработки этого прерывания загружает требуемую страницу в ОЗУ и формирует новый адрес с учетом кадра. Каждая программа отображается своей таблицей. С изменением программы меняется таблица. Обязательно указывается модификация страницы.

Преобразование адресов аппаратными средствами.

Т.е. реальный физический адрес формируется за счет сложения /объединения адреса внутри страницы и содержимого регистра смещения. Но разбиение памяти на страницы имеет недостаток. При смене страницы, при перезаписи время, затраченное на эту смену значительно больше на несколько порядков времени цикла ввода- вывода. Отсюда можно предположить, что загрузка новых страниц должна происходить не часто. Например: если на каждые 100 обращений в память, требуется перезагрузка одной страницы, то реальное время работы и загрузки страниц относиться как 1:100. Т.е. программное обеспечение постоянно перезагружает новые страницы. Такой термин называют пробуксовка. Отсюда страничная организация рациональна, если частота загрузки страниц будет значительно меньше времени обращения. Но этого можно достигнуть, если требуемая информация будет находиться в вызванной странице. Это условие частично выполняется благодаря локальности ссылок. Обращение в памяти происходит не случайно, а они группируются в адресном пространстве. Причины такого явления: 1) команды выполняются последовательно, т.е. необходимая информация или данные располагаются в соседних ячейках; 2) циклы выполняют довольно компактно, небольшая длина; 3) вычисление производиться последовательностью программ.

Если же в каких то заданиях необходимо перезагрузить страницу, число таких событий небольшое. С уменьшением числа хранимых в памяти страниц, возникает потребность перезагрузки, замене страниц на новые. Начиная с некоторой величины Х ход кривой резко меняется, поэтому стремятся число страниц в памяти хранить порядка N=Х. Значение адресов, загруженных страниц и содержимое регистра должны сохраняться при страничных прерываниях. Поэтому соответствующий объем стека д.б. предусмотрен. Наиболее неприятна процедура при работе со страницами возникает при решении – какую из уже загруженных страниц следует вытолкнуть. Субъективно существует вероятность, что она понадобится в текущей памяти. Чтобы формализовать эту процедуру используют признак частости обращения к страницам. В этом случае выталкивается страница, к которой реже обращались, т.е. нужен дополнительный анализатор. Размещение страниц по запросам подразумевает отлаженные связи, т.е. соответствие между адресами виртуальной и реальной памятью не важны, не определяются до момента обращения, загрузки страницы. Этот подход требует времени, но упрощает процедуры адресации.

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