hi, ich würde gerne wissen wie schnell die Scheduler der gängigen Desktop-Betriebssysteme sind. Bzw. wie schnell zwischen verschiedenen Prozesse umgeschalten wird. Ich hab mal was von 10ms-40ms gehört, kommt das hin? bzw. wo finde ich diese angaben?
Was du mit 10ms - 40ms gehört hast, sind die "Zeitscheiben" des Schedulers. Also die Zeit, die einem Prozess zur Ausführung gegeben wird, bevor zu einem anderen Prozess geschaltet wird. Z.B. bei Round Robin: [http://de.wikipedia.org/wiki/Round_Robin_%28Informatik%29] Das Umschalten ansich (was du sicher meinst) sollte wesentlich schneller gehen. Wie schnell genau, weiß ich aber auch nicht.
Bei Linux sind das die Ticks bzw. Jiffies (entspricht dem define HZ), je nach Platform variiert das zwischen 1ms und 10ms, ist alles ein Kompromiss zwischen Reaktionsschnelligkeit und Scheduleoverhead. Auf x86 waren es mal ursprünglich 10ms (HZ=100), dann 1ms (1000), inzwischen sinds per Default 4ms (250). Kann man mit Selbercompilieren aber ändern. Die Zeit für den Kontextswitch hängt natürlich stark von der CPU, aber auch vom Algorithmus zum Finden des nächsten Tasks ab, Gibt auch diverse Papers, zB. http://www.cs.rochester.edu/u/cli/research/switch.pdf http://foss.in/2005/slides/FOSS-kernel-performance_measurement.ppt
Windows arbeitet üblicherweise mit einer Schedulergranularität von 10 msec, kann aber durch Usermodefunktionen auf bis zu 1 msec gebracht werden. (Das sind timeBeginPeriod und timeEndPeriod aus den Multimedia-Funktionen der Win32-API, #include <winmm.h>)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.