Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Переключение задач при параллельном выполнении программ в режиме разделения времени



Переключение задач производится с использованием специальных сегментов состояния задач (TSS). Это системные сегменты, предназначенные для копирования основных программно-доступных регистров процессора, хранящих "контекст" программы. Иногда переключение задач называют сменой контекста. В многозадачном режиме работы в стадии выполнения могут находиться несколько задач. Для каждой из них создается сегмент состояния задачи – TSS. Выполнение этих задач может производиться одним процессором в режиме разделения времени. Основным назначением механизма переключения задач является организация очередных переходов между выполняемыми программами.

Переключение программ может производиться командами JMP и CALL типа FAR (межсегментные переходы), командами вызова прерываний, например, INT n, или командой IRET. Кроме этого, переключения задач могут инициироваться прерываниями и ловушками.

В защищенном режиме команды межсегментных переходов содержат полный указатель CS и IP (адрес команды в сегменте – offset). Указатель CS, в свою очередь, может указывать на:

· дескриптор сегмента,

· шлюз дескриптора сегмента,

· дескриптор TSS,

· дескриптор шлюза TSS.

Все зависит от выбора стратегии разработчиками ОС.

В первых двух случаях реализуется процедура передачи управления:

· прямой передачи управления (без изменения уровней привилегий), если селектор указывает на дескриптор сегмента,

· передачи управления с возможностью увеличения уровня привилегий, (по командам, предусматривающим возвращение, – например Call), если селектор указывает на шлюз дескриптора сегмента

В двух последних случаях реализуется процедура переключения задач:

· прямого переключения задач, если селектор указывает на дескриптор задачи (используется при переключениях задач на одном уровне привилегий),

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

При косвенном переключении задач производится дополнительное обращение к таблице дескрипторов GDT.. Обращение производится по значению селектора дескриптора целевого кодового сегмента, указанного в шлюзе.

Сегмент состояния задачи (TSS) является сегментом, но системным. Дескриптор TSS по структуре совпадает с дескриптором программных сегментов (см. рис. 3.8.), в поле атрибутов которых отмечено, что они системные.

 
 

Структура дескриптора шлюза TSSсовпадает со структурой дескриптора шлюза программных сегментов (см. рис.3.9). Отличие заключаются в содержимом поля атрибутов и в том, что не используется поле Offset(Смещение в сегменте).

Процедура переключения задач состоит из 3-х пересылок
(см. рис.3.10):

1. сохранение содержимого всех программно-доступных регистров процессора в сегменте TSS; базовый адрес сегмента TSS берется из системного регистра TR,

2. адрес сегмента TSS новой задачи по селектору из прямой команды перехода или по содержимому поля CS дескриптора шлюза задачи переписывается в системный регистр TR.

3. содержимое TSS новой задачи переписывается в регистры процессора, и процессор начинает выполнение программы-цели.

Длительность процедуры переключения задач – 200 тактов.

Длительность процедуры переключения задач – 200 тактов.

С точки зрения взаимодействия программ, переключение программ равнозначно завершению одной программы с сохранением всего контекста программы и запуску следующей программы. При переключении задач запоминается текущее значение указателя команд IP. Поэтому при ее повторном запуске задача запускается не с начальной точки, а продолжает выполнение с прерванной точки.

До аппаратной реализации этой процедуры, например в реальном режиме работы, переключение задач (в многозадачных режимах работы) производилось чисто программными способами, что уменьшало производительность процессора.





Дата публикования: 2014-11-03; Прочитано: 329 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...