1, 2, 3… (Переписать)
Страничная организация памяти
Пространство адресов памяти делится на блоки фиксированной длины.
Программа – набор страниц той же длины.
N страниц – (n-1) страниц полные, n-ая неполная
Адрес: P – номер страницы
d – смещение внутри сегмента
Задание: таблица страниц – содержит описание страниц программ всего задания
ЦП – регистр в таблице страниц (РТСтр – таблица страниц текущего задания)
Признак (в памяти или нет) |
Биты защиты |
Адрес |
|
|
|
|
|
|
|
|
|
P – номер строки
Плюсы:
Перемещение страниц – нетрудоемкая задача (достаточно иметь список свободных страниц).
Минусы:
Для доступа к адресуемому объекту необходимо 2 обращения к ОЗУ.
Борьба: кеширование отображения контекст (идентификатор задачи) + P <-> адрес страницы
Кэш – ПАК
Невозможность совместного использования программ различными задачами.
Фрагментация при страничной организации памяти внутренняя (внутри страницы возможны неиспользуемые поля). При сегментной организации программ – внешняя (между сегментами возможны неиспользуемые поля).
Сочетание сегментной организации программ и страничную организацию памяти.
ОЗУ – разбивается на страницы фиксированной длины
Задание – совокупность сегментов с кодом и данными
Каждый сегмент делится на страницы той же длины
Адрес: S, P, d – номер сегмента, страницы, смещение
ЦП – РТС (регистр таблицы сегментов)
Размер сегмента |
Адрес таблицы страниц |
|
|
Плюсы: все преимущества сегментной организации программ и сегментной организации памяти.
Минусы:
Доступ к объекту требует 3 обращения к памяти.
Борьба – кэширование отображения контекст + S + P <-> физический адрес страницы.
Кэш – ПАК
Виртуальная память.
Цель: избавить программиста от необходимости учета ограничений размера физической памяти конкретной ВС при разработке приложения.
Виртуальная память основана на методах динамического распределения памяти.
Реализация ВП в том числе основана на аппаратных средствах.
Регистры, кэш, ОЗУ, HDD.
i < j:
M(i) быстрее M(j)
M(i) меньше M(j)
Удельная стоимость единицы памяти M(i) больше M(j)
Перемещение:
Страниц (4,5 метод)
Сегментов (3 метод)
Сегментация – логический подход к пространству адресов.
Страничная организация – физический подход.
Основные вопросы реализации ВП:
Как распределить память каждого уровня.
Какие критерии применять при подкачке адресуемых объектов.
Какие критерии применять при вытеснении АО.
Стратегии распределения памяти для сегментов переменной длины.
Задачи: найти стратегию распределения, которая
хорошо загружает память
при минимальных издержках распределяющих алгоритмов.
Решения:
Вести список свободной памяти.
Уплотнение множества фрагментов один экстент (непрерывная область)
Список свободной памяти – список пустот в нашей оперативной памяти.
Различают 3 классических способа ведения списков.
Список пустот, упорядоченных по возрастанию адресов
Пустота (указатель на следующую пустоту, длина)
Позволяет соседние пустоты объединять в одну пустоту.
Существует 2 стратегии поиска подходящей пустоты:
Выбор первой подходящей пустоты ( ).
Выбор самой подходящей пустоты ( ).
Во многих случаях первая стратегия лучше загружает оперативную память, чем вторая.
Список пустот, упорядоченных по размерам пустот
При этом: 1 стратегия поиска дает 2-ю.
Пустота (указатель на следующую пустоту, длина)
Модификация способа 2:
Список пустот дополняется дополнительным списком (дополнительными указателями).
указывает на 1-ю пустоту размера
Минусы:
Список трудно сопровождать.
Трудно объединить соседние пустоты.
Организация пустот системой расщепления.
Память представлена множеством блоков размера где размер физической памяти.
Сопровождается список.
Некоторые списки могут быть пустыми.
Поиск пустоты размера :
Поиск начинается в списке . Если он не пуст, то выделяет пустоту.
Если нет, поиск продолжается в списке . Если что-то есть, то пустота делится пополам, пустоты отправляется в список , а вторая часть пустоты предоставляется запросу.
Если список S пуст, то запрос неудовлетворен.
Плюсы:
Легко сопровождать списки.
Легко объединять соседей.
Если не найдена пустота нужного размера:
Отказать в запросе
Вытеснить какой-нибудь сегмент
Выполнить операцию уплотнения (перегруппировка пустот и их объединение в единое целое)
Целесообразность:
Сумма пустот больше размера запроса
Если ЦП не загружен работой
Пустоты должны быть относительно велики (определяет трудоемкость уплотнения)
Стратегии подкачки:
Стратегия подкачки по запросу (по прерыванию).
Опережающая подкачка – при известной связи между сегментами/страницами.
Экономия на обработке прерываний.
Издержки – можно подкачать лишнего.
Стратегии вытеснения:
Случайный выбор.
Часто вытесняются нужные объекты.
FIFO.
Часто вытесняются нужные объекты.
Вытесняется по давности использования (LRU – Least Recently Used).
Имеет трудоемкое сопровождение.
Стратегия очень близка к оптимальной в большинстве случаев.
Оптимальное вытеснение – нереализуема.
Должна вытеснять объект, к которому не будет обращений дольше всего.
Используется для сравнения других стратегий.
Предписанные пользователем приоритеты.
Приоритеты, задаваемые задачам системой на основе измерений.
Смешанные методы – основаны на здравом смысле.
Для вытеснения предлагается на выбор список возможностей, упорядоченных по степени желательности:
АО неактивной задаче, АО только для чтения.
АО неактивной задаче, АО только для записи.
АО управляемый программой, к которой не было обращений уже секунд.
АО задачи, ожидающий в/в.
АО любой другой задачи.
Управление внешней памятью (на магнитном диске).
Время доступа к конкретной записи складывается из:
Время поиска цилиндра (время позиционирования каретки с МГ)
Время поиска записи на дорожке
Время чтения записи наших данных
Планировщик:
Анализ позиционных связей различных запросов
Перестройка очереди таким образом, чтобы реализация запросов минимизировала перемещение магнитных головок.