In x86 können Sie den TSS für den Wechsel zwischen laufenden Prozessen verwenden. Es wird jedoch empfohlen, nur einen TSS zu verwenden und den Wechsel der Software-Task durchzuführen, insbesondere wenn Sie den Kernel auf andere portieren möchten Hardware, die keine TSS haben.
In x86-64 (64 Bit) gibt es kein TSS (z. B. tut es nichts wie in x86), also, wie würde jemand ohne sie Aufgaben wechseln tun (seit früher, würden Sie zumindest verwenden eins)?
Sie würden es genauso machen, wie Sie es auf jeder anderen Plattform tun würden: Sie speichern den Inhalt der entsprechenden Register:
für die Aufgabe, von der Sie wechseln, und für die Aufgabe, zu der Sie wechseln, die gleiche wiederherstellen.
Dies geschieht oft, indem Sie den gesamten Status auf den Stapel schieben, von dem Sie wechseln, und ihn von dem Stapel, auf den Sie wechseln, abziehen. Auf diese Weise muss nur der Stapelzeiger vom Kernel weitergegeben oder verwaltet werden, um zu verfolgen, was im Hintergrund wartet.
Tatsächlich scheint es einen TSS im 64-Bit-Modus zu geben , er wird einfach nicht benutzt für Hardware-Kontextwechsel; Stattdessen wird nur der Stack des Kernels angegeben, wenn eine Übertragung auf eine höhere Berechtigungsstufe erfolgt.
Sie müssen jedoch immer noch den Softwarekontext wechseln, um die Steuerung zwischen verschiedenen Aufgaben zu ändern.