Встроенные средства защиты. Принципы модульности и перемещаемости. Проверка привилегированности сегмента, страница 19

                                                  SS                            38

                                                  DS                            40

                                                LDTR                          42

 


дополнительная               44

информация для операционной системы

Рис. Содержимое 16-разрядного сегмента TSS процессора 80286

Сегменты TSS 32-разрядных процессоров 80х86 имеют структуру, подобную структуре сегмента TSS процессора 80286, но разрядность всех сохраняемых регистров составляет 32 бита. Значительная часть сегмента TSS отведена для хранения внутренних 32-разрядных регистров процессора. Обязательная часть TSS объемом 104 байта содержит всю информацию, необходимую процессору для возобновления решения задачи, определяемой ее TSS. Новыми строками сегмента 32-битного TSS являются:

- 16-битные поля FS (адрес 88) и GS (адрес 92) содержат значения селекторов, размещаемых в одноименных сегментных регистрах;

-  32-битное поле СR3 (адрес 1Сh), используемое для запоминания базового адреса каталога страниц задачи; благодаря наличию этого поля при переключении задач можно применять механизм страничного преобразования для изолирования задач;

- 16-битное поле LDTR (адрес 60h), предназначенное для запоминания селектора дескриптора  с базовым адресом локальной дескрипторной таблицы LDT. При каждом переключении задачи процессор может перейти к другой локальной дескрипторной таблице, благодаря чему каждой задаче можно назначить свое отображение логических адресов в физические. Это дополнительное средство защиты обеспечивает изолирование отдельных задач и позволяет предотвращать их взаимодействие друг с другом;

-  16-битное поле базы двоичной карты разрешения ввода-вывода БКВВ (адрес 66h) содержит 16-битовое смещение в сегменте TSS, с которого начинается сама двоичная карта разрешения ввода-вывода. Если это поле содержит “0”, двоичная карта разрешения ввода-вывода отсутствует;

- бит ловушки T (Trap) (адреc 64h) применяется для отладки. При переключении на задачу с установленным битом Т генерируется особый случай отладки (прерывание 11).

31                    15                 0   

 


                              Системно-зависимая часть

                                                                                  68h

                               Базовый адрес

БКВВ                       0            Т     64h

        0                   LDTR            60h

        0                     GS              5Ch

        0                     FS              58h

0                     DS              54h

        0                     SS              50h

        0                     CS              4Ch

        0                     ES              48h

                  EDI                         44h

                  ESI                          40h

                  EBP                         3Ch

                  EBX                        38h 

                  ESP                         34h

                  EDX                        30h

                  ECX                        2Ch

                  EAX                        28h

              EFLAGS                      24h   

                  EIP                          20h

                   CR3                        1Ch 

        0                     SS2            18h

                   ESP2                      14h

        0                     SS1            10h

                   ESP1                      0Ch

        0                     SS0            08h

                   ESP0                      04h

        0            Обратная связь   00h

Рис. Содержимое 32-разрядного сегмента TSS процессора х86