русс | укр

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

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

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

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


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

Сегментация с использованием страниц: IntelPentium


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


Сегментация с использованием страниц: MULTICS

Реализация сегментации

Если страницы имеют фиксированный размер, то сегменты нет.

У сегментов так же, как и у страниц, существует проблема фрагментации.

 

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

 

 

В одной из первых, где была применена страничная сегментация, была система MULTICS.

Каждая программа обеспечивалась до 2^18 сегментов (более 250 000), каждый из которых мог быть до 65 536 (36-разрядных) слов длиной.

Таблица сегментов - хранит дескриптор для каждого сегмента. У каждой программы своя таблица.

Т.к. записей в таблице более 250 000, она сама разбита на страницы.

Сама таблица является отдельным сегментом.

 

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

 

Нормальныйразмерстраницыравен 1024 словам. Если сегмент меньше 1024, то он либо не разбит на страницы, либо разбит на страницы по 64 слова.

 

 

Дескриптор сегмента

 

Когдапроисходитобращение к памяти, выполняетсяследующий алгоритм:

1. По номеру сегмента находится дескриптор сегмента.

2. Проверяется, находиться литаблицастраницы в памяти. Если в памяти, определяетсяеерасположение. Еслинет, вызываетсясегментноепрерывание.

3. Проверяется, находиться листраница в памяти. Если в памяти, определяетсяеерасположение в памяти. Еслинет в памяти, вызываетсястраничноепрерывание.

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

5. Происходитзаписьиличтение.

 

 

Преобразование адреса в системеMULTICS

 

Так как такой алгоритм будет работать достаточно медленно. Аппаратура системы MULTICS содержит высокоскоростной буфер быстрого преобразования адреса (TLB)размером в 16 слов. Адреса 16 наиболее часто использующихся страниц хранятся в буфере.



 

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

Основа виртуальной памяти системы Pentiumсостоит из двух таблиц:

· Локальная таблица дескрипторов LDT (LocalDescriptorTable) - есть у каждой программы, и описывает сегменты программы.

· Глобальная таблица дескрипторов GDT (GlobalDescriptorTable) - одна для всех программ, и описывает системные сегменты (включая саму ОС).

Каждый селектор (указывает на дескриптор) представляет собой 16-разрядный номер.

 

 

Селектор в системе Pentium

13 битов определяют номер записи в таблице дескрипторов, поэтому эти таблицы ограничены, каждая содержит 8К (2^13) сегментных дескрипторов.

1 бит указывает тип используемой таблицы дескрипторов LDT или GDT.

 

Уровнипривилегированности в системеPentium

Уровнипривилегированности запрещают выполняемому коду обратиться к более низкому уровню.

С учетом максимального размера сегмента - 4 Гбайта - каждая задача, при чисто сегментнойорганизациивиртуальнойпамяти,работает в виртуальномадресномпространстве в 64 Тбайта (4 Гбайта * 16К, где 16К=8К*2 т.к. LDT и GDT).

 

 

 

Дескриптор программного (не данных) сегмента в системе Pentium (всего 8 байт (64 бита)).

База (Base) - базовый адрес сегмента (32-бита), разделен на три части из-за совместимости с i286, в котором это поле имеет только 24 бита.

Размер (Limit) - размер сегмента (20 бит), разнесен на две части.

Если размер сегмента указан в страницах, он может достигать 2^32 байтов (2^20 * 4Кбайт (2^12) (размер страницы в Pentium)).

Алгоритм получение физического адреса:

1. Селектор загружается в регистр (для сегмента команд в CS, для сегмента данных в DS).

2. Определяется глобальный или локальный сегмент (LDT или GDT).

3. Дескриптор извлекается из LDT или GDT, и сохраняется в микропрограммных регистрах.

4. Если дескриптор в памяти и смещение не выходит за пределы сегмента, программа может продолжить работу, если нет, происходит прерывание.

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

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

 

 

Преобразованиепары (селектора, смещение) в физический адрес

 

При 32-разрядном (2^32=4Гбайт) адресе и 4Кбатной странице, сегмент можетсодержать 1 млн страниц (4Гбайт/4Кбайта). Поэтомуиспользуетсядвухуровневоеотображение (созданатаблица (страничный каталог) содержащая список из 1024 таблицстраниц), благодарячемуможноснизитьколичествозаписей в таблице страниц до 1024.

В этомслучае сегмент в 4 Мбайта (1024 записи по 4 Кбайтастраницы), будетиметьстраничный каталог только с однойзаписью (и 1024 в таблице страниц), вместо 1 млн в одной таблице.

 

 

Отображениелинейного адреса на физический адрес

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

 

 



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


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


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

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

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


 


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

 
 

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

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