Организация ввода-вывода. Часть 2. Драйверы для WINDOWS NT. Рощин А.В. - 13 стр.

UptoLike

Составители: 

13
Кроме того, в процессоре имеется 16-битный регистр задачи tr (Task
Register), который, как и ldtr содержит селектор, то есть, указатель на
дескриптор в таблице GDT. Этот дескриптор описывает текущий сегмент
состояния задачи TSS (Task State Segment). Такой сегмент создается для
каждой задачи в системе, имеет жестко регламентированную структуру и
содержит контекст (текущее состояние) задачи. Основное
назначение TSS
сохранять текущее состояние задачи в момент переключения на другую
задачу.
Программе, которая желает использовать данный участок памяти,
должен быть сообщен указатель на соответствующий дескриптор в одной
из таблиц дескрипторов GDT или LDT. Указатель на дескриптор сегмента в
одной из таблиц GDT или LDT, в зависимости от функционального
назначения
описываемого дескриптором участка памяти (сегмента),
помещается в один из шести сегментных регистров. Таким образом, в
защищенном режиме меняется роль сегментных регистров. Они теперь
содержат не адрес, а селектор или индекс в таблице дескрипторов
сегментов. Само же назначение сегментных регистров остается
неизменнымони по-прежнему указывают на сегменты команд, данных и
стека
, однако механизмы, используемые при этом, меняются.
Структура дескриптора сегмента показана на рисунке 1.5. Поля
дескриптора, указанные на рисунке 1.5, подробно описаны в таблице 1.2.
При взгляде на рисунок 1.5, может возникнуть ряд вопросов. Первый
из нихпочему поля, определяющие размер сегмента, не расположены
непрерывно, а разбиты на несколько непонятных фрагментов? Ответ
прост. Все определяется
необходимостью соблюдения совместимости с
младшими моделями процессоров.
Впервые защищенный режим появился в процессоре i286. Он имел
24-разрядную адресную шину (мог адресовать до 16 Мбайт оперативной
     Кроме того, в процессоре имеется 16-битный регистр задачи tr (Task
Register), который, как и ldtr содержит селектор, то есть, указатель на
дескриптор в таблице GDT. Этот дескриптор описывает текущий сегмент
состояния задачи TSS (Task State Segment). Такой сегмент создается для
каждой задачи в системе, имеет жестко регламентированную структуру и
содержит контекст (текущее состояние) задачи. Основное назначение TSS
– сохранять текущее состояние задачи в момент переключения на другую
задачу.
     Программе, которая желает использовать данный участок памяти,
должен быть сообщен указатель на соответствующий дескриптор в одной
из таблиц дескрипторов GDT или LDT. Указатель на дескриптор сегмента в
одной из таблиц GDT или LDT, в зависимости от функционального
назначения описываемого дескриптором участка памяти (сегмента),
помещается в один из шести сегментных регистров. Таким образом, в
защищенном режиме меняется роль сегментных регистров. Они теперь
содержат не адрес, а селектор или индекс в таблице дескрипторов
сегментов.   Само   же   назначение     сегментных   регистров   остается
неизменным – они по-прежнему указывают на сегменты команд, данных и
стека, однако механизмы, используемые при этом, меняются.
     Структура дескриптора сегмента показана на рисунке 1.5. Поля
дескриптора, указанные на рисунке 1.5, подробно описаны в таблице 1.2.
     При взгляде на рисунок 1.5, может возникнуть ряд вопросов. Первый
из них – почему поля, определяющие размер сегмента, не расположены
непрерывно, а разбиты на несколько непонятных фрагментов? Ответ
прост. Все определяется необходимостью соблюдения совместимости с
младшими моделями процессоров.
     Впервые защищенный режим появился в процессоре i286. Он имел
24-разрядную адресную шину (мог адресовать до 16 Мбайт оперативной



                                   13