Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Сегментная, страничная и сегментно-страничная организация памяти



1. Память и отображения, виртуальное адресное пространство

? Имена переменных и входных точек программных модулей составляют пространство символьных имен. Иногда это адресное пространство называют логическим

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

? Системное программное обеспечение должно связать каждое указанное пользователем символьное имя с физической ячейкой памяти, то есть осуществить отображение пространства имен на физическую память компьютера.

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

? Частные случаи отображения пространства символьных имен на физическую память:

? полная тождественность виртуального адресного пространства физической памяти (абсолютная двоичная программа).

? тождественность виртуального адресного пространства исходному логическому пространству имен.

? промежуточные варианты.

? Возможны три ситуаций:

? объем виртуального адресного пространства программы меньше объема физической памяти (сейчас почти не встречается);

? объем виртуального адресного пространства программы равен объему физической памяти (встречается очень часто, особенно характерна была для недорогих вычислительных комплексов);

? объем виртуального адресного пространства программы больше объема физической памяти (теперь это самая обычная ситуация).

2. Простое непрерывное распределение и распределение с перекрытием

? Простое непрерывное распределение — это самая простая схема, согласно которой вся память условно может быть разделена на три области:? область, занимаемая операционной системой;

? область, в которой размещается исполняемая задача;

? незанятая ничем (свободная) область памяти.

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

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

? Если нужно создать программу, логическое адресное пространство которой должно быть больше, чем свободная область памяти, или даже чем весь возможный объем оперативной памяти, то используется распределение с перекрытием — так называемые оверлейные структуры (от overlay — перекрытие, расположение поверх чего-то). Этот метод распределения предполагает, что вся программа может быть разбита на части — сегменты. Пока в оперативной памяти располагаются выполняющиеся сегменты, остальные находятся во внешней памяти.

? Система MS DOS поддерживает распределения памяти с перекрытием (оверлейные структуры).

? Основные компоненты MS DOS:

- подсистема BIOS (Base Input-Output System — базовая подсистема ввода-вывода);

- модуль расширения BIOS – файл IO.SYS (или _ВIO.СОМ);

- основной, или базовый, модуль обработки прерываний DOS – файл MSDOS.SYS;

- командный процессор (интерпретатор команд) — файл COMMAND.CQM;

- утилиты и драйверы, расширяющие возможности системы;

- программа загрузки MS DOS – загрузочная запись (Boot Record, BR).

? Вся память в соответствии с архитектурой IBM PC условно может быть разделена на следующие три части:

? в самых младших адресах памяти (первые 1024 ячейки) размещается таблица векторов прерывания;

? вторая часть памяти отводится для программных модулей самой системы MS DOS и для программ пользователя;

? третья часть адресного пространства отведена для постоянных запоминающих устройств и функционирования некоторых устройств ввода-вывода. Эта область памяти получила название UMA (Upper Memory Area — область памяти, адрес которой выше основной).

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

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

Разделы с фиксированными границами

? Разбиение всего объема оперативной памяти на несколько разделов может осуществляться единовременно или по мере необходимости оператором системы.? Первые мультипрограммные операционные системы строились по этой схеме. Иногда в некотором разделе размещалось по нескольку небольших программ, которые постоянно в нем находились. Такие программы назывались ОЗУ-резидентными.

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

? Недостатком рассматриваемого способа распределения памяти является фрагментация памяти

Разделы с подвижными границами

? Одной из первых операционных систем, в которой был реализован такой способ распределения памяти, была OS MVT

? Специальный планировщик (диспетчер памяти) ведёт список адресов свободной оперативной памяти. При появлении новой задачи он выделяет для нее раздел, объем которой равен необходимому, либо чуть больше, модифицирует список свободных областей памяти.

? Способы выделения памяти под новый раздел: • первый подходящий участок;

• самый подходящий участок;

• самый неподходящий участок.

? Недостаток метода – сильная фрагментация памяти. Можно организовать уплотнение памяти.

? Данный способ распределения памяти, тем не менее, применялся достаточно длительное время в нескольких операционных системах

4. Сегментная, страничная и сегментно-страничная организация памяти

? Первым среди разрывных методов распределения памяти был сегментный. Программа разбивается на логические элементы —сегменты, каждому сегменту выделяется физическая память.

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

? Виртуальный адрес для этого способа будет состоять из двух полей — номера сегмента и смещения относительно начала сегмента.

? Если сегмент задачи находится в оперативной памяти, то об этом делается пометка в дескрипторе. В этом случае в поле адреса записывается адрес физической памяти, с которого сегмент начинается, а в поле длины сегмента (limit) указывается количество адресуемых ячеек памяти.

? Также в дескрипторе сегмента, как правило, содержатся данные о типе сегмента, правах доступа к нему, отметка об обращениях к данному сегменту.

? При передаче управления следующей задаче операционная система должна занести в соответствующий регистр адрес таблицы дескрипторов сегментов этой задачи.

? В оперативной памяти размещают не все сегменты задачи, а только задействованные в данный момент.

? Перемещение сегментов из оперативной памяти на жесткий диск и обратно часто называют свопингом сегментов.

Дисциплины замещения сегмента:

• правило FIFO (First In First Out — первый пришедший первым и выбывает); • правило LRU (Least Recently Used — дольше других неиспользуемый);

• правило LFU (Least Frequently Used — реже других используемый);

• случайный (random) выбор сегмента.

Преимущества метода:

1) можно размещать программу в памяти не целиком, а «по мере необходимости»;

2) некоторые программные модули могут быть разделяемыми.

Недостатки:

1) для доступа к искомой ячейке памяти приходится тратить много времени;

2) фрагментация;

3) много памяти и процессорного времени теряется на размещение и обработку дескрипторных таблиц.

Пример использования сегментного способа – операционная система OS/2 первого поколения

Страничный способ

? Оперативная память разбивается на физические страницы, а программа — на виртуальные страницы (размер их совпадает). Часть виртуальных страниц задачи размещается в оперативной памяти, а часть — во внешней. Обычно место во внешней памяти, в качестве которой в абсолютном большинстве случаев выступают накопители на магнитных дисках называют файлом подкачки, или страничным файлом (paging file). Иногда этот файл называют swap-файлом.

? Не поместившиеся страницы размещаются во внешней памяти, которая в данном случае служит расширением оперативной.

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

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

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

? Если же бит присутствия равен нулю, то в дескрипторе мы будем иметь адрес виртуальной страницы, расположенной во внешней памяти.

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

? Пробуксовка — это ситуация, при которой загрузка нужной страницы вызывает перемещение во внешнюю память той страницы, с которой мы работаем.

? Рабочее множество – это множество «активных» страниц задачи (страниц, к которым было обращение за определенный интервал времени), которые не подлежат выгрузке.

? Достоинство страничного способа – минимальная фрагментация. Недостатки:

1) страничная трансляция виртуальной памяти требует существенных накладных расходов;

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

Сегментно-страничный способ? Виртуальное пространство задачи делится на сегменты, а каждый сегмент – на виртуальные страницы, которые нумеруются в пределах сегмента. Оперативная память делится на физические страницы.

? Загрузка задачи выполняется операционной системой постранично, при этом часть страниц размещается в оперативной памяти, а часть – на диске.

? Для каждого сегмента создается своя таблица страниц. Для каждой задачи создается таблица сегментов.

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

? требует больших затрат, используется редко, причем в дорогих мощных вычислительных системах.





Дата публикования: 2014-12-08; Прочитано: 1563 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...