TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

Что такое защищенный режим? 

             Процессор 80286 и более поздние процессоры поддерживают  два
        режима операций:  защищенный режим и реальный режим. Реальный ре-
        жим совместим с работой процессора 8086  и  позволяет  прикладной
        программе адресоваться к памяти объемом до одного мегабайта.  За-
        щищенный режим расширяет диапазон адресации до 16  мегабайт.  Ос-
        новное отличие  между реальным и защищенным режимом заключается в
        способе преобразования процессором логических адресов в  физичес-
        кие. Логические  адреса  - это адреса,  используемые в прикладной
        программе. Как в реальном, также и в защищенном режиме логический
        адрес  - это 32-разрядное значение,  состоящее из 16-битового се-
        лектора (адреса сегмента) и 16-битового смещения.  Физические ад-
        реса - это адреса, которые процессор использует для обмена данны-
        ми с компонентами системной памяти.  В реальном режиме физический
        адрес представляет собой 20-битовое значение,  а в защищенном ре-
        жиме - 24-битовое.
             Когда процессор обращается к памяти (для выборки  инструкции
        или записи переменной), он генерирует из логического адреса физи-
        ческий адрес. В реальном режиме генерация физического адреса сос-
        тоит из  сдвига  селектора (адреса сегмента) на 4 бита влево (это
        означает умножение на 16) и прибавления  смещения.  Полученный  в
        результате 20-разрядный  адрес  используется  затем для доступа к
        памяти.

                                    16Мб┌────────────────┐
                                        │                │
                          ┌────────┐    │                │
                          │Смещение├─┐  │                │
                          └────────┘ │  │                │
                                     │  ├────────────────┤┐
                                     └──┼─────>▒▒▒▒▒▒▒▒▒▒│├ сегмент 64К
                                     ┌─>├────────────────┤┘
                                     │  │                │
                                     │  │  Пространство  │
             ┌────────┐ ┌──────┐     │  │    адресов     │
             │Селектор├─┤ x 16 ├─────┘  │                │
             └────────┘ └──────┘        │                │
                                       0└────────────────┘


             Рис. 17.1 Генерация физического адреса в реальном режиме.


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

                                    16Мб┌────────────────┐
                                        │                │
                          ┌────────┐    │                │
                          │Смещение├─┐  │                │
                          └────────┘ │  │                │
                                     │  ├────────────────┤┐
                Таблица дескрипторов └──┼─────>▒▒▒▒▒▒▒▒▒▒│├ сегмент 64К
                          ┌──────┐   ┌─>├────────────────┤┘
                          ├──────┤   │  │                │
                          ├──────┤   │  │  Пространство  │
                          ├──────┤   │  │    адресов     │
                       ┌─>├──────┤───┘  │                │
                       │  ├──────┤      │                │
                       │  ├──────┤     0└────────────────┘
                       │  ├──────┤
                       │  ├──────┤
                       │  ├──────┤
                       │  ├──────┤
                       │  ├──────┤
                       │  ├──────┤
                       │  ├──────┤
                       │  ├──────┤
            ┌────────┐ │  ├──────┤
            │Селектор├─┘  └──────┘
            └────────┘

             Рис. 17.2 Генерация физического адреса в защищенном режиме.

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

             Записи предельного значения сегмента и полномочий доступа  в
        дескрипторе определяют  размер  и  тип  сегмента.  Сегменты могут
        иметь размер от 1 до 65536 байт и могут быть сегментами кода  или
        сегментами данных.  Сегменты кода могут содержать выполняемые ма-
        шинные инструкции и доступные только по  чтению  данные. Сегменты
        данных могут содержать данные,  доступные по чтению и записи. За-
        писывать данные в сегменты кода или выполнять инструкции  в  сег-
        ментах данных невозможно.  Любая попытка сделать это  или попытка
        доступа к данным вне границ  сегмента вызывает общий сбой по  на-
        рушению защиты  (сокращенно сбой GP).  Поэтому режим и называется
        защищенным.
             По данному адресу в реальном режиме прикладная программа мо-
        жет  определить физический адрес.  В защищенном режиме это обычно
        не так,  поскольку селекторная часть логического адреса  является
        индексом в таблице дескрипторов,  и сам селектор не имеет прямого
        отношения к вычислению физического адреса.  Это дает  то  преиму-
        щество,  что управление виртуальной памятью можно реализовать, не
        влияя на прикладную программу.  Например, путем простого обновле-
        ния поля базового адреса дескриптора сегмента,  операционная сис-
        тема может перемещать сегмент в физической памяти без влияния  на
        использующую  сегмент прикладную программу.  Прикладная программа
        ссылается только на селектор сегмента,  и на селектор  не  влияют
        изменения в дескрипторе.

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


Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz