КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Шлюз прерыванияШлюз прерывания отличается только полем типа = 1110. При возникновении прерывания, которому соответствует шлюз прерывания, микропроцессор выполняет те же действия, что и для шлюза ловушки, но с одним важным отличием: при передаче управления обработчику прерывания через шлюз прерывания, микропроцессор сбрасывает флаг прерывания в регистре eflags в 0, запрещая тем самым обработку аппаратных прерываний. Этот факт имеет важное значение для программирования обработчиков аппаратных и программных прерываний. Совет. Если у вас есть сомнение в том, какой из шлюзов - прерывания или ловушки - использовать — применяйте шлюз прерывания. Шлюз задачи Шлюз задачи отличается 1) поле типа = 1110 2) поле indicatorвместо селектора сегмента кода указывает на дескриптор сегмента состояния задачи (TSS). Осуществляется переход на новую задачу, которая будет осуществлять обработку прерывания. Задача является частью механизма многозадачности. Т.е. производится переключение задач. (Текущее состояние прерываемой задачи аппаратно сохраняется в ее собственномTSS.) Для каждой задачи определяется сегмент состояния задачи TSS (Task Segment Status) со строго определенной структурой. В этом сегменте есть поля для сохранения всех регистров общего назначения, некоторых системных регистров и другой информации. Всю совокупность этой информации называют контекстом задачи. Этот сегмент описывается, подобно другим сегментам, дескриптором в таблице GDT или LDT. Если с помощью некоторого селектора обратиться к такому дескриптору, то микропроцессор осуществит переключение на соответствующую задачу. Подобные переключения могут, в частности, осуществляться операционной системой, поддерживающей многозадачность, в соответствии с некоторой дисциплиной разделения времени между задачами. Переключение задач может производиться обычными командами межсегментной передачи управления либо по возникновению прерывания при переходе к обработчику прерывания через шлюз задачи.
РЕЗЮМЕ Шлюзы ловушки и прерывания с помощью полей indicator и offset определяют адрес, по которому находится точка входа в программу обработки прерывания. Шлюз задачи предназначен для реализации принципиально иного перехода к обработчику прерываний — с использованием механизма переключения задач.
Обратим внимание, разработчики современных ОС редко используют шлюз задачи, т.к. переключение на другую задачу требует существенно больших затрат времени, а полное сохранение всех рабочих регистров часто не требуется. Таким образом, используются чаще всего шлюзы прерываний.
Страничное преобразование
В разных режимах процессора различается число и ёмкость этих таблиц. Преобразование может завершиться неудачей, если очередная таблица не содержит валидных данных, или права доступа, хранящиеся в последней из них, запрещают доступ к странице; например, при записи в регионы, помеченные как «только для чтения», или попытке чтения памяти ядра из непривилегированного процесса. 20. Переключение задач в защищенном режиме работы, инструкции.
|