Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Выполнять запросы приложений на выделение им дополнительной памяти во
время выполнения. После того как приложение перестает нуждаться в Дополнительной памяти, оно может возвратить ее системе. Выделение памяти Случайной длины в случайные моменты времени из общего пула памяти Приводит к фрагментации и, вследствие этого, к неэффективному ее Использованию. Дефрагментация памяти тоже является функцией операционной Системы. Во время работы операционной системы ей часто приходится создавать Новые служебные информационные структуры, такие как описатели процессов и Потоков, различные таблицы распределения ресурсов, буферы, используемые Процессами для обмена данными, синхронизирующие объекты и т. п. Все эти Системные объекты требуют памяти»» В некоторых ОС заранее (во время Установки) резервируется некоторый фиксированный объем памяти для Системных нужд. В других же ОС используется более гибкий подход, при Котором память для системных целей выделяется динамически. В таком случае Разные подсистемы ОС при создании своих таблиц, объектов, структур и т. п. Обращаются к подсистеме управления памятью с запросами. Защита памяти — это еще одна важная задача операционной системы, которая Состоит в том, чтобы не позволить выполняемому процессу записывать или Читать данные из памяти, назначенной другому процессу. Эта функция, как Правило, реализуется программными модулями ОС в тесном взаимодействии с Аппаратными средствами. Типы адресов. Для идентификации переменных и команд на разных этапах Жизненного цикла программы используются символьные имена (метки), Виртуальные адреса и физические адреса. Символьные имена присваивает пользователь при написании программы на Алгоритмическом языке или ассемблере. Виртуальные адреса, называемые иногда математическими, или логическими Адресами, вырабатывает транслятор, переводящий программу на машинный язык. Поскольку во время трансляции в общем случае не известно, в какое место Оперативной памяти будет загружена программа, то транслятор присваивает Переменным и командам виртуальные (условные) адреса, обычно считая по Умолчанию, что начальным адресом программы будет нулевой адрес. Физические адреса соответствуют номерам ячеек оперативной памяти, где в Действительности расположены' или будут расположены переменные и команды. Совокупность виртуальных адресов процесса называется виртуальным адресным Пространством. Диапазон возможных адресов виртуального пространства у всех процессов является одним и тем же. Например, при использовании 32-разрядных Виртуальных адресов этот диапазон задается границами 0000000016и FFFFFFFF16. Тем не менее каждый процесс имеет собственное виртуальное адресное Пространство — транслятор присваивает виртуальные адреса переменным и Кодам каждой программе. Сегментное - страничное распределение. Данный метод представляет собой Комбинацию страничного и сегментного механизмов управления памятью и Направлен на реализацию достоинств обоих подходов. Виртуальная память делится на сегменты, а каждый сегмент - на страницы. Все современные ОС используют именно такой способ организации. Рассмотрим схему управления памятью, основанную на комбинировании Сегментного и страничного механизмов виртуальное пространство процесса Делится на сегменты, а каждый сегмент, в свою очередь, делится на Виртуальные страницы. Первое отличие состоит в том, что виртуальные Страницы нумеруются не в пределах всего адресного пространства процесса, а В пределах сегмента. Виртуальный адрес в этом случае выражается тройкой (номер сегмента, номер страницы, смещение в странице). Загрузка процесса выполняется операционной системой постранично, при Этом часть страниц размещается в оперативной памяти, а часть — на диске. Для ________83 каждого процесса создается собственная таблица сегментов, а для каждого сегмента — своя таблица страниц. Адрес таблицы сегментов Загружается в специальный регистр процессора, когда активизируется Соответствующий процесс. Рисунок 1 - Еще одна схема преобразования виртуального адреса в физический для Сегментно-страничной организации памяти Таблица страниц содержит дескрипторы страниц, содержимое которых Полностью аналогично содержимому ранее описанных дескрипторов страниц. А вот таблица сегментов состоит из дескрипторов сегментов, которые Вместо информации о расположении сегментов в виртуальном адресном Пространстве содержат описание расположения таблиц страниц в Физической памяти. На рисунке выше показана схема преобразования виртуального адреса в Физический для данного метода. По номеру сегмента, заданному в виртуальном адресе, из таблицы Сегментов извлекается физический адрес соответствующей таблицы Страниц. По номеру виртуальной страницы, заданному в виртуальном адресе, Из таблицы страниц извлекается дескриптор, в котором указан номер Физической страницы. К номеру физической страницы пристыковывается младшая часть Виртуального адреса — смещение. Виртуальное пространство процесса делится на сегменты, а каждый сегмент в Свою очередь делится на виртуальные страницы, которые нумеруются в пределах Сегмента. Оперативная память делится на физические страницы. Загрузка Процесса выполняется операционной системой постранично, при этом часть Страниц размещается в оперативной памяти, а часть на диске. Для каждого сегмента создается своя таблица страниц, структура которой полностью Совпадает со структурой таблицы страниц, используемой при страничном распределении. Для каждого процесса создается таблица сегментов, в которой Указываются адреса таблиц страниц для всех сегментов данного процесса. Адрес Таблицы сегментов загружается в специальный регистр процессора, когда Активизируется соответствующий процесс. Данный метод представляет собой комбинацию страничного и Сегментного механизмов управления памятью и направлен на реализацию Достоинств обоих подходов. Так же как и при сегментной организации памяти, виртуальное адресное Пространство процесса разделено на сегменты. Это позволяет определять Разные права доступа к разным частям кодов и данных программы. Перемещение данных между памятью и диском осуществляется не Сегментами, а страницами. Для этого каждый виртуальный сегмент и Физическая память делятся на страницы равного размера, что Позволяет более эффективно использовать память, сократив до минимума Фрагментацию. В большинстве современных реализаций сегментно-страничной организации Памяти в отличие от набора виртуальных диапазонов адресов при Сегментной организации памяти (рисунок 2, а) все виртуальные сегменты образуют одно непрерывное линейное виртуальное адресное пространство (рисунок 2, б). Координаты байта в виртуальном адресном пространстве при сегментно- Страничной организации можно задать двумя способами. Во-первых, Линейным виртуальным адресом, который равен сдвигу данного байта Относительно границы общего линейного виртуального пространства, во- Вторых, парой чисел, одно из которых является номером сегмента, а другое — смещением относительно начала сегмента. При этом в отличие от сегментной модели, для однозначного задания виртуального адреса вторым Способом необходимо каким-то образом указать также начальный Виртуальный адрес сегмента с данным номером. Системы виртуальной Памяти ОС с сегментно-страничной организацией используют второй способ, Так как он позволяет непосредственно определить принадлежность адреса Некоторому сегменту и проверить права доступа процесса к нему. Рисунок 2 - Два способа сегментации Для каждого процесса операционная система создает отдельную таблицу Сегментов, в которой содержатся описатели (дескрипторы) всех сегментов Процесса. Описание сегмента включает назначенные ему права доступа и Другие характеристики, подобные тем, которые содержатся в дескрипторах Популярное:
|
Последнее изменение этой страницы: 2016-05-28; Просмотров: 944; Нарушение авторского права страницы