Autor Thema: Was ist besser, Hardware Multitasking oder Software Multitasking?  (Gelesen 2768 mal)

Billy G.

  • Beiträge: 26
    • Profil anzeigen
Gespeichert
Hallo alle zusammen,

ich habe jetzt schon viel über Multitasking gelesen, aber mir ist immer noch nicht ganz klar, wann
welches Multitasking Konzept, Hardware- oder Software Multitasking, besser ist.

Was haltet ihr für besser? Und warum?

Ich freue mich über jede Antwort.

Billy

PNoob

  • Beiträge: 106
    • Profil anzeigen
    • Mein Blog
Gespeichert
Hardware multitasking ist afaik langsamer und das gibt es nur auf x86 und da auch nur im PMode im Longmode gibts das nicht. Software multitasking ist meine ich auch leichter zu implementieren. und welche Scheduliing strategien du nutzt, da ist afaik im Wiki ne gute übersicht welche es gibt und jeweils eine gute beschrebung

Billy G.

  • Beiträge: 26
    • Profil anzeigen
Gespeichert
Danke für die Schnelle Antwort,
ich denke, wenn Hardware Multitasking so eingeschränkt ist, befasse ich mich lieber mir Software Multitasking.

Billy

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
Hallo,


Was haltet ihr für besser? Und warum?
Das hängt davon ab was Du machen möchtest bzw. welche Features des Hardware-Multitaskings Du nutzen willst. Wenn Du z.B. Segmentierung nutzen möchtest und deswegen auch das Neuladen der ganzen Segmentregister brauchst ist das Hardware-Multitasking klar im Vorteil aber wenn Du keine Segmentierung benutzt ist das Neuladen der Segmentregister nur unnützer Ballast den Du bei Software-Multitasking vermeiden kannst. Der x86-PM bietet auch noch ne Menge anderer Nettigkeiten wie Task-Gates, Nested-Tasks usw., wenn Du vor hast diese Dinge zu nutzen dann wäre auch Hardware-Multitasking angebracht ansonsten eher nicht.
Portabel ist das meiste davon nicht weil es das nur beim x86-PM gibt, schon im Long-Mode ist davon nichts mehr übrig und alle anderen aktuellen CPUs auf dieser Welt haben auch nichts davon (okay PowerPC kann z.B. primitive Segmente aber sonst nichts).
Ein weiterer Punkt ist dass das Exception-Handling beim Hardware-Multitasking nicht ganz einfach ist weil es eine sehr große Anzahl an möglichen Exceptions gibt und sich die wohl nicht immer ganz exakt eindeutig analysieren lassen. Wenn der Kontext-Wechsel über mehrere Befehle verteilt ist ist es sicher einfacher einen Fehler zu finden als wenn man einfach nur weiß das der irgendwo beim automagischen Kontext-Wechsel passiert.


Auf meiner CPU hab ich mich bewusst gegen Hardware-Multitasking entschieden weil es mir einfach keine Vorteile bring (sowas wie Task-Gates usw. hab ich auch nicht weil ich dafür schlicht keinen Bedarf sehe) und die Performance (beim Neuladen der Segmentregister usw.) kann man auch anders erreichen.


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
Es ist sinnvoll zu wissen, wie Hardware-Taskswitches funktionieren, weil man sie an der einen oder anderen Stelle sinnvoll einsetzen kann. Für das gewöhnliche Multitasking gewöhnlicher Prozesse würde ich es aber nicht nehmen.

tyndur benutzt es für den Double-Fault-Handler und für VM86.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

 

Einloggen