5 Kernaufgaben eines Betriebssystems (BS) Betriebssystem ist eine Menge von Programmen, die die Abarbeitung anderer Programme auf einem Rechner steuern und überwachen, insbesondere verwaltet es die Hardware-Ressourcen des Rechners wie CPU, Speicher, Ein- /Ausgabeeinheiten. Prozessverwaltung: Arbeiten mehrere Benutzer an einem Rechner mit einer CPU, so führt das Betriebssystem die CPU-Zuteilung durch. Speicherverwaltung: Speicherzuteilung, Speicherfreigabe, Schutz des Speichers vor unerlaubtem Zugriff, Bereitstellung von Speicher außerhalb des Arbeitsspeichers virtueller Speicher. Dateiverwaltung: Strukturierung eines Dateisystems (Verzeichnisse, Dateinamen), Zugriffsrechte. (Ein-/Ausgabesteuerung: Zuteilung von Ein-/Ausgabegeräten zu Prozessen (Instanzen von Programmen).) (Netzwerkverwaltung: Eingehende Datenpakete sammeln und an zugehörigen Prozess weiterleiten, ausgehende Daten verpacken und versenden.) 5.1 Prozessverwaltung Prozess ist eine Instanz eines Programms, das vom Betriebssystem ausgeführt wird. Programm: Folge von Befehlen Prozess: Befehlsfolge im Arbeitsspeicher + zugehörige Daten im Arbeitsspeicher + Registerinhalte (insbesondere PZ) (aktuell ausgeführtes Programm) zu einem Programm kann es gleichzeitig mehrere Prozesse geben Im allgemeinen viele Prozesse gleichzeitig, aber nur eine CPU BS teilt den Prozessen die CPU zu (Scheduling). First-In-First-Served nicht sinnvoll, da ein ewig laufender Prozess alles blockiert Präemptives Scheduling, d.h. jeder Prozess erhält CPU für eine bestimmte Zeit, dann nächster usw. 46
Round-Robin-Scheduling: BS verwaltet Liste von Prozessen Nach einer festgelegten Zeit wird aktueller Prozess unterbrochen und am Ende der Liste einsortiert. Oberster Prozess der Liste erhält CPU für festgelegte Zeit neu hinzukommende Prozesse werden am Ende der Liste eingefügt Blockiert ein laufender Prozess, so wird er ausgelagert und nach Beendigung der Blockade ans Ende der Liste eingefügt (Blockade z.b. Warten auf Terminaleingabe, Warten auf Zuteilung des Druckers) Kritisch: Wahl der Länge der Zeitscheibe zu lang: Interaktive Prozesse warten lange zu kurz: CPU ist nur mit dem Wechsel der Prozesse beschäftigt Round-Robin-Scheduling betrachtet alle Prozesse als gleich wichtig Alternative: Prioritätenbasiertes Scheduling Priorität gibt Dringlichkeit der Abarbeitung wieder jeder Prozess bekommt Priorität zugewiesen Prozess mit höchster Priorität darf laufen Prozess mit niedriger Priorität kommt selten bzw. nie dran statische Prioritäten: 47
höchste Priorität BS-Prozesse nächst höchste Priorität Interaktive Prozesse niedrigste Priorität Hintergrundprozesse dynamische Prioritäten lief ein Prozess bereits längere Zeit Priorität wird erniedrigt war ein Prozess lange blockiert Priorität wird erhöht Oftmals Prioritätsbasiertes Round-Robin Round-Robin-Scheduling je Priotätsklasse 5.2 Speicherverwaltung Trotz riesiger Arbeitsspeicher heutiger Rechner (> 128 MByte) passen sehr große Prozesse oder die verschiedenen Prozesse im Mehrbenutzerbetrieb nicht komplett in den Arbeitsspeicher virtueller Speicher Zur Prozessausführung befindet sich nicht das gesamte Programm + Daten im Arbeitsspeicher, sondern nur die aktuell benötigten Teile Programm enthält nur logische Adressen auch wenn das Programmteil in den Arbeitsspeicher geladen wurde Adresstransformation bei Befehlsausführung 48
befindet sich logische Adresse nicht im Arbeitsspeicher, so wird ein entsprechender Abschnitt geladen Seitenadressierung (Paging) Seitenadressierung (Paging) Speicher wird in gleichgroße Bereiche (Kacheln, Pages) eingeteilt (typisch 256 Byte - 64 KByte) logische Adresse besteht aus Seitennummer Offset (Wortadresse) Seitentabelle enthält folgende Informationen (je Prozess) les- und/oder schreibbar befindet sich Seite im physikalischen Speicher wurde zuletzt lesend/schreibend zugegriffen (wird periodisch zurückgesetzt): Access-Bit Seite wurde irgendwann modifiziert: Modified-Bit Basisadresse 49
2 n ist Größe einer Kachel, falls n ist Anzahl der Bits des Offsets 2 m entspricht Anzahl der adressierbaren Kacheln, falls m ist Anzahl der Bits der Seitennummer 2 k entspricht mindestens der Anzahl der Kacheln im Arbeitsspeicher, falls k ist Anzahl der Bits der Basis-Adresse der Seitentabelle Ist das Bit Seite befindet sich im physik. Speicher nicht gesetzt fehlende Kachel muss eingelagert werden Strategien zum Auslagern von Seiten 50
Ziel: Möglichst diejenige Seite auslagern, auf welche mit hoher Wahrscheinlichkeit in näherer Zukunft nicht verwiesen wird. Gebräuchlichste Strategie, da einfach zu realisieren und effizient, d.h. im Mittel wenige Seiten aus- und einlagern: Not-recently-used: lagere Seite aus mit Access-Bit=0 Modified-Bit=0 (Seite wurde in letzter Zeit nicht gebraucht und liegt unverändert im Hintergrundspeicher kein Kopieren) lagere Seite aus mit Access-Bit=1 Modified-Bit=0 (Seite wurde zwar gelesen muss aber nicht in den Hintergrundspeicher kopiert werden) lagere Seite aus mit Access-Bit=0 Modified-Bit=1 (Seite wurde in letzter Zeit nicht gebraucht, d.h. wurde auf 0 zurückgesetzt, wurde früher jedoch modifiziert muss in den Hintergrundspeicher kopiert werden) 5.3 Dateiverwaltung Dateien: nichtflüchtige Lagerung von Daten und Programmen Anforderungen an die Dateiverwaltung schneller Zugriff Speicherplatzeffizienz bei dynamischer Größe Berücksichtigung von Zugriffsrechten Dateien bestehen aus Dateibeschreibung + Daten Dateibeschreibung enthält alle die Datei betreffenden Informationen Dateiname Dateigröße Erstellungsdatum 51
Eigentümer Zugriffsrechte Zeitpunkt des letzten Zugriffs Zeitpunkt der letzten Änderung... Hierarchische Organisation über Verzeichnisse (diretory) Baumstruktur Zugriff über Pfade Hintergrundspeicher meist in Blöcke fester Länge eingeteilt Zuordnung von Blöcken zu Dateien zusammenhängende Belegung Datei besteht aus hintereinanderliegenden Blöcken + effizienter Zugriff, da Adresse schnell berechenbar - Fragmentierung des Speichers - bei Vergrößerung der Datei evtl. komplette Datei kopieren Belegungstabelle 52
+ keine Fragmentierung + problemlose Dateivergrößerung + effizienter Zugriff, falls Belegungstabelle im Arbeitsspeicher - viel Arbeitsspeicher wird für Belegungstabelle benötigt Indizierte Belegung + analog Belegungstabelle + nur i-nodes der aktuell bearbeiteten Datei muss in Arbeitsspeicher Verwaltung freier Blöcke betrachte freie Blöcke als spezielle Datei, die über indizierte Belegung organisiert ist Blöcke schnell zu finden und frei zu geben Zugriffsrechte in Unix/Linux: 3 Nutzergruppierungen EigentümerIn (User/Owner: u): Der-/diejenige, der/die Datei erstellt 53
Gruppe (Group: g): Mehrere NutzerInnen können in einer Gruppe zusammengefasst werden Restliche NutzerInnen (Others: o): Der Eigentümer kann jeder Gruppierung folgende Zugriffsrechte erteilen: Datei lesen Datei schreiben/verändern/löschen Datei ausführen 5.4 Leistungsbewertung von Rechnern Sinnvolles Maß: Antwortzeit (Zeit vom Programmstart bis zur Beendigung) Antwortzeit setzt sich zusammen aus: Benutzer-CPU-Zeit: Zeit, die die CPU zum Ausführen des Programms benötigt System-CPU-Zeit: Zeit, die die CPU zum Ausführen von Betriebssystem- Routinen braucht Wartezeiten: durch Warten auf E/A-Geräte Meist betrachtet man nur Benutzer-CPU-Zeit: Benutzer-CPU-Zeit (P) = # Maschinenbefehle (MB) * durchschnittliche # Takten pro MB * Zykluszeit (= 1 T aktrate ) Taktrate beeinflusst Benutzer-CPU-Zeit, ist jedoch nicht umfassend aussagekräftig # Maschinenbefehle abhängig vom Compiler (übersetzer für höhere Programmiersprachen in Maschinenbefehle) durchschnittliche # Takten pro MB abhängig von CPU-Organisation (Hardware) Auch das Maß MIPS (millions instruction per second) ist nicht umfassend aussagekräftig, da MIPS-Rate = Taktrate 10 6 durchschnittliche # Takte pro MB 54