Meiner Meinung nach ist Software Multitasking in allen Anwendungsbereichen besser als Hardwaretasking.
Vorteile:
-> Es ist schneller (Der Taskwechsel selber ist 3mal so schnell wie beim Hardwaretasking)
-> Man hat eine größere Kontrolle über den Taskswitch, man kann bestimmen, welche Register gespeichert werden usw. (Es ist z.B. unsinnig ss, es, ds, fs und gs zu speichern, wenn sie in einem flachen Speichermodell eh alle die selben Werte haben.)
-> Man kann es leichter erweitern. Speichern der FPU Register usw. lässt sich leicht einbauen.
-> Es ist leichter einzubauen. Man muss nicht an den TSS und Descriptor rumwerkeln, man braucht zwar immernoch ein TSS, das muss man aber nur einmal initialisieren und dann beim jedem Taskswitch den ESP im TSS ändern, das wars aber schon. Über dieses TSS kann man z.B. auch die IO Permission Bitmap nutzen, um einzelne Ports zu sperren usw.
-> Es ist portabler (x86-64 unterstützt z.B. kein Hardwaretasking mehr, andere Prozessoren enthalten es überhaupt nicht.)