русс | укр

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

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

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

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


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

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


Дата добавления: 2014-11-28; просмотров: 1919; Нарушение авторских прав


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

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


98_____________________ Глава 3. Управление памятью в операционных системах

Рис. 3.6. Сегментно-страничный способ организации виртуальной памяти

Напомним, что принцип действия ассоциативного запоминающего устройства предполагает, что каждой ячейке памяти такого устройства ставится в соответ-


Контрольные вопросы и задачи__________________________________________ 99

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



Оценим достоинства сегментно-страничного способа. Разбиение программы на сегменты позволяет размещать сегменты в памяти целиком. Сегменты разбиты на страницы, все страницы сегмента загружаются в память. Это позволяет сократить число обращений к отсутствующим страницам, поскольку вероятность выхода за пределы сегмента меньше вероятности выхода за пределы страницы. Страницы исполняемого сегмента находятся в памяти, но при этом они могут находиться не рядом друг с другом, а «россыпью», поскольку диспетчер памяти манипулирует страницами. Наличие сегментов облегчает разделение программных модулей меж­ду параллельными процессами. Возможна и динамическая компоновка задачи. А выделение памяти страницами позволяет минимизировать фрагментацию. Однако поскольку этот способ распределения памяти требует очень значитель­ных затрат вычислительных ресурсов и его не так просто реализовать, использует­ся он редко, причем в дорогих мощных вычислительных системах. Возможность реализовать сегментно-страничное распределение памяти заложена и в семейство микропроцессоров i80x86, однако вследствие слабой аппаратной поддержки, труд­ностей при создании систем программирования и операционной системы практи­чески в персональных компьютерах эта возможность не используется.

Контрольные вопросы и задачи

1. Что такое «виртуальный адрес», «виртуальное адресное пространство»? Чем
(в общем случае) определяется максимально возможный объем виртуального
адресного пространства программы?

2. Имеются ли виртуальные адреса в программах, написанных для работы в среде
DOS? Приведите примеры абсолютной двоичной программы для таких опера­
ционных систем, как MS DOS и Windows NT/2000/XP.

3. Изложите способ распределения памяти в MS DOS.

4. Что дает использование оверлеев при разработке DOS-приложений?

5. Объясните и сравните алгоритмы «первый подходящий», «самый подходящий»
и «самый неподходящий», используемые при поиске и выделении фрагмента
памяти.


100____________________ Глава 3. Управление памятью в операционных системах

6. Что такое «фрагментация памяти»? Какой метод распределения памяти по­
зволяет добиться минимальной фрагментации и почему?

7. Что такое «уплотнение памяти»? Когда оно применяется?

8. Объясните сегментный способ организации виртуальной памяти. Что пред­
ставляет собой (в общем случае) дескриптор сегмента?

9. Что представляет собой динамическое присоединение программ? Что оно дает?

 

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

11. Какие дисциплины применяются для решения задачи замещения страниц?
Какие из них являются наиболее эффективными и как они реализуются?

12. Что такое «рабочее множество»? Что позволяет разрешить реализация этого
понятия?

13. В каких случаях возникает «пробуксовка»? Почему системы Windows NT/
2000/ХР требуют для своей нормальной работы существенно большего объ­
ема оперативной памяти?




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


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


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

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

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


 


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

 
 

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

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