October 17 2017 05:06:02
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
ПОДДЕРЖКА МНОГОЗАДАЧНОГО РЕЖИМА
ФОРМАТЫ ПРЕДСТАВЛЕНИЯ ДАННЫХ И ВЫПОЛНЕНИЕ ОПЕРАЦИЙ

По команде RET производится восстановление из стека старого содержимого регистров CS, EIP (IP) и SS, ESP (SP). Таким образом, одновременно с возвратом к исходной программе происходит и возвращение к старому стеку. Команда RET проверяет значение CPL и два младших разряда извлекаемого из стека старого содержимого CS, определяющие уровень привилегий программы, к которой осуществляется возврат. Команда выполняется только в том случае, когда значение этих битов больше или равно CPL, т. е. возврат осуществляет­ся к программе с таким же или меньшим уровнем привилегий.

Нарушение командами JMP, CALL, RET указанных правил обращения к сегментам программ вызывает исключение типа #GP («нарушение защиты»).

Чтобы избежать частых нарушений хода выполнения программы из-за несоблюдения правил доступа к сегментам, в набор команд процессора введены специальные команды, используемые для проверки различных условий доступа. Команда LAR осуществляет загрузку в регистр байта доступа сегмента, выбираемого с помощью селектора, который содержится в адресуемой ячейке памяти или регистре. После этой операции процессор может произвести побитный анализ содержимого байта доступа, определяя возможности обращения к данному сегменту. Команда LSL загружает в регистр значение границы сегмента, который выбирается таким же образом, как командой LAR. Используя полученное значение этой границы, процессор может организовать контроль формирования адреса, чтобы избежать прерывания программы при выходе за пределы адресуемого сегмента. Команды VERR, VERW проверяют возможности записи в сегмент данных и чтения из сегмента программ, устанавливаемые соответствующими битами дескрипторов. Если запись или чтение разрешены, то устанавливается значение признака ZF = 1 в регистре EFLAGS. Предварительный анализ значения этого при­знака позволяет избежать запрещенных видов обращения к данному сегменту, вызывающих прерывание текущей программы. Адресация необходимого сегмента при выполнении команд VERR, VERW производится таким же образом, как и командой LAR.

img031

Реализация ввода-вывода с помощью команд IN, OUT, INS, OUTS в защищенном режиме производится с учетом CPL выполняемой программы. Величина CPL сравнивается со значением поля IOPL в регистре EFLAG. Ввод/вывод производится только при выполнении условия CPL >= IOPL. Нарушение этого условия вызывает исключение типа #GP, если доступ к адресованному командой порту не разрешен специальной битовой картой ввода-вывода, задаваемой при решении отдельных задач.

2.7.4. ПОДДЕРЖКА МНОГОЗАДАЧНОГО РЕЖИМА

Многозадачностью называется такой способ организации работы системы, при котором в ее памяти одновременно содержатся программы и данные для выполнения нескольких процессов обработки информации (задач). При этом должна обеспечиваться взаимная защита программ и данных, относящихся к различным задачам, а также возможность перехода от выполнения одной задачи к другой (переключение задач). Процессоры семейства Р6 имеют эффективные средства поддержки многозадачного режима, реализующие защиту и быстрое переключение задач. В качестве таких средств используется специальная структура данных, организованная в виде сегмента, который называется сегментом состояния задачи TSS. Аппаратными средствами для поддержки многозадачности служит 16-разрядный регистр задачи TR, в который заносится селектор дескриптора TSS, и связанный с TR программно недоступный 64-разрядный регистр, в который из GDT загружается 8-байтовый дескриптор TSS.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.02 секунд 2,254,348 уникальных посетителей