Multithreading unter Windows [Allgemein]
-
Hi Zusammen,
so...sorry Jungs, aber jetzt kommt eine furchtbar dämliche Frage.
Ich arbeite ja jetzt schon viele Jahre mit Windows und habe sogar schon Erfahrung mit dem Schreiben von Treibern gesammelt, aber ...
*schluchZ*
in den ganzen Büchern steht immer etwas über "Der Thread gibt sein Quantum auf [...] dann wird ein anderer Thread vom Dispatcher zur Ausführung ausgewählt [...]"
Hm - woher weiß denn die CPU wie lange sie einen Thread laufen lassen soll und v.a. welcher Thread als nächstes dran ist, etc. ? Ich mein - da muss es doch so etwas wie eine Thread-Queue auf Hardware-Ebene geben, oder ? Oder bin ich da vollkommen auf dem falschen Dampfer...? Wird nach einer gewissen Zeit ein Interrupt ausgelöst, der dann den nächsten Thread auswählen kann und die neuen Registerwerte ausm KernelStack lädt, oder...?Naja, die Frage musste ich mal los werden *rotwerd*.
Aber net weitersagen, gell ?
Greetings, Xzi-bit
-
Hähem *räusper*... 2 Minuten Googeln und schon das Richtige gefunden:
Hardwareseitig benötigt präemptives Multitasking im Gegensatz zur kooperativen Variante (vergl. TSR-Programm als Vorläufer) zwingend einen Zeitgeber in Verbindung mit einem geeigneten Prozessor, da das System softwareseitig sonst keine Möglichkeit hat, Prozessen die Kontrolle über den Prozessor zu entziehen. Der Zeitgeber sendet regelmäßig ein Signal (Interrupt) an die CPU, was sie zur Ausführung eines Schedulers veranlasst. Dieser unterbricht die Prozesse, übernimmt nötige Verwaltungsaufgaben (eventuell Swapping) und gibt die Kontrolle wieder an einen der Prozesse zurück
Naja, das hat sich ja mal wieder gelohnt...;D
Trotzdem Danke.
Greetings, Xzi-bit
PS: Das kommt davon, wenn man um 0 Uhr noch am PC sitzt (oder besser davor)... Kommt nur sch*** dabei raus und man wird scheinbar blöd davon im Kopf.
-
-
Hey, danke Undertaker !
Mhh sieht gut aus. Das werd ich mir doch gleich mal genüsslich reinziehen.
Na, auch noch wach ?
