Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MDE_orgvm_v2.docx
Скачиваний:
5
Добавлен:
19.09.2019
Размер:
1.04 Mб
Скачать

29. Методы управления памятью

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

Все методы управления памятью могут быть разделены на два класса:

  • методы распределения ОП без использования внешней памяти (дискового пространства);

  • методы распределения памяти с использованием дискового пространства.

Первая группа включает методы распределения памяти фиксированными, динамическими и перемещаемыми разделами. Вторая – страничное, сегментное и странично-сегментное распределение памяти.

30.Организация виртуальной памяти.

Страничное распределение:

  • Виртуальное адресное пространство каждого процесса делится на части, одинакового, фиксированного размера (обычно размер кратен двойки: 512, 1024 и тд) - виртуальные страницы.

  • Вся ОП машины делится на части такого же размера – физические страницы.

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

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

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

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

Затем, при каждом обращении к памяти, происходит чтение из таблицы страниц виртуальной страницы. Если виртуальная страница выгружена на диск, то происходит прерывание, и на выполнение активизируется другой процесс из очереди, а в это время, параллельно, идет поиск искомой виртуальной страницы на диске. Как страница была найдена на диске, производится попытка загрузить ее в ОП. Если в ОП нет свободных мест, то решается, какая из страниц будет выгружена из ОП на диск.

Для решения данного вопроса есть несколько критериев:

  • Дольше всех не используется

  • Первая попавшаяся страница

  • По наименьшему кол-ву обращений за проследнее время

Если выталкиваемая страница была изменена (смотрим по таблице страниц), то ее новая версия должна быть перезаписана на диск. Если нет, то она может быть просто уничтожена, т.е. соответствующая физическая страница объявляется свободной.

Механизм преобразования виртуального адреса в физический при страничной организации памяти:

Сегментное распределение

Адресное пространство делится на сегменты.

При загрузке процессора, часть сегментов остаются в ОП, а часть – выгружаются на диск.

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

Функционирование аналогично схеме со страничной организацией.

Виртуальный адрес может быть представлен парой (g, s), где g – адрес сегмента, а s- смещение внутри сегмента. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов, по номеру g и смещения s.

Недостаток: фрагментация на уровне сегментов.

Странично-сегментное распределение

Данная организация является комбинацией станичного и сегментного распределения памяти, сочетающей их достоинства.

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

ОП делится на физические страницы.

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

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

Загрузка процесса производится постранично, причем часть страниц размещается в ОП, а часть на диске.

Виртуальный адрес при странично-сегментном распределении состоит из 3х частей (g, p, s), где g – номер сегмента, p – номер виртуальной страницы процесса, s – смещение в пределах виртуальной страницы.

При возникновении команды чтения (записи), сначала производится поиск по виртуальному адресу VAi, составленному из полей g и p, который передается в TLB (Translation Lookaside Buffer) в качестве тега и сравнивается с тегами всех ячеек TLB кеша.

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

Если совпадения не происходило, то трансляция адресов происходила через таблицу сегментов и страниц.

Эффективность использования TLB, определяется коэффициентом попадания.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]