Grundlagen der Betriebssysteme: Von Batch bis Multiprogramming
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 3,45 KB
Was ist ein Betriebssystem?
Ein Betriebssystem ist eine Software, die die grundlegende Verwaltung und Kontrolle aller Ressourcen eines EDV-Systems ganzheitlich steuert.
Die Anfänge der Betriebssysteme
Ursprünglich gab es kein Betriebssystem. Der Betrieb erfolgte manuell über eine Konsole:
- Eingabe der Startadresse für Programme.
- Verwendung von Magnetbändern oder Lochkarten.
- Der Benutzer hatte direkten Zugriff auf Speicherregister, was oft zu Programmfehlern führte.
- Die Ergebnisse wurden in kontinuierlicher Form oder auf Karten ausgegeben.
- Der Computer wurde blockweise für Nutzer reserviert, was zu ineffizienten Rüstzeiten führte.
Einfache Batch-Verarbeitung (Stapelverarbeitung)
Um wiederholte Kompilierungsfehler zu vermeiden, wurden Prozesse gleicher Art gruppiert. Da dies jedoch zu Leerlaufzeiten der CPU führte, wurde ein automatischer Sequenzer entwickelt – der Vorläufer des ersten Betriebssystems (Monitor Resident).
OFF-LINE-Operationen und Spooling
Bei der OFF-LINE-Verarbeitung wurde ein sogenannter Satelliten-Computer eingesetzt, um die Interaktion zwischen Kartenlesern und Bandlaufwerken zu beschleunigen. Ein Nachteil war der rein sequentielle Zugriff.
Features des Spooling:
- Verwendung der Festplatte als großer Puffer für Ein- und Ausgabedaten.
- Ermöglicht die parallele Verarbeitung von Ein-/Ausgabe-Operationen und CPU-Berechnungen.
- Einführung von Datenstrukturen wie Job-Queues und Process Scheduling.
- Grundlage für die Entwicklung der Multiprogrammierung.
Multiprogramming
Das Ziel der Multiprogrammierung ist eine optimale CPU-Auslastung, indem mehrere Programme gleichzeitig im Speicher gehalten werden. Dies erhöht den Durchsatz (die Menge der in einem Zeitintervall erledigten Arbeit).
Klassifikation der Arbeiten
- I/O-gebundene Prozesse: Viele kurze Zyklen mit Ein-/Ausgabe-Operationen.
- CPU-gebundene Prozesse: Lange Zyklen, in denen die CPU intensiv genutzt wird.
Ein effizientes System benötigt eine gute Mischung aus beiden Arbeitstypen.
Prozessmanagement
Ein Prozess ist ein laufendes Programm, sei es ein Batch-Job, ein Anwenderprogramm oder eine Systemaufgabe.
Der Prozess-Kontrollblock (PCB)
Jeder Prozess wird im Betriebssystem durch einen PCB repräsentiert, der wichtige Informationen enthält:
- Prozess-ID: Eindeutige Kennung.
- Status: Bereit, laufend, wartend oder beendet.
- Programmzähler: Adresse der nächsten auszuführenden Anweisung.
- CPU-Register: Gespeicherter Zustand bei Unterbrechungen.
Ready-Queue (Bereit-Warteschlange)
Prozesse, die auf die Ausführung warten, werden in einer verketteten Liste (Ready-Queue) verwaltet, die auf die jeweiligen PCBs verweist.
Scheduling-Strategien
Langfristige Planung (Long-Term Scheduler)
Bestimmt, welche Jobs zur Verarbeitung zugelassen werden. Er steuert den Grad der Multiprogrammierung und wird seltener aufgerufen.
Kurzfristige Planung (Short-Term Scheduler)
Wählt aus der Menge der bereiten Prozesse den nächsten aus, der die CPU erhält. Da dieser Vorgang sehr häufig stattfindet, muss er extrem schnell sein.