3 – Betriebssysteme
Prozessverwaltung, Speicherverwaltung, Dateiverwaltung
Lessons Learned
In diesem Kapitel geht es darum folgende Dinge zu verstehen und zu
können
Aufbau

Anforderungen
Wünsche an ein Betriebssystem

Arten von Betriebssystemen

Aufgaben eines Betriebssystems
Betriebsmittel
Betriebsmittel sind …

- Aktive, zeitlich aufteilbare
- Passive, nur exklusiv nutzbare
- Passive, räumlich aufteilbare
Betriebsmittelverwaltung
Die Betriebsmittelverwaltung besteht im wesentlich aus der …
- Prozessverwaltung (Verwaltung der CPU)
- Starten und Beenden von Prozessen
- Wechsel zwischen Prozessen
- Speicherverwaltung
- Zuteilung von Speicher auf die laufenden Prozesse
- Geräte und Dateiverwaltung
- Effiziente Zuweisung von Ein-/Ausgabegeräten und Vermittlungs-einheiten (Datenkanäle, Steuereinheiten), Vermeidung von Konflikten
- Initiierung, Überwachung der Ausführung, Terminierung von Ein-/Ausgabevorgängen.
- Verwaltung des Dateisystems. Erzeugung eines Namensraums mit zugehörigen Speicherobjekten und gegebenenfalls weiteren Objekten
Abstraktion
Üblicherweise gehört auch das Abstrahieren der verwendeten Technik in vermeidlich “einfachere” Konzepte zu den Aufgaben
eines Betriebsystems. Darunter versteht man:
Verbergen der Komplexität der Maschine vor dem Anwender
- Abstraktion des Maschinenbegriffes (nach Coy):
- Reale Maschine = Zentraleinheit + Geräte (Hardware)
- Abstrakte Maschine = Reale Maschine + Betriebssystem
- Benutzermaschine = Abstrakte Maschine + Anwendungsprogramm
Prozessverwaltung
Eigenschaften eines Prozesses, Scheduling
Lessons Learned
In diesem Kapitel geht es darum folgende Dinge zu verstehen und zu
können
- Prozesszustände
- Scheduling / Schedulingstrategien
Prozesse / Prozessverwaltung
Ein Prozess …
- … ist die Abstraktion eines sich in Ausführung befindlichen Programms
- Ein Prozess besteht aus den Programmbefehlen und dem Prozesskontext
- Der Prozesskontext besteht aus dem privaten Adressraum des Programms, geöffneten Streams (Dateien, Sockets, …) und abhängigen Prozessen
- … wird über die Prozessverwaltung gesteuert
- Die Prozessverwaltung steuert die Zuteilung von Betriebsmitteln an den Prozess
- CPU
- Speicher
- Ein- und Ausgabegeräte
- …
Multitasking
Der Prozessor kann zwischen mehreren Prozessen hin und her geschaltet
werden
- Im Allgemeinen wird sogenanntes preemptives Multitasking verwendet
- Das Betriebssystem entscheidet, wann welcher Prozess zur Ausführung kommt
- Jeder Prozess wird für einige Millisekunden (Zeitscheibe, timeslice) ausgeführt
- Der Benutzer erhält dadurch den Eindruck von Parallelität

Prozesszusammenhang

Kooperatives Multitasking
Im Gegensatz zum preemptiven Multitasking bestimmt ein Prozess selbst,
wann er den Prozessor an andere Prozesse abgibt
- Nachteile
- Ein einzelner Prozess kann bei bestimmten Fehlern, z.B. Endlosschleifen, das gesamte System zum Absturz bringen
- Selbst das Betriebssystem kann nicht mehr rechnen, wenn ein Prozess den Prozessor nicht wieder freigibt
Kooperativ

Preemptiv

Prozesszustände
Ein Prozess kann sich in folgenden Zuständen befinden
- Rechnend:Der Prozessor ist dem Prozess zugeteilt
- Blockiert:Der Prozess kann nicht ausgeführt werden, bis ein externes Ereignis auftritt
- Rechenbereit: Der Prozess ist ausführbar, aber der Prozessor ist einem anderen Prozess zugeteilt

Prozesszustände
Der Prozessscheduler organisiert die Übergänge der Prozesse zwischen den
einzelnen Zuständen
- Der Prozess wartet, z.B. auf Eingabe des Benutzers
- Die Zeitscheibe des Prozesses ist abgelaufen oder ein höher priorisierter Prozess muss ausgeführt werden
- Der Prozess bekommt eine neue Zeitscheibe zugeteilt
- Das Ereignis, auf welches ein Prozess nach 1. gewartet hat, ist eingetreten

Scheduling
Ein guter Scheduling-Algorithmus muss einige Anforderungen erfüllen
- Fairness: Jeder Prozess erhält einen gerechten Anteil der CPU-Zeit
- Effizienz: Die CPU und andere Ressourcen sind möglichst ausgelastet
- Einhaltung der Systemregeln
Weitere Anforderungen hängen vom Einsatzgebiet ab
- Stapelverarbeitungssysteme
- Dialogsysteme
- Echtzeitsysteme
Scheduling auf Stapelverarbeitungssystemen
Zusätzlich Anforderungen an den Scheduler auf einem Stapelverarbeitungssystem
- Möglichst hohe CPU-Auslastung
- Es sollte nicht vorkommen, dass die CPU Leertakte hat
- Job-Durchsatz
- Die Anzahl der bearbeiteten Aufgaben pro Zeiteinheit sollte maximal sein
- Minimale Durchlaufzeit
- Die Zeit, welche ein Job von Ankunft in der Job-Queue bis zur Fertigstellung des Jobs benötigt, sollte minimal sein
Scheduling auf Dialogsystemen
Zusätzlich Anforderungen an den Scheduler auf einem Dialogsystem
- Kurze Antwortzeiten
- Der Benutzer sollte nicht das Gefühl haben, auf Reaktionen des Systems, z.B. auf Mausklicks oder Tastatureingaben, warten zu müssen
- Prozesse, die Interaktion mit dem Benutzer erfordern, sollten vor anderen Prozessen bevorzugt werden
- Proportionalität
- Die Antwortzeit verschiedener Prozesse sollte mit der Benutzererwartung übereinstimmen
- Aus Benutzersicht „einfache“ Aufgaben sollten schneller erledigt werden, als aus Benutzersicht „schwierige“ Aufgaben
Scheduling auf Echtzeitsystemen
Zusätzlich Anforderungen an den Scheduler auf einem Echtzeitsystem
- Einhaltung von Zeitfenstern
- Der Scheduler muss einen Überblick über die Zeitfensterb verschiedener Prozesse haben und diesen entsprechend Rechenzeit zuweisen
- Vorhersagbarkeit
- Das System muss deterministisch agieren / reagieren
First Come, First Serve
Die Prozesse werden nach der Reihenfolge ihres Einfügens in die Job-Queue eines Stapelverarbeitungssystems bearbeitet
- Die Zuteilung des Prozessors an andere Prozesse findet nur statt, wenn ein laufender Prozess zu warten beginnt oder sich beendet
- Jeder Prozess kommt garantiert an die Reihe
- Kurze Prozesse müssen unter Umständen sehr lange warten, bis sie ausgeführt werden
- Unverhältnismäßig langes Warten auf das Ergebnis

Shortest Job First
Die Prozesse werden aufsteigend nach ihrer geschätzten Ausführungszeit bearbeitet
- Große Prozesse kommen möglicherweise nie an die Reihe, wenn immer wieder kleinere Prozesse in die Job-Queue eingefügt werden
- Die Wartezeit auf das Ergebnis eines Prozesses verhält sich in etwa proportional zur Ausführungszeit des Prozesses

Beispiel: FCFS vs. SJF
Gegeben sind 4 Prozesse mit den folgenden Ausführungszeiten
- Prozess A: 6 Sekunden
- Prozess B: 10 Sekunden
- Prozess C: 2 Sekunden
- Prozess D: 2 Sekunden

Beispiel: FCFS vs. SJF

