Логический элемент


Алгоритмы и механизмы переключения задач


Download 384.49 Kb.
bet63/110
Sana18.06.2023
Hajmi384.49 Kb.
#1597764
1   ...   59   60   61   62   63   64   65   66   ...   110
Bog'liq
Answers

2.36.Алгоритмы и механизмы переключения задач


2.36.АЛГОРИТМИ ТА МЕХАНІЗМИ ПЕРЕКЛЮЧЕННЯ ЗАДАЧ
Механизм переключения задач:
Переключение задач осуществляется межсегментными командами 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 выполняется обычным образом.

2.37. Страничная организация памяти. Разработка указателей таблиц и страниц. Формирования физического адреса для 4К-, 2М-и 4М-байтных страниц


2.37. СТОРІНКОВА ОРГАНІЗАЦІЯ ПАМ’ЯТІ. РОЗРОБКА ПОКАЖЧИКІВ ТАБЛИЦЬ ТА СТОРІНОК ФОРМУВАННЯ ФІЗИЧНОЇ АДРЕСИ ДЛЯ 4К-, 2М- І 4М-БАЙТНИХ СТОРІНОК.
В защищенном режиме сегменты могут иметь размер до 4 Гб, что может превышать размер физической памяти. Поэтому в режиме Р-32 кроме сегментной организации реализована страничная организация памяти. Эти две структуры работают независимо. Один сегмент состоит из нескольких страниц (как правило). Границы сегментов и страниц могут не совпадать. Логические адреса всех задач образуют виртуальную память, которая может достигать 64 Тб. Реально процессор работает с физической памятью. Загрузка виртуальных блоков в физическую память по мере необходимости называется свопингом, или подкачкой. Эти действия выполняются на уровне страниц. Страницы имеют фиксированный размер – 4Кб, 2Мб, 4Мб, который позволяет эффективно выполнять свопинг.
Страничная организация разрешается старшим разрядом регистра CR0 – PG (Paging). При этом полученный после сегментного преобразования 32-разрядный линейный адрес преобразуется в 32-разрядный физический адрес. Процесс преобразования еще называют трансляцией адреса. Алгоритм трансляции адреса (для 4Кб страниц):
В исходном линейном адресе младшие 12 разрядов действительно являются адресом внутри страницы и никогда не меняются при преобразованиях. Старшая часть линейного адреса разбита на две части по 10 разрядов. Одна из них является индексом в каталоге (максимум – 1024 элементов), другая – индексом в таблице страниц (максимум – 1024 элементов). С каждым элементом каталога связана своя таблица страниц, а каждый элемент таблицы страниц хранит физический адрес одной страницы в памяти. В регистре CR3 хранится начальный адрес каталога страниц.

Элементами каталога являются PDE, а элементами таблицы страниц – PTE. Элементы PDE и PTE имеют одинаковую структуру:
0: P (Present) – флаг присутствия. Показывает, имеется ли в данный момент данная страница в ОЗУ.
1: R/W
2: User/System
Биты 2 и 1 задают права доступа к странице:

Бит 2

Бит 1

Доступ

User

System

0

0

-

R

0

1

-

R/W

1

0

R

R/W

1

1

R/W

R/W

3: PWT (Page Level Write Through) – кэширование на уровне страниц. PWT=0 – Write Through, PWT=1 – Write Back/
4: PCD (Page Level Cache Disable) – запрет кэширования страниц.
5: A (Access - )флаг доступа. Показывает, было ли обращение к данной странице.
6: D (Dirty - )флаг мусора. Равен 1, если в соответствующую страницу/таблицу была запись информации, т.е. при записи страницы ее надо скопировать на диск.
7: PS (Page Size) (только для таблиц). PS=0 – 4Kb, PS=1 – 4Mb/2Mb/
8: G (Global) (только для станиц). G=1 – страница глобальная.
9-11: резерв для ОС.
12-31: Указатель на таблицу страниц (для PDE), либо на страницу (для PTE).
Для 4Мб страниц поле смещения в линейном адресе занимает 22 младших разряда, а 10 старших разрядов – индекс в каталоге таблиц. Таблицы страниц отсутствуют.

Download 384.49 Kb.

Do'stlaringiz bilan baham:
1   ...   59   60   61   62   63   64   65   66   ...   110




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling