Управление памятью
Страничная организация виртуальной памяти
Сегментно-страничная организация виртуальной памяти
478.00K
Категория: ИнформатикаИнформатика

Управление памятью

1. Управление памятью

2.

3.

Функции ОС по управлению памятью в
мультипрограммной системе
1.отслеживание свободной и занятой памяти,
2.выделение памяти процессам и освобождение
памяти по завершении процессов,
3.недостаток объема оперативной памяти,
4.фрагментация,
5.настройка адресов программы на конкретную
область физической памяти,
6.защита памяти.

4.

Типы адресов
Символьное адресное пространство –
совокупность
всех
допустимых
идентификаторов переменных
Логическое
адресное
пространство

совокупность всех допустимых адресов, с
которыми работает процессор.
Физическое
адресное
пространство

совокупность
всех доступных физических
адресов в вычислительной системе

5.

Однопрограммная вычислительная система
0
ОС
Процесс
пользователя
Процесс
пользователя
ОС
5

6.

7.

Схема
с фиксированными разделами
0
Раздел 1
Раздел 2
Очередь заданий
ОС
Задание 1
Процесс 1
Процесс 2
Задание 2
Задание 3
Процесс 3
Раздел 3
Задание 4

8.

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

9.

Преимущество: простота реализации.
Недостаток: жесткость, в каждом разделе может
выполняться только один процесс.
Применялся в ранних мультипрограммных ОС.

10.

Внутренняя фрагментация
0
Раздел 1
Раздел 2
ОС
Процесс 1
Процесс 2
Процесс 3
Раздел 3
Внутренняя фрагментация –
«потеря» части памяти,
выделенной процессу, но не
используемой им

11.

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

12.

Распределение памяти динамическими разделами

13.

Функции операционной системы
1. Ведение таблиц свободных и занятых областей.
2. Анализ требований к памяти, просмотр таблицы
свободных областей и выбор раздела, размер
которого достаточен для размещения кодов и
данных нового процесса.
3. Загрузка программы в выделенный ей раздел и
корректировка таблиц свободных и занятых
областей.
4. После завершения процесса корректировка
таблиц свободных и занятых областей.

14.

Выбор раздела может осуществляться по разным
правилам:
1. Первый
подходящий
(first-fit).
Процесс
размещается в первое подходящее по размеру
пустое место.
2. Наиболее подходящий (best-fit). Процесс
размещается в наименьшее подходящее по
размеру пустое место.
3. Наименее подходящий (worst-fit). Процесс
размещается в наибольшее пустое место.

15.

Схема с динамическими разделами
ОС
0
P1
время 10
200
P4
время 8
400
P3
время 20
650 700
950 1000
Очередь заданий

1
2
3
4
5
память
время
200
10
300
5
250
20
250
8
70
15

16.

Внешняя фрагментация – невозможность
использования памяти, неиспользуемой
процессами, из-за ее раздробленности
Возможна и внутренняя фрагментация при
почти полном заполнении процессом
пустого фрагмента

17.

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

18.

Распределение памяти перемещаемыми
разделами

19.

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

20.

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

21.

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

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

Таблица страниц
процесса 1
Nф.с. P A D W
Виртуальные
страницы
Виртуальное адресное
пространство процесса 1
0
1
2
.
0
1
2
3
4
.
k
Виртуальные
страницы
Виртуальное адресное
пространство процесса 2
0
1
2
n
1
5
1
0
1
ВП
Стр. 4 процесса 1
Стр. 1 процесса 2
ВП
9
2
Таблица страниц
процесса 2
Nф.с.
0
1
2
3
4
3
Физическая
память
P A
D W
1
1 0
0
Стр. 0 процесса 1
Стр. 3 процесса 1
Страничный обмен
Магнитный диск
0
1
2
3
4
5
6
7
8
9
..
..

23.

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

24.

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

25.

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

26.

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

27.

Виртуальный адрес
Номер сегмента - N
Смещение - S
Таблица сегментов
+
Управляющая
информация:
P – присутствие;
M – модификация;
U – использование;
Sh – разделение;
S – защита.
Физический адрес
Базовый
Управляющая
информация Размер адрес

28.

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

29.

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

30.

Недостатки сегментной организации
1.
Увеличение
времени
преобразования
виртуального адреса в физический.
2. Избыточность перемещаемых данных.
3. Внешняя фрагментация памяти.

31.

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

32. Сегментно-страничная организация виртуальной памяти

Номер физ. Смещение
страницы
Сегментно-страничная организация виртуальной памяти
Программа
Указатель Начальный
на таблицу адрес таблицы
сегментов сегментов
Смещение
Механизм сегментации
+
Начальный
адрес таблицы
страниц
Таблица
страниц
+
Таблица
сегментов
Номер страницы
Номер сегмента
Номер
сегмента
Номер
страницы Смещение
Виртуальный адрес
Механизм страничной
организации
Основная
память
English     Русский Правила