Операционные системы, сохраняющие состояние 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, значит восстанавливать нечего.