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

Виртуализация оперативной памяти осуществляется совокупностью аппаратных и программных (ОС) средств вычислительной системы автоматически без участия программиста и не сказывается на работе приложения. Методы виртуализации памяти: свопинг (swapping), виртуальная память (virtual memory).

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

Недостатки виртуальной памяти: необходимость преобразования виртуальных адресов в физические, сложность аппаратной и программной (ОС) поддержки.

Методы реализации виртуальной памяти:

-Страничная виртуальная память – организует перемещение данных между ОП и диском страницами – частями виртуального адресного пространства фиксированного и сравнительно небольшого размера.

-Сегментная виртуальная память предусматривает перемещение данных сегментами – частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных.

-Сегментно-страничная виртуальная память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения данных является страница.

-Для временного хранения сегментов и страниц на диске отводится специальная область – страничный файл или файл подкачки (paging file).

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

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

R1 R2 R3 R4
       

Задача

Вектор доступных ресурсов

R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4
                0-0=0 0-0=0 1-1=0 2-2=0
                2-2=0 7-0=7 5-0=5 0-0=0
                6-0=6 6-0=6 5-3=2 6-4=2
                4-2=2 3-3=0 5-5=0 6-4=2
                0-0=0 6-5=1 5-3=2 2-2=0
R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4
                       
                       
                       
                       
                       

2.Определяем процесс, который при данном количестве свободных ресурсов может завершиться. Это процесс № 1.

Т.к. ему вообще не обходимо ресурсов. Теперь вектор доступных ресурсов имеет вид

R1 R2 R3 R4
       
       
R1 R2 R3 R4
       

Следующим может быть выполнен процесс 4 (требует две единицы ресурса 1 и две единицы ресурса 4, которые система может предоставить).

Вектор доступных ресурсов

R1 R2 R3 R4
       

И т.д. затем сможет завершиться 5, 2 и 3 процессы. Векторы доступных ресурсов для них. Существует порядок планирования, при котором может завершиться каждый процесс. Вывод: система находится в безопасном состоянии.

3. Для возникновения ситуации взаимоблокировки должны выполняться 4 условия:

1) условие взаимного исключения (каждый ресурс либо принадлежит дному процессу, либо свободен)

2) условие удержания и ожидания (процессы, удерживающие полученные ранее ресурсы, могут запрашивать новые ресурсы)

3) условие отсутствия принудительной выгрузки ресурса (процесс сам должен освободить ресурс)

4) условие циклического ожидания (должна существовать круговая последовательность из двух и более процессов, каждый из которых ждет доступа к ресурсу, удерживаемому другим процессом)

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: