Защищенный режим процессоров Intel


Мультизадачность


В процессоре i80386 получила дальнейшее развитие аппаратная поддержка мультизадачности, впервые введённая в процессоре i80286.

  • На рис. 22 представлен формат сегмента TSS для процессора i80386.
  • Рис. 22. Сегмент TSS процессора i80386.

    Из рисунка видно, что в TSS предусмотрены поля для хранения сегментных регистров GS, FS, DS, SS, CS, ES (процессор i80386 имеет два новых сегментных регистра - GS и FS). Имеется поле для хранения содержимого регистра LDTR, указывающего на локальную таблицу дескрипторов, распределённую данной задаче.

    Для хранения содержимого 32-разрядных регистров используются поля TSS, обозначенные на рисунке как EDI, ESI, EBP, ESP, EBX, EDX, ECX, EAX, EFLAGS, EIP.

    Поле CR3 хранит содержимое системного регистра CR3. Этот регистр является указателем на каталог таблиц страниц. Таким образом, каждая задача может иметь свой собственный каталог таблиц страниц, что позволяет выполнить изоляцию задач не только на уровне сегментов, но и на уровне страниц.

    TSS процессора i80386 содержит указатели на стеки для второго, первого и нулевого приоритетных колец. Это поля SS2:ESP2, SS1:ESP1, SS0:ESP0.

    Поле LINK используется для ссылки на TSS вызвавшей задачи при вложенном вызове задач, аналогично тому как это было в процессоре i80286.

    Бит T используется для отладки. Если он установлен в 1, при переключении на задачу возникает отладочное исключение, которое может быть использовано системным отладчиком.

    Есть ещё одно очень интересное новшество, введённое в процессор i80386 - битовая карта ввода/вывода. Что это такое?

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


    - Начало -  - Назад -  - Вперед -