Bei jedem Taskswitch setzt du das Bit. Wenn das Bit gesetzt ist, wird immer wenn du einen FPU Befehl nutzt die Exception (Nummer 7) ausgelöst. Wenn diese Exception ausgelöst wird, löschst du das Bit wieder. Falls ein anderer Task/Thread als der aktuelle die FPU Register zuletzt benutzt hat, musst du jetzt die FPU Register speichern und die FPU Register des aktuellen Tasks wieder laden.
Also:
Bei jedem Taskwechsel: Bit setzen
Wenn die Exception 7 ausgelöst wird: Bit löschen.
-> Wenn FPU_REGISTER_TASK != AKTUELLER_TASK
----> Aktueller Inhalt der FPU gehört zu nem anderen Task ergo: Register für den anderen Task speichern, Register für den aktuellen Task laden
----> FPU_REGISTER_TASK = AKTUELLER_TASK
EDIT: Hm, ich habe mal mein OS wieder rausgekramt und mir die Implementierung angeguckt. Ich könnte dir C Beispielcode dafür geben, eigentlich ist das aber sauleicht und das kannst du auch ohne Beispielcode schaffen denke ich
.