Entwickler von eingebetteten Systemen und Echtzeitanwendungen können heutzutage aus einer Vielzahl von Betriebssystemen wählen. Um die Entscheidung für ein
bestimmtes Betriebssystem zu treffen, ist es notwendig, sein Zeitverhalten vorhersagen zu können, welches maßgeblich von der verwendeten Schedulingstrategie abhängt.
Die vorliegende Diplomarbeit präsentiert eine Methode, Parameter, die im Zusammenhang mit dem Scheduling stehen, zu messen und die Scheduler verschiedener Betriebssysteme in einer Simulationssoftware auf Basis von SystemC nachzubilden.
----------------------------------------------
Today developers of embedded systems and real-time applications have the choice between various operating systems to use as platform. Therefore, being able to predict
the OS' behavior, which is significantly dependent on its scheduling policy, is crucial.
This thesis describes an approach how to measure scheduling related parameters and shows the possibility to emulate different schedulers by means of a simulator written
in SystemC.
Inhaltsverzeichnis
1 Einleitung
1.1 Motivation der Arbeit
1.2 Zielsetzung
1.3 Aufbau der Arbeit
2 Grundlagen
2.1 Aufgaben von Betriebssystemen
2.2 Das Prozessmodell
2.3 Scheduling
2.3.1 Prozesswechsel
2.3.2 Strategien
3 Stand der Technik
3.1 Cheddar
3.2 FORTISSIMO
3.3 YASA 2
3.4 RTOS Modellierung auf Systemebene
3.5 Scheduling Simulation in SystemC
3.6 Automatische Codegenerierung
3.7 Statische Timinganalyse mit GROMIT
3.8 Fast Timed Software Model
3.9 Zusammenfassung
4 Methode zur Scheduling-Analyse und Simulation
4.1 Scheduling-Analyse
4.1.1 Vorbetrachtungen
4.1.2 Methode
4.1.3 Fehlerbetrachtung
4.1.4 Testverfahren
4.2 Simulation
4.2.1 Hardwareressourcen
4.2.2 Prozesse und Threads
4.2.3 Scheduling
4.2.4 Software-Hardware-Kommunikation
4.2.5 Anwendung auf die Schedulingsimulation
5 Details zur Implementierung
5.1 Messung und Auswertung
5.1.1 Fehlgeschlagene Versuche
5.1.2 Realisierte Zeitmessung
5.1.3 Das Messprogramm
5.1.4 Programmaufruf und Kommandozeilenparameter
5.1.5 Besonderheiten der Betriebssysteme
5.2 Simulation
5.2.1 Hardwareressourcen
5.2.2 Betriebssystem
5.2.3 Anwendung der libsystemcos
6 Ergebnisse
6.1 Windows XP
6.1.1 Interpretation der Messergebnisse
6.1.2 Der Schedulingalgorithmus
6.1.3 Modellierung und Simulation
6.2 QNX
6.2.1 Auswertung der Messergebnisse
6.2.2 Modellierung und Simulation
6.3 Linux
6.3.1 Auswertung der Messergebnisse
6.3.2 Modellierung und Simulation
6.4 Zusammenfassung
7 Bewertung der Ergebnisse
7.1 Vorbetrachtungen
7.1.1 FCFS
7.1.2 Prämptives Prioritätsscheduling
7.1.3 Round-Robin
7.2 Verifikationsmethode
7.2.1 Vorüberlegung
7.2.2 Mathematische Grundlagen
7.3 Ergebnis der Verifikation
7.3.1 Windows XP
7.3.2 QNX
7.3.3 Linux
8 Zusammenfassung und Ausblick
8.1 Rückblick
8.2 Zukünftige Arbeit
Zielsetzung und Themenbereiche
Das Hauptziel dieser Arbeit ist die Entwicklung eines Verfahrens zur abstrakten Analyse und Simulation des Scheduling-Verhaltens beliebiger Betriebssysteme, um Entwicklern eingebetteter Systeme bei der Auswahl geeigneter Plattformen und Parameter zu unterstützen. Die Forschungsfrage konzentriert sich darauf, wie das Zeitverhalten von Betriebssystem-Schedulern mit SystemC-basierten Simulationsmodellen präzise nachgebildet werden kann.
- Identifikation relevanter Scheduling-Parameter
- Entwicklung einer messbasierten Analysemethode
- Implementierung eines simulationsfähigen Modells (libsystemcos)
- Verifikation der Simulation am Beispiel von Windows XP, QNX und Linux
Auszug aus dem Buch
4.1.2 Methode
Prinzipiell sind zwei Vorgehensweisen denkbar, mit denen sich die Prozesse in einem System beobachten lassen. Zum einen könnte man einen Beobachter-Prozess starten, der alle relevanten Daten über das Scheduling im System sammelt. Zum anderen kann jeder Prozess im System Daten sammeln, die aus seiner Sicht verfügbar sind.
Die erste Idee hat allerdings den gravierenden Nachteil, dass dieser Beobachter-Prozess die globale Übersicht über das Geschehen im Betriebssystem haben muss. Er braucht eine direkte Verbindung zum Scheduler, was meistens nicht gewährleistet werden kann, gerade wenn die Quellen nicht frei zugänglich sind. Angenommen, das Betriebssystem stellt genügend Informationen zur Verfügung, so müsste der Beobachter diese jedoch in relativ kurzen Zeitabständen abfragen (Polling) und verfälscht durch den erhöhten Aufwand das Ergebnis, da er selbst ja auch Rechenzeit beansprucht. Im Fall des Linux-Kernels könnte man einen Beobachter-Prozess beispielsweise als Modul installieren, welches relativ einfach Zugriff auf die internen Daten des Kernels hätte. Da die Methode jedoch allgemein anwendbar sein soll, scheidet dieser Weg aus.
Die letztendlich verwendete Methode geht mit Hilfe des zweiten Ansatzes vor und lässt spezielle Testprozesse die notwendigen Daten sammeln. Dazu muss erst einmal eine idealisierte Testumgebung geschaffen werden: Das zu testende Betriebssystem muss so „sauber“ wie möglich sein. Das bedeutet, dass bestenfalls nur der Betriebssystemkern und die Testprozesse laufen. Während des Messlaufs dürfen keine Ein-/Ausgabeoperationen stattfinden, idealerweise treten nicht einmal Interrupts auf. Im Verlauf der Tests hat sich gezeigt, dass es ausreichend ist, so viele Prozesse wie möglich nach dem Start des Betriebssystems wieder zu beenden. Im Fall von Linux konnte ein minimales System gestartet werden, das nur aus dem Kernel und einer Shell besteht.
Zusammenfassung der Kapitel
1 Einleitung: Beschreibt die Motivation zur Analyse von Scheduling-Verhalten und definiert das Ziel der Arbeit, ein allgemeines Simulationsverfahren zu etablieren.
2 Grundlagen: Führt in die wesentlichen Konzepte von Betriebssystemen, das Prozessmodell und verschiedene Scheduling-Strategien ein.
3 Stand der Technik: Gibt einen Überblick über bestehende Ansätze und Tools wie Cheddar, FORTISSIMO und YASA zur Simulation und Modellierung von Schedulern.
4 Methode zur Scheduling-Analyse und Simulation: Erläutert die methodische Vorgehensweise bei der Erfassung von Prozessdaten und den Aufbau der Simulationsbibliothek.
5 Details zur Implementierung: Dokumentiert die technische Realisierung der Messung in realen Systemen sowie die Integration in die Simulationsumgebung.
6 Ergebnisse: Präsentiert die erhobenen Messdaten und die daraus abgeleiteten Simulationsmodelle für Windows XP, QNX und Linux.
7 Bewertung der Ergebnisse: Verifiziert die erzielte Genauigkeit der Simulationsmodelle anhand des Kolmogorow-Smirnow-Tests.
8 Zusammenfassung und Ausblick: Zieht ein Fazit über die erreichten Ziele und diskutiert potenzielle Erweiterungen für zukünftige Forschungsarbeiten.
Schlüsselwörter
Betriebssystem, Scheduling, Simulation, SystemC, Scheduling-Strategie, Prozessmodell, Echtzeitsysteme, Zeitverhalten, Burst Time, Windows XP, QNX, Linux, libsystemcos, Leistungsanalyse, Hardware-Software-Co-Simulation.
Häufig gestellte Fragen
Worum geht es in dieser Diplomarbeit grundsätzlich?
Die Arbeit beschäftigt sich mit der Analyse und Simulation des Scheduling-Verhaltens von verschiedenen Betriebssystemen, um deren Zeitverhalten besser vorhersagbar zu machen.
Welche zentralen Themenfelder werden behandelt?
Die Arbeit verknüpft die Bereiche Betriebssystemarchitektur, Scheduling-Algorithmen, Zeitmessung und System-Level-Simulation unter Verwendung von SystemC.
Was ist das primäre Ziel der Untersuchung?
Ziel ist es, ein abstraktes Verfahren zu entwickeln, mit dem sich das Scheduling beliebiger Betriebssysteme vermessen und in einer Simulationssoftware nachbilden lässt.
Welche wissenschaftliche Methode kommt zum Einsatz?
Es wird eine messbasierte Methode verwendet, bei der Testprozesse ihre Zeitparameter aufzeichnen; diese Daten werden anschließend statistisch aufbereitet und in Simulationsmodelle überführt.
Was umfasst der Hauptteil der Arbeit?
Der Hauptteil gliedert sich in die methodische Konzeption, die technische Implementierung der Mess- und Simulationsumgebung sowie die praktische Anwendung auf Windows XP, QNX und Linux.
Welche Schlagworte charakterisieren das Dokument?
Scheduling, Simulation, SystemC, Echtzeitfähigkeit, Betriebssystem-Verhalten und statistische Modellvalidierung.
Warum wird SystemC als Grundlage für die Simulation gewählt?
SystemC bietet mächtige Konstrukte zur Modellierung von Hardware und Nebenläufigkeit, was es ideal für die systemnahe Simulation von Betriebssystemkomponenten macht.
Wie wurde die Genauigkeit der Simulation validiert?
Die Validierung erfolgte durch den statistischen Kolmogorow-Smirnow-Test, mit dem nachgewiesen wurde, dass die Verteilungen der Messdaten und Simulationsergebnisse keine signifikanten Unterschiede aufweisen.
- Arbeit zitieren
- Diplom-Informatiker Tobias Groß (Autor:in), 2006, Analyse und Simulation des Schedulingverhaltens von Betriebssystemen mit Hilfe von SystemC, München, GRIN Verlag, https://www.grin.com/document/75185