русс | укр

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

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

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

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


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

Сегментация памяти в защищенном режиме. Разработка дескрипторов сегментов формирование линейной адреса при обращении к памяти

Сегмент характеризуется такими параметрами:

-размер;
-базовый адрес;
-права доступа к сегменту.
Эти параметры формируются в виде 8-байтовой структуры, называемой дескриптором сегмента.

Структура дескриптора сегмента:

7

6

5

4

3

2

1

0

Баз. адрес (31-24)

G

D/B

0

X

Граница (19-16)

Байт доступа

Базовый адрес (23-0)

Граница (15-0)

Граница сегмента = Размер сегмента-1.
Базовый адрес – это адрес, по которому сегмент находится в банке памяти.
X: бит программно доступен для пользователя.  
D/B (Default/Big): D=0 – 16-разрядные данные, D=1 – 32-разрядные данные;
B=0 – размер стека = 64 Кбайт, B=1 – размер стека = 4 Гбайт.
G (Granularity): G= 0 – размер сегмента выражен в байтах, G = 1 – в 4-Кбайтовых страницах.
Байты доступа:


Сегмента кода

Сегмента данных

Системного сегмента

7

6

5

4

3

2

1

0

P

DPL

S=1

E=1

C

R

A

7

6

5

4

3

2

1

0

P

DPL

S=1

E=0

ED

W

A

7

6

5

4

3

2

1

0

P

DPL

S=0

TYPE

P(Present) P=1 – сегмент в памяти, P=0 – сегмент на диске

P

P

DPL–уровень защищенности сегмента 0 – высший, 3 - низший

DPL

DPL

S(System) S=1–несистемный сегмент, S=0 – системный сегмент

S=1

S=0

E(Execute) E=1–сегмент кода,E=0- сегмент стека

E=0

TYPE=1100 – шлюз;
TYPE=1110 – обработчик прерывания;
TYPE=1111 – обработчик ловушки

С(Conform) – бит подчинения (используется для шлюзов)

ED(Expand Down) ED=0 – сегмент данных, ED=1 – сегмент стека

R(Read) R=1 – сегмент можно читать, R=0 – нельзя читать

W(Write) W=1 – писать можно, W=0 – писать нельзя

A(Access) устанавливается аппаратно при доступе к сегменту

A

 

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

t_descr = record
lim_l,          {граница 15-0}
base_l: word;       {база 15-0}
base_h,                {база 23-16}
access,                 {байт доступа}
lim_h,                  {граница 23-16}
base_hh: byte;     {база 31-24}
end;
gdt: array [0..n] of t_descr; {таблица GDT}

Схема формирования линейного адреса:


 

 

Просмотров: 6034

Вернуться в оглавление:Шпаргалки по компьютеру




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


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

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

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


 


Полезен материал? Поделись:

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

 
 

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