x86-Programmierung und -Betriebsarten (Teil 4)

Beispiel

Der aktive Task sei das Textverarbeitungsprogramm Word, das gerade damit beschäftigt ist, einen Seitenumbruch auszuführen. Nun tritt ein Timer-Interrupt auf. Im Interrupt-Handler trifft der Prozessor auf ein TaskGate, das auf Excel zeigt. Damit suspendiert der Prozessor Word, indem er alle Register im zugehörigen TSS sichert. Anschließend lädt er alle notwendigen Daten aus dem TSS für Excel und startet diesen bereits früher unterbrochenen Task. Nach kurzer Zeit tritt erneut ein Timer-Interrupt auf, nur wird diesmal Excel angehalten und dafür beispielsweise der C-Compiler aktiviert. Dieses Unterbrechen und Wiederaufnehmen von Tasks findet laufend statt.

Wird ein neues Programm gestartet, so stellt das Betriebssystem ein neues TSS für diesen Task zur Verfügung. Sie merken schon, dass ein Multitasking-Betriebssytem sehr komplexe Operationen mit rasender Geschwindigkeit ausführen muss. Um einen TaskSwitch auszuführen, muss das Betriebssystem "nur" ein TaskGate, einen TSS-Deskriptor und ein TSS zur Verfügung stellen. Das Sichern der alten Registerinhalte und das Laden der neuen Werte führt der Prozessor selbstständig und automatisch aus. Es sind keine Software-Anweisungen des Betriebssystems notwendig, das heißt der Prozessor sichert bei einem Task Switch die 104 Byte des alten TSS und lädt die 104 Byte des neuen TSS völlig selbstständig.