SMP - DualCore related?

gehacktesmacher

Lt. Commander
Registriert
Dez. 2002
Beiträge
1.148
Hi!

Ich bin gerade mal auf die Frage gestossen wie eigentlich Windows XP die Arbeit des Kernels verteilt.
Was sich bei mir in den Vordergrund ist dir Frage ob z.b. XP Selber nur auf einem Core läuft also z.b. auf dem ersten (0) oder ob auch XP selber die Ressourcen die der Kernel benötigt auf alle Cores gleichmässig verteilt?
 
Ich versteh Deine Frage nicht so ganz, was willst Du genau wissen, wie SMP mit einer CPU laufen soll oder wie bei einer CPU die Tasks verwaltet werden.
Windows ist ein Multitaking-System in der kooperativen Variante im Gegensatz zu präemptiven Multitasking (Timeslice) bei UNIX z.B. und bes. Realtime-Systemen (wobei sich realtime nicht auf hohe Geschwindigkeit sondern auf eine definierte Reaktionszeit/Taskwechselzeit bezieht). Das Multitasking ist eine Stufe in der Abarbeitung von Prozessen und SMP (oder auch die asynchrone Variante) ist eine weitere Stufe, bei der nicht nur die Tasks (Threads) sondern auch noch die CPU gewechselt wird.

Und damit ist SMP bezüglich Multicore neben Dualcore im Zusammenhang zu sehen, das es verschiedenen Standards gibt, kann man ja schon lange in den BIOS-Optionen sehen.
 
Zuletzt bearbeitet:
Hallo zusammen,

spätestens seit Windows XP arbeitet Microsoft mit echtem preemptivem Multitasking - aber das war ja nicht die ursprüngliche Frage...

Eine Anwendung innerhalb von XP kann aus mehreren Strängen der Abarbeitung bestehen, diese Stränge sind Threads. Diese Threads können weitestgehend unabhängig voneinander abgearbeitet werden.

Windows XP verfügt über einen sogenannten Sheduler, der die Rechenleistung je nach Priorität der Threads auf diese Bearbeitungsstränge zuteilt. Man kann sich das so vorstellen wie einen Moderator in einer großen Diskussionsrunde, wobei der Moderator den Sheduler darstellt und die Teilnehmer die Threads. Der Moderator erteilt nach und nach für eine definierte Zeitspanne jedem Teilnehmer für kurze Zeit das Wort.

Dadurch, dass dieser Wechsel sehr schnell abläuft und die Zeitspannen relativ kurz sind, entsteht der Eindruck der parallelen Verarbeitung mehrerer Threads, Aufgaben oder auch Anwendungen.

Bei MultiCore-Systemen findet tatsächlich eine gleichzeitige Abarbeitung verschiedener Threads statt. Das verschafft auch in den meisten Situationen einen Geschwindigkeitsgewinn gegenüber SingleCore-Systemen. Jedoch wächst bei MultiCore-Systemen die Arbeit des Shedulers (Moderators) an. Schlecht geschriebene Software kann auf MultiCore-Systemen dadurch sogar wesentlich langsamer laufen als auf SingleCore-Systemen.

Selbstverständlich sind auch die Bestandteile von Windows aus mehreren Threads / Prozessen / "Anwendungen" zusammengestrickt, womit Windows automatisch auch selbst von MultiCore-Systemen profitieren kann.

Ich hoffe das umschreibt im Groben das, was Du wissen wolltest.

Grüße
Stage Zero
 
StageZero schrieb:
spätestens seit Windows XP arbeitet Microsoft mit echtem preemptivem Multitasking

Das wird sogar seit erscheinen von NT behauptet, erklärt aber in keinster Weise, dass ein einzelner schnöder Prozess bereits 100% für sich beanspruchen kann und dies werden die meisten Anwender sicher schon im Taskmanager beobachtet haben.
 
Hallo Mueli,

das ist so schon richtig, das liegt an der Arbeitsweise des Shedulers. Solange kein anderer Thread Prioritätsansprüche anmeldet, bremst ein Thread im Deadlock normaler Priorität das System aus und beansprucht fast alle Zeit der verfügbaren Rechenleistung (100% Auslastung).

Dennoch... Preemtives Multitasking bedeutet lediglich, dass der betreffende Thread nie die absolute Kontrolle über den Instruction Pointer bekommt (Sachlich nicht ganz zutreffend, aber sinngemäß), so dass das System immer noch dem Thread die Kontrolle entziehen kann. Diese Möglichkeit bietet XP bei einem hängendem Thread definitiv, auch wenn es mal was länger dauern kann.

Realtime-Systeme sind wieder was anderes. Hier werden Reaktionszeiten garantiert, das ist bei Windows nicht der Fall, ist jedoch auch nicht nur ein "Feature" welches aufgrund von preemtivem Multitasking zustande kommt.

Grüße
Stage Zero
 
Zurück
Oben