Двоичная карта разрешения ввода/вывода

       Эта карта используется в контроле привилегий только для команд ввода/вывода (IN, INS, OUT, OUTS, CLI, SII).

Без карты команд ввод/вывод для программ разрешен, если:

CPL £ IOPL IOPL находится в EFLSGS.

       битовая карта сопоставляет каждому возможному порту ввода/вывода один бит.

порт 65535

 

           

 

если бит=0, то ввод/вывод в этот порт программе разрешен, иначе проверяется CPL £ IOPL.

Взаимодействие между задачами

       Основано на том, что дескрипторы GDT доступны всем задачам (видны), а LDT — только для определееных задач.

3 типа взаимодействия:

1.  — полное изолирование адресных пространств;

2.  — полное перекрытие адресных пространств;

3.  — частичное перекрытие адресных пространств;

1. Для каждой задачи создается свое LDT, а в GDT помещается только дескриптор LDT и TSS.

2.

a) существуют единые GDT;

b) все задачи разделяют одну и ту же LDT;

3. реализуется наличием псевдонимов одного сегмента в различных задачах.

                                                                                                                                                                                                                    

 

 

Особенность управления псевло?:

 — при изменении сегмента (увеличение, перемещение на диск [присутствие], частота использования) необходимо изменение всех псевло? дескриптора этого сегмента. (Необходим список псевло? для каждого сегмента (таблица), например, в сегменте TSS).


Организация прерываний и особых случаев

       8086

 

 

           

 

прерывания — по входу NMI, INTR, т. е. формируется аппаратно, или команда INT n.

Особые случаи — формируются, если команда не может быть выплнена (деление на ноль, недоступность сегмента, нарушение защиты).

В i286+ вместо векторов прерываний используется дескрипторная таблица. IDT

                       

 

 

       В начале дескриптора могут использоваться дескриптор шлюзов задачи, прерывания и ловушки.

       шлюз прерывания

                                  

 

 


       шлюз ловушки

 

 

При обработке ловушки в отличие от прерывания флаг IF несбрасывается (не измняется).

При использовании дескриптора прерываний, ловушка используется стек, в котором помещаются регистры EFLAGS, CS, EIP (возможно помещение туда SS, ESP, кода ошибки).






Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: