
- •Раздел 4. Управление памятью в операционных системах
- •4.1. Классификация способов организации памяти
- •4.2. Управление физической памятью
- •4.2.1. Однозадачные системы
- •4.2.1.1. Простые и оверлейные системы
- •4.2.1.2. Сегментация памяти
- •4.2.1.3. Блочная организация памяти
- •4.2.1.4. Стратегии управления памятью (введение)
- •4.2.2. Многозадачные системы
- •4.2.2.1. Фиксированные разделы (неперемещаемые программы)
- •4.2.2.2. Фиксированные разделы (перемещаемые программы)
- •4.2.2.3. Переменные разделы
- •4.2.2.4. Свопинг
- •4.3.1. Общая характеристика виртуальной памяти
- •4.3.1.1. Определения виртуальной памяти и иерархия видов памяти
- •4.3.1.2. Особенности виртуальной памяти
- •4.3.1.3. Механизм отображения виртуальных адресов в физические
- •4.3.2. Страничная организация виртуальной памяти
- •4.3.2.1. Одноуровневая страничная организация
- •4.3.2.2. Двухуровневая страничная организация
- •4.3.2.3. Совместное использование страниц процессами
- •4.3.3. Сегментная организация виртуальной памяти
- •4.3.3.1. Одноуровневая сегментная организация
- •4.3.3.2. Комбинированная сегментно-страничная организация (вместе с таблицей процессов)
- •4.3.4. Стратегии управления виртуальной памятью
- •4.3.4.1. Главные задачи управления виртуальной памятью
- •4.3.4.2. Стратегии решения второй главной задачи
- •4. Выталкивание дольше всех не использовавшейся страницы
- •4.3.4.4. Стратегии выталкивания с переменным распределением
- •4.4. Управление памятью в современных ос
- •4.4.1. Архитектура управления памятью
- •4.4.2. Защита памяти
- •4.4.4. Совместное использование памяти
- •4.4.4.1. Способы совместного использования памяти
- •4.4.4.2. Пример реализации разделяемой памяти в Win32
- •Закрытие объекта:
4.3.1.3. Механизм отображения виртуальных адресов в физические
Механизм основан на ведении таблицы отображения виртуального адреса V в физический адрес R.
Предельный случай - это для каждого виртуального адреса в таблице хранить информацию о физическом адресе. Такой способ нерационален из-за большого размера таблицы отображения.
Поэтому рассматриваются блоки виртуальной памяти, которым соответствуют блоки физической памяти.
Вопрос (
Чем больше размер блоков, тем меньше затрат на механизм отображения. Но увеличиваются затраты на обмен с внешней памятью.
)Вопрос
Если блоки памяти могут иметь переменный размер, то говорят о сегментной организации виртуальной памяти.
Если блоки имеют фиксированный размер, то говорят о страничной организации виртуальной памяти.
Механизм же отображения один как для сегментной, так и для страничной организации.
Вопрос (
Виртуальный адрес - это вектор:
V = (b, d),
Где: b - это номер блока;
d - это смещение внутри блока.
)Вопрос
фактически b - это смещение внутри таблицы отображения блоков.
Строка таблицы содержит адрес блока в памяти и другую информацию о блоке.
Схема отображения имеет следующий вид:
Вопрос (
)Вопрос
4.3.2. Страничная организация виртуальной памяти
4.3.2.1. Одноуровневая страничная организация
Страничная виртуальная память состоит из блоков фиксированного размера, называемых страницами. Размер страниц обычно составляет от 512 байтов до 4К. Например, в процессоре Intel размер страницы равен 4К.
Виртуальный адрес равен
V = (p, d),
Где р - номер страницы;
d - смещение внутри страницы.
При фиксированном размере блока проще реализуются стратегии размещения страниц в памяти.
Вопрос (
Строка таблицы страниц обычно содержит следующие данные:
-
p
m
a
n
s
p - бит присутствия страницы;
m - бит модификации страницы;
a - права доступа к странице;
n - адрес в физической памяти, если страница загружена;
s - адрес во внешней памяти, если страница не загружена.
)Вопрос
Таблица страниц загружается вместе с задачей и хранится в оперативной памяти.
Для ускорения доступа часть строк таблицы, к которым обращения происходят наиболее часто, хранятся в кэш-памяти. Обращение к таблице в оперативной памяти происходит только при неудачном поиске строки в кэш-памяти. В этом случае кэш-память обновляется новой страницей.
4.3.2.2. Двухуровневая страничная организация
С ростом размера виртуальной памяти пропорционально увеличиваются и размеры таблиц страниц. Избежать роста таблиц позволяет двухуровневая страничная организация.
Вопрос (
В этом случае для каждой задачи создается каталог таблиц, а виртуальный адрес состоит из трех компонентов:
V = (k, p, d),
Где k - строка каталога, содержащая адрес таблицы страниц;
р - смещение в выбранной таблице страниц;
d - смещение в физической памяти.
)Вопрос
Вопрос (
)Вопрос
Например, в процессоре Intel с 32-х разрядными регистрами каталог может содержать информацию о 1024 таблицах (1 К).
Каждая таблица содержит информацию о 1024 страницах (1 К). Поскольку каждая страница имеет размер 4 К, то одна таблица страниц может адресовать память 4 К х 1 К = 4 М.
Один каталог адресует память 4 М х 1 К = 4 Г.