Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Виртуальная память



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

Если, например, используются 4096 байт памяти, то в любой момент времени все 4096 байт могут быть физически и непосредственно адресованы. Однако эти 4096 байт не обязательно один к одному соотносятся с байтами физической памяти. Операционная система может дать указание аппаратуре, что, начиная с некоторого момента, при обращении по адресу 4096 должна использоваться ячейка памяти с адресом 0 и т. д. Другими словами, операционная система определяет отображение адресного пространства на реальные адреса памяти. На рис. 13.5 показано отображение части адресного пространства (4К) на адреса основной памяти.

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

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

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

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

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

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

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

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

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

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

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





Дата публикования: 2014-10-19; Прочитано: 1425 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...