русс | укр

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

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

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

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


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

Сегментация памяти


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


Рис. 6.9.

Порядок использования таблицы страниц

Рис. 6.8.

Адреса при страничной адресации

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

Процессы преобразования адресов и перемещения информации наиболее просто реализуются при страничной адресации памяти. Метод страничной адресации состоит в том, что виртуальная память (множество адресов) разделяется на страницы емкостью соседних адресов. Так, к странице с адресом 0 относятся адреса 0, 1, 2, ... , к странице с адресом и так далее. В результате адрес слова будет состоять из двух полей Р, указывающих адрес страницы, и А — адрес слова в странице Р (рис. 6.8, а).

 

 

1 m 1 m

 
 

 

 


1 k 1 k 1 k 1 k

 

 

a) Виртуальный адрес б) Физический адрес

 

 

Если физическую память разделить, а сегменты, состоящие из соседних ячеек, то физические адреса в пределах одной виртуальной страницы по структуре будут полностью совпадать с математическими адресами (рис. 6.8, б), где S - адрес сегмента, а А - адрес слова (ячейки) в сегменте S. Размер страниц составляет 512-1024 слова, но в некоторых случаях возникает необходимость в использовании страниц размером 32—128 слов.

В процессе решения задачи страницы перемещаются между ОЗУ и ВЗУ. Если вычислительный процесс распределяется на страницу Р, то она вызывается в ОЗУ. Когда надобность в информации, размещенной на странице Р, отпадает, то она удаляется из ОЗУ в виртуальную память, освобождая место для других страниц. В результате перемещения граница Р может быть помещена на любом сегменте S ОП.

Текущее состояние памяти ЭВМ характеризуется таблицей страниц (рис. 6.9). Отдельной странице виртуальной памяти Pi (i=1, 2, ..., Q-1) соответствует одна строка таблицы, в которой указываются параметры страницы Рi: Si — адрес сегмента ОЗУ, в котором размещается страница Рi, иначе говоря, физический адрес страницы Pi; di - признак доступности страницы: при di=1 страница Pi, хранится в ОЗУ и недоступна для центрального процессора.



Виртуальная Таблица Физическая

память страниц память

(номер страницы) (номер сегмента)

Si di

 

 

В таблице страниц также указываются параметры, определяющие страницу, которую надо удалить из ОЗУ (на рис 6.9 эти параметры не показаны) вследствие относительной низкой вероятности ее использования. Таблица страниц размещается в ОЗУ и в любое время доступна ЦП. Как видно из рис. 6.9, 2048 страниц виртуальной памяти могут размещается в 128 сегментах ОЗУ и на магнитных дисках НМД1 и НМД2 емкостью 960 страниц каждый.

Каждой странице Рi (i=0, 1, 2, . . ., 2047) виртуальной памяти соответствует свой сегмент, адрес которого определен в таблице страниц, и, следовательно, каждому слову присвоен свой физический адрес.

Операционная система (ОС) обеспечивает преобразование математических адресов в физические адреса.

 

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

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

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

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

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

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

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

 



<== предыдущая лекция | следующая лекция ==>
Организация виртуальной памяти | Системные и локальные шины


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


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

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

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


 


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

 
 

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

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