Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы. Часть 2.pdf
Скачиваний:
10
Добавлен:
05.02.2023
Размер:
6.54 Mб
Скачать

70

2 Тема 8. Подсистема управления памятью

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

В общем виде, всю память любой ЭВМ, обобщенно, можно представить в виде, показанном на рисунке 2.1, где приведены скоростные характеристики и ее взаимодействие с процессором компьютера.

Рисунок 2.1 - Обобщенный вид памяти ЭВМ

Замечание

Характеристики, приведенные на рисунке 2.1, соответствуют определенному историческому периоду и уровню технологий, доступных на этот период.

Тем не менее, легко заметить, что разные виды памяти, расположенные с лева на право, обладают следующими свойствами:

уменьшается скорость обмена данными;

увеличивается доступная емкость памяти;

уменьшается стоимость памяти, на каждый байт записанной информации.

Очевидно, что ЭВМ управляет всеми видами памяти, хотя подходы к управлению ими — различны.

В данной теме мы будем рассматривать основную память (ОП), поскольку она занимает центральное место в ЭВМ и выполняет важные функции, влияющие на архитектуру ядра ОС:

71

ОП обеспечивает процессор командами;

ОП обеспечивает процессор входными данными;

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

Изучение конструктивных особенностей основной памяти не входит в курс нашего обучения, но студент должен четко представлять, что:

ОЗУ — оперативное запоминающее устройство, позволяющее изменять данные, записанные в него;

ПЗУ — постоянное запоминающее устройство, в котором данные оперативно изменяться не могут.

Известны две архитектурные особенности ЭВМ, связанные по способу использования памяти:

Гарвардская архитектура, разработанная Говардом Эйкеном в конце 1930-х годов в Гарвардском университете;

архитектура фон Неймана, названная по имени автора идеи и разработанная им в 1944 году.

Отличительными признаками Гарвардской архитектуры являются:

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

каналы инструкций и данных так же физически разделены.

Замечание

В Гарвардской архитектуре, процессор может одновременно читать команды и входные данные, что увеличивает скорость работы ЭВМ.

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

Отличительные признаки архитектуры фон Неймана показаны на рисунке 2.2.

Кним относятся:

принцип однородности памяти — команды и данные хранятся в одной и той же памяти и внешне неразличимы;

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

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

принцип двоичного кодирования — команды и данные имеют свой двоичный тип команд и формате команды можно выделить два поля: поле кода операции и поле адресов.

72

Рисунок 2.2 — Архитектура машины фон Неймана

Замечание

Архитектура фон Неймана имеет более простую физическую реализацию как процессора, так и ЭВМ в целом, что и обеспечило ей широкое распространение, но содержит в себе все проблемы, связанные с общей шиной и общей основной памятью.

Изучая дисциплину «Операционные системы», мы изучаем ОС ЭВМ с архитектурой фон Неймана. Соответственно, основные проблемы, которые порождает такая архитектура, должны быть изучены и хорошо пониматься студентом.

Сточки зрения применения ЭВМ в целом, можно выделить две проблемы:

прикладное использование процессом памяти ЭВМ, необходимое для обеспечения обработки данных;

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

Подходы к решению этих проблем опираются на реализацию:

способов управления ОЗУ ЭВМ;

способов адресации основной памяти ЭВМ. Изучению этих способов и посвящен даный раздел темы.

73

2.1Классификация способов управления ОЗУ

Впервых вариантах компьютеров, ОС как таковые — отсутствовали:

программа пользователя загружалась в ОЗУ с адреса, который указывал оператор ЭВМ;

после загрузки программы, оператор указывал на пульте ЭВМ стартовый адрес программы и нажимал кнопку «Пуск»;

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

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

Со временем, появление первых супервизорных систем, а затем — и первых ОС, управление памятью ЭВМ стало актуальной задачей.

С появлением и совершенствованием первых ОС, которые также, как и прикладное ПО, являются программным обеспечением, стали применять три способа загрузки, которые показаны на рисунке 2.3.

Рисунок 2.3 - Три способа загрузки ОС и программы пользователя

Развите этих способов загрузки ПО показано слева на право:

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

второй способ стал применяться в некоторых «карманных» компьютерах и встроенных системах, которые обладают малыми ресурсами и, как правило, разными конструктивными особенностями; здесь ОС пишется в ПЗУ, которое соответствует верхним адресам памяти, оставляя ОЗУ полностью для ПО пользователей;

74

третий способ соответствует большинству современных систем, подобных IBM PC; в ПЗУ записывается ПО BIOS, которое работает только при включении питания компьютера; ПО BIOS находит и загружает в младшие адреса ОЗУ ПО ОС; программам пользователей предоставляется оставшееся ОЗУ до 640 Кбайт, в младших адресах, и вся оставшаяся память свыше первого Мбайт; память ОЗУ между 640 Кб и 1 Мб (скрытая область) распределяется между ПО BIOS и памятью прямого доступа для внешних устройств.

Для компьютера, память (ОЗУ) всегда была и остается дефицитом:

всегда имеются программы, которым, по тем или иным причинам, недостаточно выделенного объема ОЗУ ЭВМ;

проблемы реализации языков программирования требуют решать многие воп-

росы, связанные с адресацией памяти и ее распределением.

Для решения этих и многих других вопросов было введено понятие виртуальной памяти.

Виртуальная память, идея которой наглядно показана на рисунке 2.4, призвана

разрешить противоречие в адресации команд и данных, связанных с потребностями прикладного ПО и ресурсами ОЗУ, которые имеет конкретная ЭВМ.

Рисунок 2.4 - Типы адресов оперативной (основной) памяти

Идея состоит в использовании таблицы виртуальных адресов, которая указывает адресам всех команд и данных, выставленных компилятором, соответствие физических адресов ОЗУ.

Реализация такого соответствия может выполняться:

• специальным загрузчиком (статически);

75

• или специальными аппаратными средствами (динамически).

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

Рисунок 2.5 - Классификация способов распределения памяти

Здесь можно выделить две большие группы подходов:

методы, не использующие внешнюю память, обычно, накопители на жестких дисках;

методы, использующие внешнюю память, которая теоретически продолжает (расширяет, увеличивает) ОЗУ ЭВМ.

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

Методы, использующие внешнюю память, предполагают, что ОЗУ расширя-ется за счет памяти медленных внешних устройств и становится возможным одновременное выполнение необходимого числа «параллельно» работающих процессов.

76

Здесь, в большинстве случаев, задачи распределения памяти ставятся как ограничения на скорость выполнения отдельных процессов или эффективность использования ОЗУ ЭВМ по управлению самим процессом распределения памяти ЭВМ.

В любом из указанных случаев, ОЗУ расходуется не идеально, а эффективность используемых идей сильно зависит как от величины соотношения объем ОЗУ/ размер процессов, так и от аппаратной реализации поддержки указанных подходов.

Основными причинами неэффективности использования ОЗУ являются:

сильная фрагментация памяти как во время загрузки, так и во время завершения процессов;

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

Чтобы показать это наглядно, рассмотрим рисунок 2.6, на котором, слева на право, показано развитие фрагментации, на примере работы некоторой абстрактной ЭВМ.

Рисунок 2.6 - Варианты способов использования памяти

Замечание

Фрагментация вызывается не только из-за различных размеров запускаемых процессов, но и, по-причине, дополнительных требований ряда процессов к динамическому выделению дополнительной памяти ОЗУ.