Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_СРС_ОС_2КСМ,_2зКСМ_НМКД_2016-17.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
222 Кб
Скачать
☆

2.5 Управление памятью

Оперативная память является важнейшим ресурсом вычислительной системы, требующим тщательного управления со стороны мультипрограммной операционной системы.

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

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

Функциями ОС по управлению памятью в мультипрограммной системе являются:

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

‒ выделение памяти процессам и освобождение памяти при завершении процессов;

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

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

‒ защита памяти процессов от взаимного вмешательства.

На разных этапах жизненного цикла программы, для представления переменных и кодов требуется три типа адресов:

‒ символьные (имена, используемые программистом);

‒ виртуальные (условные числа, вырабатываемые компилятором);

‒ физические (адреса фактического размещения в оперативной памяти).

Совокупность виртуальных адресов процесса называется виртуальным адресным пространством.

Диапазон возможных адресов виртуального пространства у всех процессов является одним и тем же.

Виртуальное адресное пространство может быть плоским (линейным) или структурированным.

Необходимо различать:

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

‒ назначенное (выделенное) процессу виртуальное адресное пространство, состоящее из набора виртуальных адресов, действительно нужных процессу для работы.

Виртуальное адресное пространство процесса делится на две непрерывные части:

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

‒ пользовательскую.

Наиболее эффективным методом управления памятью является использование виртуальной памяти.

Этот подход вытеснил в современных ОС методы распределения памяти фиксированными, динамическими или перемещаемыми разделами.

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

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

‒ страничная;

‒ сегментная;

‒ сегментно-страничная.

Страничная виртуальная память организует перемещение данных между памятью и диском страницами ‒ частями виртуального адресного пространства фиксированного и сравнительно небольшого размера:

‒ достоинства ‒ высокая скорость обмена, низкий уровень фрагментации;

‒ недостатки ‒ сложно организовать защиту данных, разделенных на части механически).

Сегментная виртуальная память предусматривает перемещение данных сегментами ‒ частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных:

‒ достоинства ‒ осмысленность сегментов упрощает их защиту;

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

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

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

Разделяемые сегменты применяют:

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

‒ в качестве средства обмена данными между процессами.

Кэширование данных является универсальным методом ускорения доступа к данным, основанным на комбинации двух типов памяти, отличающихся:

‒ временем доступа;

‒ объемом;

‒ стоимостью хранения данных.

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

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

Неотъемлемым свойством кэш-памяти является ее прозрачность для программ и пользователей.

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

1) случайное (элемент оперативной памяти, вместе со своим адресом, размещается в произвольном месте кэш-памяти);

2) детерминированное (элемент оперативной памяти всегда отображается на одно и то же место ‒ в строке, которая имеет свой номер и предназначена для хранения записи об одном элементе данных).