- First Come, First Serve:
$ \frac{6+16+18+20}{4}= 15 sec $
- Shortest Job First:
$ \frac{2+4+10+20}{4}= 9 sec $
Prioritätsscheduling auf Dialogsystemen
Jedem laufenden Prozess wird eine Priorität zugewiesen
- Zuweisung der Priorität wird vom Betriebssystem gesteuert
- Es gibt dynamische und statische Zuweisung
- Es wird immer dem Prozess mit der höchsten Priorität eine Zeitscheibe zugeteilt
- Neu hinzukommende Prozesse hoher Priorität verdrängen rechnende Prozesse niedriger Priorität
- Auch der Übergang nach Rechenbereit eines hoch priorisierten Prozesses verdrängt niedrig priorisierte Prozesse
Statische vs. Dynamische Priorität
- Statische Priorität
- Jeder Prozess erhält bei seinem Start eine feste Priorität
- Der Prozess mit der höchsten Priorität bekommt als nächstes eine Zeitscheibe zugeteilt
- Gibt es mehrere Prozesse mit der gleichen Priorität werden diese im Round-Robin-Verfahren bearbeitet
- Wird oft in Echtzeitsystemen verwendet
- Dynamische Priorität
- Jedem Prozess wird eine Anfangspriorität zugeordnet
- Der Prozess mit der höchsten Priorität bekommt als nächstes eine Zeitscheibe zugeteilt
- Die Prioritäten der Prozesse werden dynamisch geändert
- Es gibt verschiedene Verfahren der Realisierung
Multilevel-Feedback-Queue
Die MFQ ist ein Beispiel für dynamische Prioritätszuweisung
- Die Prozesse werden anhand ihres bisherigen Ressourcenverbrauchs priorisiert
- Es werden mehrere FIFO-Queues benutzt
- Neue Prozesse werden in der höchst priorisierten Queue eingefügt
- Prioritäten werden abhängig vom Verhalten des Prozesses geändert
- Der Prozess gibt den Prozessor freiwillig ab
- Der Prozess wird in dieselbe Queue wieder eingefügt
- Der Prozess verbraucht seine gesamte Zeitscheibe
- Der Prozess wird in der nächst niedriger priorisierten Queue wieder eingefügt
)
3.2 – Speicherverwaltung
Reale Speicherverwaltung, Virtuelle Speicherverwaltung
Lessons Learned
In diesem Kapitel geht es darum folgende Dinge zu verstehen und zu
können
- Reale Speicherverwaltung
- Virtuelle Speicherverwaltung
- Grundidee
- Verdrängungsmechanismen
Reale Speicherverwaltung
Der Arbeitsspeicher wird aus den Prozessen heraus direkt adressiert
- Die Größe des physikalischen Speichers begrenzt die Anzahl der gleichzeitig ausführbaren Prozessen
- Nutzung von Swapping, um mehr Prozesse „parallel“ betreiben zu können
- Probleme realer Speicherverwaltung
- Fragmentierung des Speichers
- Suche nach freien Speicherblöcken mittels Belegungstabelle sehr aufwändig
Fragmentierung des Speichers
Beim Ersetzen von Speicherblöcken können viele kleine, freie Bereiche im
Speicher entstehen
- Neue Prozesse finden keine ausreichend großen, zusammenhängenden Bereiche mehr

Reale Speicherverwaltung
Beim Starten eines Prozesses wird dieser in einen freien Speicherblock
geladen
- First Fit
- Wählt den ersten, freien Speicherbereich, welcher groß genug ist
- Diese Variante ist schnell, verschwendet aber möglicherweise große, freie Blöcke an kleine Prozesse
- Next Fit
- Funktioniert wie First Fit, startet aber nicht am Anfang des Speichers, sondern an der Stelle, wo der letzte Prozess eingefügt wurde
- Best Fit
- Wählt den kleinstmöglichen, freien Speicherbereich
- Verteilt Speicher gut, aber die Suche nach freien Speicherblöcken ist sehr aufwändig
Reale Speicherverwaltung
Nachteile reale Speicherverwaltung
- Nutzung des Speicherplatzes
- Es muss Platz für das gesamte Programm und die Daten gefunden werden, obwohl diese wahrscheinlich nicht alle gleichzeitig benötigt werden
- Beschränkung des Speicherplatzes
- Es kann insgesamt nicht mehr Speicher genutzt werden, als physikalisch vorhanden ist
- Belegung des Speichers
- Die Anforderung zusammenhängende Speicherblöcke für Prozesse zu finden, verschärft das Problem der Fragmentierung
Virtuelle Speicherverwaltung
Virtuelle Speicherverwaltung behebt die Nachteile realer
Speicherverwaltung
- Jedem Prozess wird ein scheinbar zusammenhängender Speicherbereich zur Verfügung gestellt
- Tatsächlich besteht der Speicher des Prozesses aus nicht zwangsläufig zusammenhängenden virtuellen Pages
- Der Prozess kann seinen Speicher mit virtuellen Adressen beginnend bei 0 adressieren
- Die Gesamtheit aller virtuellen Adressen wir als virtueller Adressraum bezeichnet
Virtuelle Pages
Virtuelle Pages werden rechnerintern auf physikalisch vorhandene Pages
gleicher Größe abgebildet
- Die physikalischen Pages können irgendwo im Arbeitsspeicher oder in einer Auslagerungsdatei auf der Festplatte liegen
- Beim Zugriff eines Prozesses auf eine virtuelle Speicheradresse…
- … wird zunächst die zu dieser Adresse gehörige virtuelle Page ermittelt
- Anschließend wird die zu dieser virtuellen Page gehörige physikalische Page ermittelt
- Die Zuordnung von virtuellen und physikalischen Pages und deren Ablageort (Basisadresse) werden in der sogenannten Pagetable gespeichert
- Die relative Speicheradresse (Offset) ist innerhalb einer Page in virtuellen und physikalischen Pages dieselbe
Virtuelle Pages
Berechnung der physikalischen Speicheradresse

