Логический элемент
Правила доступа для шлюзов
Download 384.49 Kb.
|
Answers
Правила доступа для шлюзов:Max (CPL, RPL) <= DPL шлюза. Но CPL >= DPL вызываемой программы. 2.35. Аппаратные средства поддержки многозадачной работы микропроцессора. Структура таблици состояния задач. Алгоритмы и механизмы переключения задач2.35. АПАРАТНІ ЗАСОБИ ПІДТРИМКИ БАГАТОЗАДАЧНОЇ РОБОТИ МІКРОПРОЦЕСОРА. СТРУКТУРА АБЛИЦІ СТАНУ ЗАДАЧ. АЛГОРИТМИ ТА МЕХАНІЗМИ ПЕРЕКЛЮЧЕННЯ ЗАДАЧ. Многозадачность имеет следующие аппаратные средства поддержки: 1. Каждая задача должна иметь свой сегмент состояния TSS (Task State Segment):
Минимальный размер TSS – 104 байта. Последние две строки – необязательная информация. Бит Т – бит трассировки. Селектор возврата содержит селектор той задачи, которая вызвала данную по команде CALL. Содержимое регистров МП, которое хранится в TSS данной задачи, называется контекстом задачи. 2. Каждый TSS должен иметь свой дескриптор. Формат байта доступа дескриптора TSS:
Если задача была вызвана, то B(Busy)=1. Если B=1, то задачу вызвать нельзя. Поэтому рекурсивный вызов задач невозможен. 3. Регистр задач TR (Task Register): в нем хранится селектор TSS текущей задачи. Механизм переключения задач: Переключение задач осуществляется межсегментными командами JMP, CALL, IRET. JMP <селектор> <смещение> CALL <селектор> <смещение> 1. Микропроцессор (МП) из регистра TR определяет адрес TSS текущей задачи и переписывает в TSS содержимое регистров текущей задачи (контекст задачи). 2. Для команд JMP и CALL МП берет селектор из команды, а для команды IRET – селектор из поля возврата TSS. Селектор загружается в регистр TR => текущей становится новая задача. 3. По селектору МП находит в памяти TSS новой задачи. Из TSS МП загружает регистры новым содержимым. Это называется переключением контекста задачи. 4. Поле <смещение> не используется. 5. В новой задаче устанавливается бит B(Busy)=1. Если была команда JMP или IRET, то бит В предыдущей задачи сбрасывается. При CALL – не сбрасывается (т.к. задача не может вызвать саму себя). Рекурсия запрещена, т.к. каждая задача имеет только один TSS. При рекурсии мы потеряем старое содержимое TSS. Но внутри задачи рекурсия разрешена. 6. В регистре CR0 есть бит TS (Task Switched). При любом переключении задач бит TS устанавливается в 1. Если при этом встретится программа сопроцессора, то вызывается исключение №7 (FPU недоступен). Бит TS аппаратно не сбрасывается. Поэтому каждая задача должна сама сбрасывать бит TS. 7. При выполнении команды CALL устанавливается бит NT (Nesting Task) в поле регистра флагов TSS. Если NT=1, то команда IRET выполняет действия, описанные выше. Если NT=0, то IRET выполняется обычным образом. Download 384.49 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling