Программирование на Ассемблере

Операционные системы, сохраняющие состояние MMX/FPU


Операционные системы могут сохранять:

*                    полное состояние для FPU;

*                    сохраняет состояние по специальному запросу;

*                    сохраняет только частично состояние.

Вначале для всех задач предполагается, что MMX/FPU не требуется CR0.TS=1.

Если встречается команда FPU/MMX, вызывается обработчик int 7 (устройство не доступно), обработчик входит в состав OS, и  выполняет:

*                    выделение памяти для состояния задачи;

*                    формируется переменная, определяющая текущий режим;

*                    включается требуемый режим.

Бит CR0.TS устанавливается в 0, что означает, что необходимо сохранять – восстанавливать среду.

Заметим, что само состояние сохраняется - восстанавливается пользователем с помощью команд FSAVE, FRSTOR  для обоих режимов.

Таким образом, если переключаемая задача имеет CR0.TS=0, OS определяет установленный режим и состояние регистров, включает требуемый режим, если CR0.TS=1, это означает, что задача пока не использовала команд FPU/MMX, значит восстанавливать нечего.



Содержание раздела