- •Отчёт по лабораторной работе № ____
- •Теоретические сведения.
- •Принцип действия кэш – памяти
- •Объективные свойства данных, объясняющие высокую вероятность кэш-попадания
- •Временная локальность
- •Пространственная локальность
- •Алгоритм действия кэш-памяти
- •Проблема согласования данных
- •Способы отображения основной памяти на кэш.
- •Случайное отображение
- •Детерминированное отображение
- •Комбинированный способ
- •Алгоритмы распределения памяти
- •Алгоритмы распределения памяти без использования внешней памяти Распределение памяти фиксированными разделами
- •Распределение памяти динамическими разделами
- •Распределение памяти перемещаемыми разделами
- •Алгоритмы распределения памяти с использованием внешней памяти
- •Страничное распределение
- •Сегментное распределение
- •Сегментное - страничное распределение
Распределение памяти перемещаемыми разделами
В этом методе разработчики попытались учесть достоинства и недостатки предыдущего.
Один из способов борьбы с фрагментацией – сжатие, таким образом, чтобы вся свободная память образовала непрерывную область – дефрагментация. Такой метод был применен в ранних версиях OS/2
Рис.11 Распределение памяти перемещаемыми разделами.
Недостаток этого метода – низкая производительность.
Алгоритмы распределения памяти с использованием внешней памяти
Для полной загрузки процессора могут понадобиться иногда сотни интерактивных задач
Все они должны быть размещены в памяти, большая часть которых находится в состоянии ожидания.
Логично было бы на время ожидания, в случае нехватки физической памяти, вытеснять их на диск, а когда необходимо, возвращать в память.
Такая подмена (виртуализация) оперативной памяти дисковой памятью существенно повышает уровень мультипрограммирования
Важно, что все действия по перемещению происходят автоматически, без участия программиста
Для виртуализации применяются два основных подхода:
Свопинг – образ процесса выгружается на диск и возвращается в память целиком. Часто называется подкачкой.
Виртуальная память – образ процесса выгружается на диск и возвращается в память частями (сегментами, страницами...)
Реализация виртуальной памяти, представлена тремя классами: страничное распределение, сегментное, сегментно-страничное распределение.
Страничное распределение
При страничном распределении виртуальная память делится на части одинакового и фиксированного для данной системы размера, называемыми виртуальными страницами. Вся оперативная память также делится на части такого же размера, называемые физическими страницами. Размер страницы выбирается равным степени двойки: 512, 1024, 4096 и т.д.
Рис12 Страничное распределение.
где, таблица страниц – это внутренняя структура ОС. Адрес страницы входит в контекст процесса. Таблица страниц состоит из дескрипторов. Каждый дескриптор включает:
Номер физической таблицы
Признак присутствия в ОЗУ (формируется аппаратно)
Признак модификации (формируется аппаратно)
Признак обращения (формируется аппаратно)
Виртуальный адрес, который представлен парой (p, sv) преобразуется в (n, sf)
Объем страницы равен степени 2k, тогда смещение (s) можно получить отделением к разрядов
Например. Если размер страницы = 1кб (210), то 50718 = 101 000 111 0012, 108=28 – номер страницы
Схема обращения к физической памяти по виртуальному адресу при страничном распределении
Рис13. Схема преобразования виртуального адреса в физический при страничном распределении.
Аппаратно, из регистра извлекается адрес таблицы страниц. На основании номера страницы Р и длины записи L, определяется адрес дескриптора (A=AT+P*L).
Из таблицы извлекается номер физической страницы N. К номеру N присоединяется смещение S.
Размер страниц, (часто 4096) влияет на размер таблиц, а это в свою очередь отражается на производительности. для устранения этого недостатка ВАП может делится на разделы, а в каждом разделе формируется своя таблица страниц. Этот вариант ускоряет поиск.