Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мои шпоры ОСиСП(1).doc
Скачиваний:
32
Добавлен:
26.09.2019
Размер:
1.63 Mб
Скачать

3. Механизмы поддержки многозадачности в процессорах ia32 (20)

Для кодировки многозадачности процессора Intel-архитектуры имеются как пользовательские регистры, так и системные. Однако, если с пользовательскими можно работать на любом уровне привилегий, то для работы с системными регистрами необходимо определять режим работы процессора и уровень привилегий выполняемых команд, а также пользовательские сегментные регистры применяемые при работе с памятью и в многозадачном режиме (CS, DC, SS, ES, GS, FS). Для архитектуры IA-32 пользовательские регистры бывают 16 и 32-битные.

К системным регистрам относятся:

- Регистр глобального дескриптора таблиц (GDTR) – 48 бит

- Регистр таблиц прерывания (IDTR) – 48 бит

- Регистр локального дескриптора таблиц (LDTR) – 16 бит

- Регистр задачи (TR) – 16 бит

- Регистры управления (CR0-CR4)

- Регистры отладки (DR0-DR7)

- Регистры проверки (TR3-TR7)

Кроме них имеются регистры флаги.

Под задачей понимается программа или группа связанных программ, которая выполняется в многозадачном (мультипрограммном) режиме и её выполнение не должно подвергаться воздействиям извне (в смысле другими программами), и в свою очередь, она не должна оказывать влияния на действия, выполняемые другими программами. В процессорах Intel архитектуры задача определяется как совокупность кода и данных, которым назначен сегмент состояния задачи, т.е. сегмент состояния задачи является эквивалентным контекстной памяти, в которой хранится информация о задаче, когда она не выполняется и откуда она берется при повторном старте задачи. Сегмент состояния задачи – небольшой сегмент данных с разрешенными операциями чтения и записи, доступ к которым запрещен всем программам и к сегменту состояния задачи может обращаться только сам процессор.

Для управления многозадачностью в процессоре нет специальных команд. Вместо этого в некоторых случаях по-другому интерпретируются команды межсегментной передачи управления. Переключение задачи может быть вызвано командами межсегментной передачи управления (far call и far jump). Помимо этого новая задача может активизироваться прерыванием или особым случаем. Когда реализуется одна из таких форм передачи управления, по типу адресуемого дескриптора процессор определяет что ему нужно сделать: выполнить обычную межсегментную передачу или переключить задачу.

Имеется два типа дескрипторов, относящихся к задачам:

1. Дескриптор сегмента состояния задачи.

2. Шлюз задачи.

При каждом переключении задачи процессор может перейти к другой локальной дескрипторной таблице.

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

Для поддержки многозадачности в процессоре имеются:

- регистр задачи;

- сегмент состояния задачи;

- дескриптор сегмента состояния задачи;

- дескриптор шлюза задачи.

Типичным примером многозадачной работы являются системы разделения времени. В ходе функционирования такой системы требуются средства, позволяющие приостановить выполнение задачи, временно сохранить ее состояние, восстановить состояние задачи, на которую осуществляется переключение и инициировать ее продолжение работы.

Сегмент состояния задачи представляет собой контекстную память, в которой сохраняется информация о задаче, когда она не выполняется и откуда берется информация при рестарте задачи. Большая часть сегмента состояния задач отведена для хранения внутренних регистров процессора и для ряда сегментных регистров, таких, как DTR CR3 и др.

Дескриптор сегмента состояния задачи определяет сегмент состояния задачи. Поле DPL этого дескриптора показывает, какие программы по уровню привилегий могут обращаться к задаче, определенной данным дескриптором TSS, т.е. функции этого поля аналогичны функциям DPL в шлюзе вызова.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]