ия задач состоит из 3-х пересылок
(см. рис. 3. 10):
1. сохранение содержимого всех программно-доступных регистров процессора в сегменте TSS; базовый адрес сегмента TSS берется из системного регистра TR,
2. адрес сегмента TSS новой задачи по селектору из прямой команды перехода или по содержимому поля CS дескриптора шлюза задачи переписывается в системный регистр TR.
3. содержимое TSS новой задачи переписывается в регистры процессора, и процессор начинает выполнение программы - цели.
Длительность процедуры переключения задач – 200 тактов.
С точки зрения взаимодействия программ, переключение программ равнозначно завершению одной программы с сохранением всего контекста программы и запуску следующей программы. При переключении задач запоминается текущее значение указателя команд IP. Поэтому при ее повторном запуске задача запускается не с начальной точки, а продолжает выполнение с прерванной точки.
До аппаратной реализации этой процедуры, например в реальном режиме работы, переключение задач (в многозадачных режимах работы) производилось чисто программными способами, что уменьшало производительность процессора.
Обработка ловушек
Обработка ловушек– это обработка события, непосредственно связанная с выполнением текущей программы. Следовательно, обработчик прерывания должен попадать в контекст выполняемой программы. В общем случае, смена контекста здесь противопоказана. Но в некоторых случаях механизм переключения задач и при обработке ловушек может быть полезен.
Прерывания
Прерывания служат для обработки некоторого внешнего события, явно не связанного с прерываемой программой. Для этих случаев целесообразно использовать переключение задач. Выход из подпрограмм (обратное переключение) производится командой IRET.
Страницы: << < 20 | 21 | 22 | 23 | 24 > >>