Virtuelle Pages
Berechnung der physikalischen Speicheradresse:
- Beispiel Adresslänge 16 Bit, 8 Bit Offset (low) und 8 Bit Seitennummer (high)
Seitentabelle:
Eintrag |
Gültig |
Seitenrahmen |
00 |
Nein |
- |
01 |
Ja |
0x17 |
02 |
Ja |
0x20 |
03 |
Ja |
0x08 |
04 |
Nein |
- |
05 |
Ja |
0x10 |
Zu übersetzen:
virtuelle Adresse |
physikalische Adresse |
0x083A |
ungültig (Seite 8 ex. nicht) |
0x01FF |
0x17FF (Seite 1, Rahmen 0x17) |
0x0505 |
0x1005 (Seite 5, Rahmen 0x10) |
0x043A |
ungültig (Seite 4 ungültig) |
Paging on Demand
Zu einem Prozess gehörige, jedoch aktuell nicht genutzte Pages, werden
auf den Hintergrundspeicher, z.B. Festplatte, ausgelagert
- Es wird Arbeitsspeicher für andere Prozesse freigegeben
- Braucht der Prozess die Page zu einem späteren Zeitpunkt wieder, muss sie erneut in den Arbeitsspeicher geladen werden
- Es muss eventuell eine andere Page aus dem Arbeitsspeicher verdrängt werden
- Es gibt mehrere Möglichkeiten zu bestimmen, welche Page aus dem Arbeitsspeicher verdrängt wird
Verdrängungsstrategien
Ähnlich wie beim Caching gibt es auch hier verschiedene
Verdrängungsstrategien
- FIFO (First-In, First-Out)
- Die Page, welche bereits am längsten im Speicher liegt, wird verdrängt
- LRU / LFU (least recently / frequently used)
- Die Page welche am längste nicht mehr bzw. am seltensten zugegriffen wurde, wird verdrängt
- Unversehrtheit der Speicherseite
- Es werden Pages ausgelagert, die sich im Arbeitsspeicher nicht geändert haben, sodass Schreiboperationen auf die Festplatte entfallen
Verdrängungsstrategien
FIFO-Strategie
- Seitenanforderungen: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
Referenzfolge |
|
1 |
2 |
3 |
4 |
1 |
2 |
5 |
1 |
2 |
3 |
4 |
5 |
Arbeitsspeicher |
Page 1 |
1 |
1 |
1 |
4 |
4 |
4 |
5 |
5 |
5 |
5 |
5 |
5 |
|
Page 2 |
|
2 |
2 |
2 |
1 |
1 |
1 |
1 |
1 |
3 |
3 |
3 |
|
Page 3 |
|
|
3 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
Kontrollzustand |
Page 1 |
0 |
1 |
2 |
0 |
1 |
2 |
0 |
1 |
2 |
3 |
4 |
5 |
|
Page 2 |
- |
0 |
1 |
2 |
0 |
1 |
2 |
3 |
4 |
0 |
1 |
2 |
|
Page 3 |
- |
- |
0 |
1 |
2 |
0 |
1 |
2 |
3 |
4 |
0 |
1 |
Anzahl Einlagerungen: 9
Verdrängungsstrategien
LRU-Strategie
- Seitenanforderungen: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
Referenzfolge |
|
1 |
2 |
3 |
4 |
1 |
2 |
5 |
1 |
2 |
3 |
4 |
5 |
Arbeitsspeicher |
Page 1 |
1 |
1 |
1 |
4 |
4 |
4 |
5 |
5 |
5 |
3 |
3 |
3 |
|
Page 2 |
|
2 |
2 |
2 |
1 |
1 |
1 |
1 |
1 |
1 |
4 |
4 |
|
Page 3 |
|
|
3 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
5 |
Kontrollzustand |
Page 1 |
0 |
1 |
2 |
0 |
1 |
2 |
0 |
1 |
2 |
0 |
1 |
2 |
|
Page 2 |
- |
0 |
1 |
2 |
0 |
1 |
2 |
0 |
1 |
2 |
0 |
1 |
|
Page 3 |
- |
- |
0 |
1 |
2 |
0 |
1 |
2 |
0 |
1 |
2 |
0 |
Anzahl Einlagerungen: 10
Verdrängungsstrategien
„Future“-Strategie
- Seitenanforderungen: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
Referenzfolge |
|
1 |
2 |
3 |
4 |
1 |
2 |
5 |
1 |
2 |
3 |
4 |
5 |
Arbeitsspeicher |
Page 1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
3 |
4 |
4 |
|
Page 2 |
|
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
|
Page 3 |
|
|
3 |
4 |
4 |
4 |
5 |
5 |
5 |
5 |
5 |
5 |
Kontrollzustand |
Page 1 |
4 |
3 |
2 |
1 |
3 |
2 |
1 |
- |
- |
- |
- |
- |
|
Page 2 |
- |
4 |
3 |
2 |
1 |
3 |
2 |
1 |
- |
- |
- |
- |
|
Page 3 |
- |
- |
7 |
7 |
6 |
5 |
5 |
4 |
3 |
2 |
1 |
- |
Anzahl Einlagerungen: 7
Verdrängungsstrategien
Übung - Strategie: FIFO
- Seitenanforderungen: 1, 4, 2, 5, 3, 2, 1, 4, 2, 5
Referenzfolge |
|
1 |
4 |
2 |
5 |
3 |
2 |
1 |
4 |
2 |
5 |
Arbeitsspeicher |
Page 1 |
|
|
|
|
|
|
|
|
|
|
|
Page 2 |
|
|
|
|
|
|
|
|
|
|
|
Page 3 |
|
|
|
|
|
|
|
|
|
|
Kontrollzustand |
Page 1 |
|
|
|
|
|
|
|
|
|
|
|
Page 2 |
|
|
|
|
|
|
|
|
|
|
|
Page 3 |
|
|
|
|
|
|
|
|
|
|
Anzahl Einlagerungen:
Verdrängungsstrategien
Übung - Strategie: FIFO
- Seitenanforderungen: 1, 4, 2, 5, 3, 2, 1, 4, 2, 5
Referenzfolge |
|
1 |
4 |
2 |
5 |
3 |
2 |
1 |
4 |
2 |
5 |
Arbeitsspeicher |
Page 1 |
1 |
1 |
1 |
5 |
5 |
5 |
5 |
4 |
4 |
4 |
|
Page 2 |
- |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
2 |
2 |
|
Page 3 |
- |
- |
2 |
2 |
2 |
2 |
1 |
1 |
1 |
5 |
Kontrollzustand |
Page 1 |
0 |
1 |
2 |
0 |
1 |
2 |
3 |
0 |
1 |
2 |
|
Page 2 |
- |
0 |
1 |
2 |
0 |
1 |
2 |
3 |
0 |
1 |
|
Page 3 |
- |
- |
0 |
1 |
2 |
3 |
0 |
1 |
2 |
0 |
Anzahl Einlagerungen: 9
Pageflattering
Wenn einem Prozess nicht genügend Pages zur Verfügung stehen, kann es passieren, dass sehr oft Pages nachgeladen / ersetzt werden müssen
Der Prozess verbringt mehr Zeit mit dem Warten auf den Speicher, als mit der eigentlichen Ausführung:
- Ursachen:
- Prozesse ohne Lokalität: Random Access auf große Speicherbereiche
- Zu viele Prozesse
- Schlechte Ersetzungsstrategie
- Lösung:
- Zuteilung einer genügend großen Anzahl von Pages
- Begrenzung der Prozessanzahl
- Codeoptimierung, sodass der Prozess lokaler arbeitet
Lokale vs. Globale Ersetzung
Es gibt zwei mögliche Varianten Pages zu ersetzen
- Lokale Ersetzung
- Ein Prozess ersetzt immer nur seine eigenen Pages
- Statische Zuteilung von Pages an Prozesse
- Nachladen / Ersetzen von Pages liegt in der Verantwortung der Prozesse
- Globale Ersetzung
- Ein Prozess ersetzt auch Pages anderer Prozesse
- Dynamisches Verhalten der Prozesse kann berücksichtigt werden
- Im Schnitt bessere Effizienz, da ungenutzte Pages von anderen Prozessen verwendet werden können
Prozesse und Speicher
Virtuelle Speicherverwaltung sorgt implizit dafür, dass mehrere Prozesse
nicht gegenseitig auf ihre Speicherbereiche zugreifen können
- Versucht ein Prozess auf eine Adresse zuzugreifen, für welche er selbst keinen Speicher allokiert hat, wird die dazugehörige Page nicht gefunden
- Es tritt ein Segmentation Fault auf
- Gezielt auf den Speicher anderer Prozesse kann nicht zugegriffen werden, da erst bei der Umsetzung der virtuellen Adresse der physikalische Speicher referenziert wird
Speicherbereinigung
Wird in einem Prozess Speicher dynamisch zur Laufzeit allokiert, muss
dieser auch irgendwann wieder freigegeben werden
- Wird der Speicher nicht freigegeben, steht dem Prozess irgendwann kein Speicher mehr zur Verfügung
- Der Prozess kann dies selbst tun
- z.B. in C/C++ mit free() oder delete()
- Volle Kontrolle über belegten Speicher, aber kompliziert
- Es kann eine automatische Speicherbereinigung (engl. Garbage Collection) verwendet werden
- z.B. in JAVA
- Ist bequem, entzieht dem Programmierer aber die Kontrolle über den Speicher
Speicherbereinigung
Vorteile der Speicherbereinigung
- Einige Programmierfehler im Umgang mit Speicher(De-)Allokation können vermieden werden
- Doppelte Freigabe von Speicher
- Zugriff auf bereits freigegebene Objekte
- Das Programm läuft möglicherweise schneller, da Speicher gezielt und gesammelt freigegeben werden kann
Speicherbereinigung
Nachteile der Speicherbereinigung
- Der Zeitpunkt der Garbage Collection ist nicht deterministisch und hängt von diversen Faktoren ab
- z.B. Belegung des Speichers
- Der Algorithmus zur Berechnung des Startzeitpunkts variiert von Plattform zu Plattform (z.B. von C# von JAVA)
- Aufgrund des non-Determinismus ist eine Garbage Collection nicht ohne Weiteres für Echtzeitsysteme geeignet
3.3 - Dateisysteme
Grundlegende Organisation, Beispiele
Lessons Learned
In diesem Kapitel geht es darum, folgende Dinge zu verstehen und zu
können
- Startsequenz eines Rechners
- Ablageorganisation für Daten
- Attribute
- Sicherheitsaspekte
- paralleler Zugriff
- Stromausfall kompensieren

Das BIOS (altgriechisch „βίος“, zu deutsch „Leben “) …
- … ist die Firmware bei x86-PCs
- … liegt im nichtflüchtigen Speicher auf der Hauptplatine eines PCs
- … leitet den Start des Betriebssystems ein.
- Power-On Selbsttest → alle Komponenten funktionsfähig?
- Hardwareinitialisierung → Netzwerkchip, Tastatur, Maus, …
- BIOS-Passwort, HDD-Passwort (sofern vorhanden)
- Darstellung Startbildschirm
- Bootsektor → Bootloader
- Hersteller: American Megatrends, ATI, Phoenix/Award, IBM, …
BIOS → UEFI
UEFI ist die zentrale Schnittstelle zwischen…

- … der Firmware, …
- … den einzelnen Komponenten eines Rechners …
- … und dem Betriebssystem
- Fokus auf 64-Bit Betriebssystemen
- Secure-Boot

MBR (Master Boot Record)

Der MBR ist der erste Sektor eines bootbaren Speichermediums
und enthält…
- … (optional) einen Bootloader
- 440 Byte Code + 6 Byte Zusatzinformationen
- … eine Partitionstabelle
- maximal 4 Partitioneneinträge zu je 16 Byte
- … eine Magic Number
MBR → GPT

Dateisysteme - Allgemeines
Das Dateisystem stellt eine Ablageorganisation für Daten auf einem Datenträger des Computers (z.B. der Festplatte) dar
- Dateien müssen geöffnet (lesend, schreibend) und wieder geschlossen werden können
- Dateinamen müssen auf die physikalischen Adressen auf dem Datenträger gemapped werden
- Spezielle Eigenschaften des Datenträgers (Festplatte vs. USB-Stick vs. …) müssen berücksichtigt werden
Dateien
Abhängig vom verwendeten Dateisystem haben Dateien unterschiedliche Attribute
- Generell haben Dateien folgende Attribute
- Dateiname
- Ablageort (Ordner, Verzeichnis)
- Größe
- Zugriffsrechte

Arten von Dateisystemen
Es gibt verschiedene Arten von Dateisystemen
- Lineare Dateisysteme
- Daten werden direkt hintereinander auf den Datenträger geschrieben
- Verwendung auf Lochkarten, Lochstreifen, Magnetbändern, …
- Hierarchische Dateisysteme
- Daten werden in einer Verzeichnisstruktur abgelegt
- Verwendung auf modernen Datenträgern (Festplatte, SSD, USB-Stick, …)
- Netzwerkdateisysteme
- Speicher auf Servern wird intern wie ein lokales Dateisystem verwendet, das Betriebssystem wandelt Zugriffe auf Dateien in Netzwerk-kommunikation um
- Verwendung auf modernen Systemen
Vergleich mehrerer Dateisysteme

Interessante Features von Dateisystemen:
-
- Clusterfähig
- Deduplicating
- Snapshots
- Verlinkbarkeit
- Zugriffsrechte
- …
Hierarchische Dateisysteme
Ausgehend vom sog. Wurzelverzeichnis werden Verzeichnisse und Dateien
hierarchisch organisiert

Hierarchische Dateisysteme

Sicherheitsaspekte
Dateisysteme müssen Mechanismen zur Behandlung bestimmter Situationen bereitstellen
- Paralleler Zugriff im Multitasking
- Bereitstellung von Locks für den Dateizugriff
- Locks können für die gesamte Datei oder nur bestimmte Bereiche (z.B. bei Datenbanksystemen) genutzt werden
- Stromausfall während einer Schreiboperation
- Es muss Datenkonsistenz gewährleistet werden
- Atomare Operationen, welche entweder abgeschlossen oder ausstehend sind
Journaling Dateisysteme
Alle Aktionen auf der Festplatte werden protokolliert und erst als gültig angesehen, nachdem das Beenden einer Aktion im Protokoll (Journal) vermerkt wurde
- Man unterscheidet zwischen Metadaten- und Full-Journaling
- Bei Metadaten-Journaling wird nur die Konsistenz des Dateisystems als solches gewährleistet
- Bei Full-Journaling wird zusätzlich die Konsistenz von Dateiinhalten gewährleistet
- Ein Journaling-Dateisystem arbeitet ähnlich, wie die Transaktionskontrolle eines Datenbankmanagementsystems
Journaling Dateisysteme – Beispiel
Eine Datei soll in ein anderes Verzeichnis verschoben werden
- Entferne den Eintrag der Datei aus dem Quellverzeichnis
- Füge den Eintrag der Datei dem Zielverzeichnis hinzu
- Beide Schritte werden zunächst nur im Journal vermerkt und nicht direkt ausgeführt
- Erst wenn ein Schritt auf dem Dateisystem vollständig korrekt vorgenommen wurde, wird der zugehörige Eintrag aus dem Journal gelöscht bzw. als erledigt markiert
- Stürzt das System z.B. durch einen Stromausfall, während der Änderungen am Dateisystem ab, können die Änderungen aus dem Journal erneut auf die Festplatte geschrieben werden
- Eventuell vor dem Absturz schon vorgenommene, aber nicht bestätigte Änderungen, werden überschrieben
FAT32 – File Allocation Table

NTFS – New Technology File System

Vergleich mehrerer Dateisysteme
|
ReFS |
Ext4 |
ZFS |
Größe einer Datei |
16 EiB – 1 Byte |
Größe des Dateisystems |
16 EiB |
Anzahl aller Dateien |
264 |
∞ |
248 |
Länge des Dateinamens |
255 Unicodezeichen |
255 Bytes |
∞ |
Größe des Dateisystems |
4 ZiB |
1 EiB |
256 ZiB |
Hauptsächlich genutzt bei… |
 |
 |
 |
Rechteverwaltung
Rechteverwaltung wird auf Multiuser-Systemen benötigt
- Dateien können z.B. für alle einsehbar (Lesezugriff), aber nur für den Systemadministrator änderbar (Schreibzugriff) gekennzeichnet werden
- Rechteverwaltung unter Windows relativ „neues“ Konzept
- Unter Windowssystemen erst ab NTFS als Dateisystem möglich

Rechteverwaltung unter Unix
user1@computer:~$ ls -la
insgesamt 76
drwxr-xr-x 15 user1 user1 4096 Aug 29 15:25 .
drwxr-xr-x 6 root root 4096 Aug 29 15:24 ..
-rw-r--r-- 1 user1 user1 3771 Aug 29 15:24 .bashrc
drwxr-xr-x 2 user1 user1 4096 Aug 29 15:24 Bilder
drwx------ 14 user1 user1 4096 Aug 29 15:25 .cache
drwx------ 12 user1 user1 4096 Aug 29 15:25 .config
drwxr-xr-x 2 user1 user1 4096 Aug 29 15:24 Dokumente
drwxr-xr-x 2 user1 user1 4096 Aug 29 15:24 Downloads
drwx------ 3 user1 user1 4096 Aug 29 15:24 .local
...
Rechteverwaltung unter Unix
Rechte |
|
Besitzer |
Gruppe |
Dateigröße |
Änderungsdatum |
Name |
drwxr-xr-x |
2 |
user1 |
user1 |
4096 |
Aug 29 15:24 |
Bilder |
- Das
d
am Anfang gibt an ob es sich um ein Verzeichniss handelt (anderfalls Datei)
- Rechte sind aufgeteilt in 3 Blöcke mit jeweils
r
ead, w
rite und ex
ecute
- Das
x
-Recht bei Verzeichnissen heisst traversieren (durchqueren)
- Die Blöcke stehen für Rechte des …
- Besitzers (
rwx
)
- der zugeordneten Gruppe (
r-x
)
- alle Anderen Benutzer (
r-x
)
3.4 - Bekannte Betriebssysteme
Windows, Linux, Mac OSX…
Disk Operating System

Windows Zeitleiste

Windows 3.1

Windows 98

Windows NT 4.0

Windows XP

Windows 7

Windows 8

Windows 10

Ubuntu Linux

Mac OS X

iOS

Android
