28
FFFFFFFF, что составляет 4 Гб.
Существует два основных типа представления виртуальных адресов:
• линейное – адрес начала ВАП всегда равен нулю;
• деление на сегменты, при котором адрес – это пара чисел (n, m), где n
– номер сегмента, m – смещение;
Назначенное ВАП – действительно необходимое процессу для работы.
Его также называют образом процесса. Назначенное ВАП может превышать
физический объем памяти. На этом основан механизм виртуальной памяти.
ВАП и виртуальная память – это разные механизмы для ОС. ОС может
поддерживать ВАП, но механизм виртуальной памяти может при этом
отсутствовать, например, в случае превыш ения физической памяти над ВАП
любого процесса.
Алгоритмы распределения памяти без использования внешней
памяти
При распределении памяти фиксированными разделами память
изначально разделена на сегменты фиксированной величины.
При распределении памяти динамическими разделами память в
начальный момент времени считается свободной (за исключением памяти
отведенной под ОС). Каждому процессу отводится вся необходимая память.
Если ее не хватает, то процесс не создается. В произвольный момент времени
память представляет собой случайную последовательность занятых и
свободных у частков. Достоинство данного вида распределения памяти −
большая гибкость, по сравнению с методом распределения фиксированными
разделами. Недостаток – высокий уровень фрагментации.
В методе распределения памяти перемещаемыми разделами
разработчики попытались учесть достоинства и недостатки п редыдущ его.
Например, для борьбы с фрагментацией применяется дефрагментация –
сжатие при кото ром вся свободная память обр азует непрерывную область.
Такой метод был применен в ранних версиях OS/2. Недостаток этого метода
– низкая производительность.
Алгоритмы распределения памяти с использовани ем внешней
памяти. Для полной загрузки процессора могут понадобиться иногда сотни
интерактивных задач. Все они должны быть размещены в памяти, большая
часть которых находится в состоянии ожидания. Логично было бы на время
ожидания, в случае нехватки ф изической памяти, в ытеснять их на диск, а
когда необходимо, возвращать в п амять. Такая подм ена (виртуализация)
оперативной памяти дисковой памятью существенно повышает уро вень
мультипрограммирования. Важно, что все действия по перемещению
происходят автоматически, без участия программиста.
Для виртуализации применяются два основных подхода: Свопинг – образ
процесса выгруж ается на диск и возвращается в память целиком. Свопинг
часто называется подкачкой. Виртуальная память – образ процесса
выгружается на диск и возвращается в память частями (сегментами,
страницами).