русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Управление памятью при сегментно-страничном распределение


Дата добавления: 2013-12-23; просмотров: 1869; Нарушение авторских прав


Метод представляет собой комбинацию страничного и сегментного механизмов управления памятью и направлен на реализацию достоинств обоих подходов. Преимущества страничного распределения:

- постоянный размер страницы

- отсутствие необходимости хранения целого сегмента в памяти, если используется только его часть(страничное распределение);

Преимущества сегментного распределения:

- облегчение программирования,

- модульность,

- возможность защиты совместного доступа (сегментное распределение).

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

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

 

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

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



Рассмотрим одну из возможных реализаций сегментно-страничного управления памятью.

В таблице сегментов каждого процесса, в которой содержатся дескрипторы всех сегментов процесса. Описание сегмента включает назначенные ему права доступа и другие характеристики, подобные тем, которые содержаться в дескрипторах сегментов при сегментной организации памяти. Однако имеется и принципиальное отличие. В поле базового адреса указывается не начальный физический адрес сегмента, отведенный ему в результате загрузки в оперативную память, а начальный линейный логический адрес сегмента в пространстве логических адресов (на рис. Базовые физические адреса обозначены S1, S2, S3, а базовые виртуальные адреса – f1,f2,f3).

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

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

Базовые адреса сегментов и страниц процесса являются частью его

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

Преобразование виртуального адреса в физический происходит в два этапа.

 

 

 

 

 
 

 

 


Схема преобразования логического адреса в линейный логический адрес при сегментно-страничной организации памяти

 

На первом этапе работает механизм сегментации. Исходный виртуальный адрес, заданный в виде пары (Nвсг, Oвсг), где Nвсг – номер сегмента, Oвсг – смещение, преобразуется в линейный виртуальный адрес. Для этого:

1) на основании базового адреса таблицы сегментов (Aнтсг) и номера сегмента (Nвсг) вычисляется адрес дескриптора сегмента (Aдсг). Анализируются поля дескриптора и проверяется возможность выполнения заданной операции. Проверяется, находится ли таблица страниц сегмента в памяти. Ели да, то определяется ее расположение. Если нет, вызывается сегнментное прерывание;

2) по адресу дескриптора сегмента из таблицы сегментов определяется базовый логический адрес данного сегмента Aбв;

3) линейный логический адрес вычисляется как сумма базового логического адреса, извлеченного из дескриптора, и смещения в сегменте, заданного в исходном логическом адресе: Aлв= Aбв + Oвсг.

В результате преобразования линейный логический адрес представляется в том виде, в котором он используется при страничной организации памяти, а именно в виде пары (Nвс, Oвс), где Nвс равно старшим разрядам, Oвс - младшим разрядам.

На втором этапе работает страничный механизм. Полученный линейный логический адрес преобразуется в искомый физический адрес. Это преобразование адреса происходит так же, как при страничной организации. В начале изучается запись в таблице страниц для запрашиваемой виртуальной страницы. Если страница не находится в памяти, происходит страничное прерывание. Если она в памяти, из записи таблицы страниц извлекается адрес начала страницы в оперативной памяти. Т.е. старшие разряды ЛАП, содержащие номер виртуальной страницы, заменяются номером физической страницы(NБФС), взятым из таблицы страниц, а младшие разряды логического адреса, содержащие смещение, остаются без изменения.

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

 

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


Зависимость загрузки процессора от числа задач
и интенсивности ввода-вывода

Из рисунка видно, что для загрузки процессора на 90% достаточно всего трех счетных задач. Однако для того, чтобы обеспечить такую же загрузку интерактивными задачами, выполняющими интенсивный ввод-вывод, потребуются десятки таких задач. Необходимым условием для выполнения задачи является загрузка ее в оперативную память, объем которой ограничен. В этих условиях был предложен метод организации вычислительного процесса, называемый свопингом. В соответствии с этим методом некоторые процессы (обычно находящиеся в состоянии ожидания) временно выгружаются на диск. Планировщик операционной системы не исключает их из своего рассмотрения, и при наступлении условий активизации некоторого процесса, находящегося в области свопинга на диске, этот процесс перемещается в оперативную память. Если свободного места в оперативной памяти не хватает, то выгружается другой процесс.

 

 



<== предыдущая лекция | следующая лекция ==>
Управление памятью при сегментном распределение | Назначение и создание командных файлов(КФ)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.