Physics Faculty, Electronic Devices & Systems, 7th semester,2012
Dr. MokhovikovПереключение задач. Страничное управление памятью.
Lection №11
Переключение задач. Страничное управление памятью.
Lection №11
Резюме к лекции и список используемой литературы
Механизмы реализации мультизадачности :
● общие понятия;
● описание сегмента состояния задачи;
● обращения процессора к памяти .
Страничное управление памятью:
● понятия свопинга;
● базовый механизм страничного управления.
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Переключение задач
осуществляется
Программно
(командами CALL или JMP)
по прерываниям (например, от таймера)
Каждой задаче отводится определенный квант времени, после чего управление передается следующей задаче (и так циклически), в результате чего возникает иллюзия того, что все задачи выполняются враз.
http://x86.migera.ru/text/glava_5.html
команда JMP или CALL может передать управление либо дескриптору TSS, либо шлюзу задачи.
JMP dword ptr adr_sel_TSS(/adr_task_gate)
CALL dword ptr adr_sel_TSS(/adr_task_gate)
Задачей может быть как целая программа, так и ее часть (например, некоторая процедура), или программа обработки прерывания.
При переключении на выполнение новой задачи процессор сохраняет состояние текущей, с тем, что бы потом возобновить ее выполнение.
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Поддержка многозадачности обеспечивается за счет следующих аппаратно поддерживаемых структур и элементов:
Сегмент состояния задачи (TSS)
Дескриптор сегмента состояния задачи
Регистр задачи (TR)
Дескриптор шлюза задачи.
Для сохранения состояния задачи определена такая структура, как сегмент состояния задачи
(TSS - Task State Segment),
может располагаться как в отдельном сегменте данных, так и внутри сегмента данных задачи
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Селектор TSS текущей задачи хранится в регистре TR.
Регистр TR имеет "видимую" часть (т.е. часть, которую может считывать и изменять
программное обеспечение) и "невидимую" часть (т.е. часть, обслуживаемую процессором и недоступную программному обеспечению).
. Селектор, находящийся в видимой части, индексирует дескриптор TSS в GDT,
давайте рассмотрим как это происходит
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
RPL в данном селекторе не используется.
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Если бит TI в селекторе сегмента = 1, то происходит выборка сегмента из локальной дескрипторной таблицы.
В этом случае регистр LDTR должен содержать селектор этой таблицы (индекс) – локальная дескрипторная таблица описывается дескриптором глобальной таблицы.
Сам же селектор (в котором TI=1) определяет дескриптор сегмента памяти, описанного в локальной дескрипторной таблице.
В регистре LDTR бит TI всегда нулевой – т.к. дескриптор-описатель локальной таблицы может находиться только в GDT.
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Динамические поля, обновляемые
Процессором при каждом
переключении задачи.
В число этих полей входят:
● Регистры общего назначения
(EAX, ECX, EDX, EBX, ESP, EBP, ESI и EDI).
● Сегментные регистры
(ES, CS, SS, DS, FS и GS).
● Регистр флагов (EFLAGS).
● Указатель команд (EIP).
● Селектор для TSS
предыдущей задачи
(обновляется только когда ожидается возврат).
2. Статические поля, которые процессор
считывает, но не изменяет.
Эти поля устанавливаются при создании задачи:
● Селектор для LDT задачи.
● Логический адрес для стеков
привилегированных уровней 0,1,2.
● Бит T (бит отладочной ловушки), который,
будучи установленным, заставляет
процессор устанавливать
при переключении задачи
отладочное исключение.
● Базовый адрес битового массива разрешения
ввода/вывода.
При наличии, данный массив
всегда хранится в TSS по старшим адресам.
Базовый адрес указывает на начало массива.
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
!
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Переключение программ может производиться командами JMP и CALL типа FAR(так называемый дальний указатель, который определяется моделью памяти), командами вызова прерываний, например, INT n, или командой IRET.
Кроме этого, переключения задач могут инициироваться прерываниями и ловушками.
Модели переключения задач могут использоваться:
для переключения независимых программ при параллельном их выполнении в режиме разделения времени;
для вызова процедур;
для вызова программ обработки прерываний и ловушек;
для возврата из программ обработки прерываний и ловушек.
JMP dword ptr adr_sel_TSS(/adr_task_gate)
CALL dword ptr adr_sel_TSS(/adr_task_gate)
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Термин "задача" здесь означает "выполняемая программа", вернее - "программа, находящаяся на стадии выполнения". В многопрограммном (многозадачном) режиме работы в стадии выполнения могут находиться несколько программ. Для каждой из них создается сегмент состояния задачи - TSS. Выполнение этих программ может производиться одним процессором в режиме разделения времени. Основным назначением механизма переключения задач является организация очередных переходов между выполняемыми программами.
http://www.internals.com/articles/protmode/introduction.htm
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Отсутствие прямого взаимодействия программ при переходах с использованием механизма переключения задач позволяет значительно смягчить требования к доступности программ по условиям корректности переходов с изменением PL.
Но все проверки, непосредственно не связанные с PL, выполняются в том же объеме.
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
В случае использования команд JMP и CALL типа FAR селекторы этих команд должны выбирать дескриптор TSS и должно выполняться условие доступа прямого переключения: уровень привилегий TSS программы цели должен быть не выше уровня привилегий текущей программы и запроса, т.е.:
(CPL <= DPLTSS) & (RPL <= DPLTSS)
где DPLTSS - уровень привилегий сегмента TSS (берется из поля уровня привилегий дескриптора TSS).
http://zzak.ru/protection/r_4_28.htm
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Загрузка селектора целевого TSS приводит к загрузке регистров процессора контекстом целевой задачи,
т.е. к переключению задач.
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Переключение задачи по команде JMP или CALL типа FAR допускается, если уровень привилегий шлюза TSS не выше текущего уровня привилегий и уровня привилегий запроса, т.е.:
(CPL <= DPLШлTSS) & (RPL <= DPLШлTSS)
где DPLШлTSS - уровень привилегий шлюза задачи.
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
При переключении задач с использованием шлюза дескриптор TSS целевой задачи определяется селектором шлюза задачи.
При этом, PL шлюза TSS и дескриптора TSS могут не совпадать.
=> использование шлюзов TSS допускает любые межуровневые переключения задач.
При использовании команд IRET, команды вызова прерываний, например, INT n или в случаях прерываний и ловушек, как прямое переключение задач, так и переключение задач с использованием шлюзов задач производится вне зависимости от значений, соответственно, DPLTSS или DPLШлTSS, т.е. без проверок условий доступа по уровням привилегий.
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
Если флаг сброшен, то выполняется обычный возврат из прерывания (через стек). Если флаг установлен, то команда IRET инициирует обратное переключение задач.
В случае использования команды CALL - возврат должен происходить по команде IRET,
которая сохраняет контекст завершаемой задачи и загружает контекст прерванной.
Алгоритм работы команды IRET в случае возврата из прерывания и в случае обратного
переключения задач различен. И определяется значением флага NT (Nested Task)
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
При выполнении процедуры переключения на новую задачу через шлюз или непосредственно через TSS, процессор сохраняет в TSS текущей задачи слово флагов и устанавливает в регистре флагов бит NT. Команда IRET, завершающая задачу, обнаруживает NT=1 и, вместо осуществления возврата через стек, инициирует механизм обратного переключения задач.
IRET – это POP-аналог
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
5. Когда в новой исполняемой задаче встретится команда IRET, она будет выполняться как обратное переключение задач (NT=1);
6. Контекст текущей задачи сохранится в ее TSS ;
7. В регистр TR загрузится селектор TSS исходной задачи (из поля связи TSS текущей задачи);
8. Регистры восстановится контекст исходной задачи.
При переключении задачи процессор выполняет следующую последовательность действий:
Физический факультет, ЭВУ и системы, 7 семестр,2012 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2012 Dr. Mokhovikov
В то время как селекторы можно рассматривать как логические имена модулей кодов и данных, страницы представляют части этих модулей.
Учитывая обычное свойство локальности (близкого расположения требуемых ячеек памяти) кода и ссылок на данные, в оперативной памяти в каждый момент времени следует хранить только небольшие области сегментов, необходимые активным задачам.
Эту возможность (а следовательно, и увеличение допустимого числа одновременно выполняемых задач при ограниченном объеме оперативной памяти) как раз и обеспечивает страничное управление памятью.
Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2012 Dr.Mokhovikov Alexander Yurievich
Режимом страничной переадресации управляют биты PG в регистре CR0, флаги PAE и PSE в СR4 и бит размера страницы PS в PDE – элементе каталога страниц
Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2012 Dr.Mokhovikov Alexander Yurievich
Механизм включается установкой бита PG=1 в регистре CRO.
Регистр CR2 хранит линейный адрес отказа (Page Fault Linear Address) — адрес памяти, по которому был обнаружен последний отказ страницы.
Регистр CR3 хранит физический адрес каталога страниц (Page Directory Physical Base Address). Его младшие 12 бит всегда нулевые (каталог выравнивается по границе страницы).
Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2012 Dr.Mokhovikov Alexander Yurievich
Используемая литература:
ЭВУ SUPER!!!
Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2012 Dr.Mokhovikov Alexander Yurievich
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть