Материал: 6262

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

76

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

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

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

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

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

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

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

Замечание

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

77

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

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

отслеживание (учет) свободной и занятой памяти;

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

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

полное или частичное вытеснение кодов и данных процессов из ОЗУ на диск, когда размеры ОЗУ недостаточны для размещения всех процессов, а также возвращение этих процессов в ОЗУ;

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

дефрагментация памяти.

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

2.2 Программный и аппаратный способы адресации памяти

Нормальная работа компьютера обеспечивается двумя способами адресации памяти ЭВМ: программным и аппаратным.

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

Соответственно, в каждом отдельном процессе, минимально можно выделить:

управляющий блок процесса;

сегмент кода (программы);

сегмент данных;

стек;

«куча», если процесс использует динамическое выделение памяти.

Аппаратный способ адресации заложен сам процессор:

специализацией регистров процессора: сегментные, смещения и индексные;

методами адресации команд процессора;

шинами (каналами) процессора.

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

78

Рисунок 2.7 - Взаимодействие программного и аппаратного способов адресации процесса

Реализация такой схемы имеет недостатки, поскольку:

каждым, из выделенных блоков, необходимо управлять;

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

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

нарушения границ, выделенных областей.

Таким образом, эффективность использования процессора значительно снижается, по-причине использования сложной системы адресации памяти.

Чтобы устранить эти недостатки, как показанно на рисунке 2.8, во всех развитых архитектурах ЭВМ используются аппаратные средства виртуализации памя-ти

(MMU). Это освобождает процессор от указанной выше рутинной работы.

MMU Memory Managment Unit диспетчер памяти уже был рассмотрен ранее, при анализе прямого доступа к памяти внешних устройств.

Вего обязанности входит:

виртуализация адреса, при взаимодействии процессора с ОЗУ;

аппаратное обеспечение алгоритмов распределения блоков ОЗУ в различных режмах адресации.

79

Рисунок 1.8 - Виртуализация памяти с помощью MMU

2.3 Страничная и сегментная адресации памяти

Исторически, для управления памятью ОЗУ ЭВМ, в ОС стала разрабатываться

сегментная адресация.

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

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

управление свопингом и перемещение сегментов в физическом пространстве ОЗУ.

Задачи виртуализации памяти могут решаться как с привлечением, так и без привлечения специальных аппаратных средств (MMU).

Управление свопингом — управление перемещением сегментов программ из ОЗУ в специальные файлы или разделы свопинга, расположенные на внешних ЗУ, и обратно.

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

Общая схема сегментного способа адресации памяти показана на рисунке 2.9.

80

Рисунок 2.9 - Сергментная организация памяти

Замечание

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

при равных размерах сегментов, фрагментация была бы минимальна или ее удалось бы устранить;

чем меньше разделы сегментов, тем меньше становятся непроизводительные потери ОЗУ.

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

Основное достоинство страничной адресации ОЗУ - отсутствие фрагментации, что не требует затрат ресурса ЭВМ на ее устранение.

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

Замечание

В связи с малым размером страницы, обычно 4 Кбайт, увеличивается скорость пэйджинга: перемещения страницы на внешний носитель ЗУ и обратно. Пэйджинг (pagging) - свопинг (swapping) страниц.

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

Очевидно, что аппратные средства виртуализации (MMU) способны обеспечивать как pagging, так и swapping.

Источник: https://studfile.net/preview/16438530/