Задача- программа выполняемая в данный момент или ожидающая выполнения
Существует 2 типа задачно ориентированных дескрипторов.
1. Дескриптор сегмента выполняемой задачи
2. Шлюз задачи
При переключении задач сохраняется состояние процессора, все сегменты помещаются в память- сегмент выполнения задач.
Регистр и структуры данных поддерживающие многозадачность:
q дескриптор состояния задачи
q регистр задачи
q дескриптор шлюза задачи
q сегмент состояния задачи
-переключение задачи выполняется вследствие прерывания или исключения
-каждая задача может иметь свою локальную таблицу дескрипторов хранится в
В TSS хранятся: сегментные регистры, регстр флагов, указатель команд ,селектор для TSS предыдущей задачи
Размер TSS динамический не меньше чем 67 h
Дескриптор для текущей задачи может располагаться в глобальной таблице.
Переключение задач.
Способы:
1. Текущая задача выполняет команду JMP или CALL для дескриптора сегмента.
2. Текущая задача выполняет команду JMP или CALL для шлюза задач
3. Прерывание или исключение индексирует шлюз задачи в таблице дескрипторов прерываний.
4. Текущая задача выполняет переключение на другую задачу.
Механизм переключения
1. Проверка того, что текущая задаче разрешено выполнение переключения на др задачу
2. Проверка, что дескриптор TSS помечены как присутствующий и имеет допустимую границу.
3. Сохранение состояния текущей задачи
4. Загрузка в регистр TR индекса для дескритпора новой задачи , а также установка бита занятости
5. Загрузка состояния новой задачи и ее TSS и продолжение выполнения.
Компановка задач
Используется для возврата выполнения на текущую задачу. При выполнении новой задачи устанавливает флаг NT и в сегмент TSS новой задачи записывает индекс пред задачи.
Бит занятости В говорит о том находится ли данная задача на исполнении либо в очереди на исплнениею При загрузке задчи процесор проверяет бит В , если =1 то процессор генерирует ошибку , запрещая ее повторное выполенние.
