1. Prozessverwaltung
1.1. Systemaufrufe
1.1.1. Benutzermodus
1.1.2. Kernelmodus
1.2. Prozesskontext
1.2.1. Systemkontext
1.2.2. Hardwarekontext
1.2.3. Benutzerkontext
1.3. Prozesszustände
1.3.1. 2 - Zustands - Prozessmodell
1.3.1.1. rechnend
1.3.1.2. untätig
1.3.2. 3 - zustands - prozessmodell
1.3.2.1. rechnend
1.3.2.2. untätig
1.3.2.3. blockiert
1.3.3. 5 - zustands - prozessmodell
1.3.3.1. rechnend
1.3.3.2. untätig
1.3.3.3. blockiert
1.3.3.4. neu
1.3.3.5. beendet
1.3.4. 6 - Zustands Prozessmodell
1.3.4.1. rechnend
1.3.4.2. untätig
1.3.4.3. blockiert
1.3.4.4. neu
1.3.4.5. beendet
1.3.4.6. suspendiert
1.3.5. 7 - Zustands - Prozessmodell
1.3.5.1. rechnend
1.3.5.2. kernel rechnend
1.3.5.3. untätig
1.3.5.4. blockiert
1.3.5.5. neu
1.3.5.6. beendet
1.3.5.7. suspendiert
1.3.6. Dispatcher
1.4. Prozesstabelle
1.4.1. Prozesskontrollblock
1.5. Sheduling
1.5.1. Sheduling Kriterien
1.5.2. Klassen von Sheduling Verfahren
1.5.2.1. Präemptives (verdrängendes) Sheduling
1.5.2.2. Nicht-präemptives (nicht verdrängendes) Sheduling
1.5.3. Shedulingverfahren
1.5.3.1. PrioritätengesteuertesScheduling
1.5.3.1.1. Statische Prioritäten
1.5.3.1.2. Dynamische Prioriäten
1.5.3.2. First come Frist Served
1.5.3.3. Round Robin
1.5.3.4. Shortes Job FIrst/Shortest Process Next
1.5.3.5. Longest Job First
1.5.3.6. Multilevel Sheduling
1.5.3.6.1. Multilevel Feedback Sheduling
1.5.3.7. Echtzeit Scheduling
1.5.3.7.1. Earliest Deadline First
1.5.3.7.2. Monotonic Raid
1.6. Interprozesskommunikation
1.6.1. Wettlaufsituationen
1.6.1.1. Kritische Abschnitte
1.6.1.2. Unkritische Abschnitte
1.6.1.3. Race Condition
1.6.2. Synchronisation von Prozessen
1.6.2.1. Signalisierung
1.6.2.1.1. Aktives warten
1.6.2.1.2. Passives warten
1.6.2.2. Schutz kritischer Abschnitte durch Sperren
1.6.2.2.1. Sperren
1.6.2.3. Deadlock
1.6.2.3.1. Bedingungen für ein Deadlock
1.6.2.3.2. Betriebsmittel Graphen
1.6.3. Kommunikation von Prozessen (kommunikationskonzepte)
1.6.3.1. Gemeinsamer Speicher
1.6.3.2. Nachrichtenwarteschlangen
1.6.3.3. Pipes
1.6.3.3.1. Anonyme Pipes
1.6.3.3.2. Benannte Pipes
1.6.3.4. Sockets
1.6.3.4.1. Verbindungslose Sockets (UDP)
1.6.3.4.2. Verbindungsorientierte Sockets (TCP)
1.6.3.5. Synchrone Kommunikation
1.6.3.6. Asynchrone Kommunikation
1.6.4. Kooperation von Prozessen und Threads
1.6.4.1. Semaphor
1.6.4.1.1. starke Semaphor
1.6.4.1.2. schwache Semaphor
1.6.4.1.3. Erzeuger Verbraucher Beispiel
1.6.4.2. Mutex
1.6.4.3. Monitor
1.6.4.4. Kooperation
1.6.4.4.1. Kommunikation
1.7. Thread
1.7.1. Thread vs Prozess
1.7.2. Multithreading
1.7.2.1. Vorteile
1.7.2.1.1. Empfänglich für User Input
1.7.2.2. Nachteile
1.7.2.3. Kommunikation zwischen Threads
1.7.2.4. Atomare Operationen
1.7.3. Scheduling
1.7.3.1. Klassen von Sheduling Verfahren
1.7.3.1.1. Präemptives (verdrängendes) Sheduling
1.7.3.1.2. Nicht-präemptives (nicht verdrängendes) Sheduling
1.7.4. Modelle
1.7.4.1. Kerne-Level-Threading (1:1)
1.7.4.2. User-Level Threading (N:1)
1.7.4.3. Hybrid Threading
1.8. Adressraum
1.8.1. Speicherungs Segmente
1.8.1.1. Stack
1.8.1.2. Heap
1.8.1.3. Data
1.8.1.4. Text
1.8.2. Fork
1.8.3. Programm Counter
1.9. Dispatching
2. 8/16/32/64 Bit
3. Betriebsarten
3.1. Stapelbetrieb (batch processing)
3.2. Dialogbetrieb (time sharing)
3.3. Einzelprogrammbetrieb (Single Tasking)
3.4. Mehrprogrammbetrieb (Multitasking)
3.4.1. Echtzeitbetriebsysteme
3.4.1.1. Harte Echtzeitbetriebsysteme
3.4.1.2. Weiche Echtzeitbetriebsysteme
3.4.1.3. Architekturen
3.4.1.3.1. Thin Kernel Architektur
3.4.1.3.2. Nano Kernel Architektur
3.5. Einzelbenutzerbetrieb
3.6. Mehrbenutzerbetrieb
4. Verteilte Betriebsysteme
5. Kernel
5.1. Architektur des Kernels
5.1.1. Monolithischer Kern
5.1.2. Minimaler Kern
5.1.3. Hybrider Kern
5.2. Funktionen
5.2.1. Bereitstellung von Systemaufrufen
5.2.2. Benutzerverwaltung
5.2.3. Ausführungsreihenfolge (sheduling)
5.2.4. Interprozesskomunikation
5.2.5. Prozessverwaltung
5.2.6. Prozessumschalter (Dispatcher)
5.2.7. Gerätetreiber
5.2.8. Speicherverwaltung
5.2.9. Dateisysteme
5.3. Schichten des kernels
5.3.1. User Space
5.3.2. Kernel Space
6. Hardwareverwaltung
7. Speicherverwaltung
7.1. Konzepte
7.1.1. Statische Partitionierung
7.1.2. Dynamische Paritionierung
7.1.2.1. Zuteilungskonzepte
7.1.2.1.1. First Fit
7.1.2.1.2. Next Fit
7.1.2.1.3. Best Fit
7.1.3. Buddy Speichwerverwaltung
7.2. Fragmentierung
7.2.1. interne Fragmentierung
7.2.2. externe Fragmentierung
7.3. Speicheradressierung
7.3.1. Real Mode
7.3.2. Protected Mode
7.3.2.1. Implementierungsvarianten
7.3.2.1.1. Seitenorientierter Speicher (Paging)
7.3.2.1.2. Segmentorientierter Speicher (Segmentierung)
7.3.2.2. Anforderungen
7.3.2.2.1. Relokation
7.3.2.2.2. Schutz
7.3.2.2.3. Gemeinsame Nutzung
7.3.2.2.4. Größere Speicherkapazität
7.3.2.2.5. Mapping
7.3.2.2.6. Swapping
7.4. Seitenersetzungsstrategien
7.4.1. Optimale Strategie
7.4.2. Last Recently Used (LRU)
7.4.3. Least Frequently Used (LFU)
7.4.4. First in First Out (FIFO)
7.4.5. Random
8. Dateisysteme
8.1. Blockadressierung bei Linux-Dateisysteme
8.1.1. Inodes
8.1.2. Metadaten
8.1.3. Cluster