Systemeinflüsse - Gründe für Schwankungen
Ablaufsystem
- Resourcenbeschaffung, vor allem Speicherallokation
- Resourcenfreigabe, z.B. Garbagecollection
- Bytecodecompilierung (bei VM wie Java/.NET)
Systemeinflüsse
- Verdrängung durch externe Ereignisse
Wenn ein externer Hardware-Interrupt bearbeitet wird, erfolgt auch eine Verdrängung selbst mit primitivsten Betriebssystemen.
- Verdrängung durch Zeitscheibenablauf
Ein Problem bei preemptiven Multitasksystemen ist, dass immer mit der Verdränung eines
Threads vom Prozessor rechnen muss
- Schedulingpolitik
- Caches optimieren den wiederholten Zugriff auf eine Adresse des Arbeitsspeicher. Extrem wird es (Faktor 1000), wenn ein Zugriff auf eine Speicherseite erfolgt, die gerade auf den Hintergrundspeicher(Festplatte) ausgelagert worden ist
- Die Koordination zwischen verschiedenen Threads auf Mono- und gar auf Multiprozessoren ist auch nicht deterministisch
Diese Einflüsse müssen bei der Analyse von Antwortzeiten betrachtet werden. An sich wäre es sinnvoll, dass ein Betriebssystem
- anzeigt, welche Klasse nun eine Task/Thread hat
- ggf. vom Compiler oder gar vom Nutzer hinweise erhällt, welche Charakteristik ein Task/Thread hat
Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber