Computerarchitektur_und_Betriebssysteme
Motivation
Hinweise für Studierende
Hinweise für Experten
Copyright
Computerarchitektur
Vom Anwender zur digitalen Schaltung
Erstmal aufschrauben
Von-Neumann-Rechner
Von-Neumann-Architektur
Von-Neumann-Flaschenhals
Komponenten eines Von-Neumann-Rechners
Zentraleinheit / CPU
Steuerwerk / Leitwerk
Rechenwerk
Speicherwerk
Ein- / Ausgabewerk
Gesamtbild eines Von-Neumann-Rechners
Von-Neumann-Zyklus
Animation der Zusammenarbeit
Eigenschaften eines Von-Neumann-Rechners
Digitale Schaltungen
Aufbau und Arbeitsweise eines Registers
Aufbau und Arbeitsweise des Speicherwerks
Aufbau und Arbeitsweise der ALU
Aufbau und Arbeitsweise eines Busses
Gatter
Prozessoren und ihre Befehle
Vom Quellcode zum Prozessor
Befehlssatz
Befehlsformat
Einadressformat
Zweiadressformat
Dreiadressformat
Das Adressformat und der Von-Neumann-Zyklus
Aufgaben & Co. zum Befehlsformat
Adressierungsarten
Unmittelbare Adressierung
Registeradressierung
Direkte/absolute Adressierung
Registerindirekte Adressierung
Indizierte Adressierung mit Verschiebung
Vom Programm zum Prozess
Gesamtbild der Programmausführung
Aufgaben & Co. zu Prozessoren
Weitere Komponenten der Computerarchitektur
Stackregister
Basisregister
Mehrere Prozesse gleichzeitig im Speicher
Swapping: Aus- und Einlagern von kompletten Prozessen
Limitregister zum Speicherschutz
Interrupt-Controller
Gründe für eine Interrupt-Auslösung
Speicherschutzverletzung
Quasi-gleichzeitige Ausführung mehrerer Prozesse
Kommunikation mit E/A-Geräten
Allgemeiner Aufbau eines Controllers
Zeit und Kosten machen den Unterschied
Datentransfer und Interrupts
DMA-Controller
Aufbau und Arbeitsweise eines DMA-Controllers
Direkt kann wirklich direkt bedeuten
MMU - Memory Management Unit
Moderne Bussysteme
Fazit Computerarchitektur
Betriebssysteme
Einführung Betriebssysteme
Geschichtlicher Überblick zu Betriebssystemen
Nur ein Prozessor mit einem Kern
Zwischen Benutzer und Hardware
Betriebsmittel
Betriebsmittel sind Prozessen zugeordnet
Zentrale Aufgabe eines Betriebssystems
Betriebssystemarchitekturen
Betriebssystemarten
Vom Batch-Job zum Multitasking
Kernel-Mode, User-Mode und Systemaufrufe
Prozessverwaltung
Prozess
Prozesskontext
Kontextwechsel
Die Statistik der Kontextwechsel unter Windows
Die Statistik der Kontextwechsel unter Linux
Prozesse erzeugen
Fork
CreateProcess
Prozesskontrollblock
Prozesskontrollblock unter Windows
Prozesskontrollblock unter Linux
Prozesstabelle
Prozesszustände
Verwalten von Prozessen
Prozessverwaltung aus Admin-Sicht unter Windows
Prozessverwaltung aus Admin-Sicht unter Linux
Threads
Java-Beispiel mit Threads
Prozesse und Threads unter Windows
Prozesse und Threads unter Unix und Linux
Scheduling
Scheduling-Ziele
Scheduling-Verfahren
First Come First Serve
Shortest Job First
Shortest Remaining Time Next
Round Robin
Priority Scheduling
Weitere Verfahren
Scheduling in gängigen Betriebssystemen
Vergleichskriterien
Synchronisation
Grundlegende Begriffsdefinitionen zur Synchronisation
Nebenläufigkeit
Race Conditions
Kritischer Abschnitt
Aktives Warten
Aktives Warten mit while
Das Problem des ungünstigsten Moments
Aktives Warten mit TSL
Semaphore
Mutex
Wechselseitiger Ausschluss
Reihenfolgedurchsetzung
Zählsemaphor
Erzeuger- / Verbraucherproblem
Philosophenproblem
Monitore
Zusammenfassung Synchronisation
Synchronisationstechniken moderner Betriebssysteme
Synchronisationsmechanismen in Programmiersprachen
Deadlocks
Vier Bedingungen nach Coffman
Deadlocks erkennen
Deadlocks ignorieren
Deadlocks vermeiden
Deadlocks verhindern
Deadlock-Fazit
Interprozesskommunikation
Zwei Threads kommunizieren über gemeinsame Variablen
Zwei Prozesse kommunizieren über gemeinsame Speicherobjekte
Zwei Prozesse kommunizieren über Shared Memory
Zwei Prozesse kommunizieren über Pipes
Zwei Prozesse kommunizieren über Sockets
Interprozesskommunikation-Fazit
Speicherverwaltung
Virtuelle Speicherverwaltung
Arbeitsweise der MMU
Seitentabellen
Einstufige Seitentabellen
Mehrstufige Seitentabellen
Swapping und Paging
Page Fault
Seitenersetzung
Was bei der Seitenersetzung passiert
Das Modifiziert-Bit
Seitenersetzungsverfahren
Optimaler Seitenersetzungsalgorithmus
NRU - Not Recently Used Algorithmus
FIFO - First In First Out Algorithmus
Second Chance Algorithmus
Working Set Algorithmus
Shared Memory
Speicherverwaltung moderner Betriebssysteme
Speicherverwaltung unter Linux
Speicherverwaltung in Windows
Speicherverwaltung unter Android
Geräteverwaltung
Rolle der Geräteverwaltung
Abhängig und gleichzeitig unabhängig
Gerätetreiber
Aufgaben eines Treibers
Initialisierung des Geräte-Controllers
Gerät dem Betriebssystem bekannt machen
Bereitstellen einer Schnittstelle zum Geräte-Controller
Interruptbehandlung für ein Gerät
Bereitstellen einer Schnittstelle zur Geräteverwaltung
Pufferung von Daten
Koordination nebenläufiger Zugriffe auf ein Gerät
Geräteklassen
Blockorientierte Geräte
Zeichenorientierte Geräte
Sonstige Geräte
Memory-Mapped-I/O
DMA - Direct Memory Access
Windows-Treiber auf GitHub
Dateiverwaltung
Datei
Dateisystem
Aufgaben eines Dateisystems
Dateisystemkonzepte
Von Windows unterstützte Dateisysteme
FAT - File Allocation Table
NTFS - New Technology File System
Aufgaben zur Prüfungsvorbereitung
Aufgaben zum Kapitel Vom Anwender zur digitalen Schaltung
Aufgaben zum Kapitel Prozessoren und ihre Befehle
Aufgaben zum Kapitel Weitere Komponenten der Computerarchitektur
Aufgaben zum Kapitel Einführung Betriebssysteme
Aufgaben zum Kapitel Prozessverwaltung
Aufgaben zu Prozesse und Threads
Aufgaben zum Scheduling
Aufgaben zur Synchronisation
Aufgaben zu Deadlocks
Aufgaben zum Kapitel Speicherverwaltung
Aufgaben zum Kapitel Geräteverwaltung
Aufgaben zum Kapitel Dateiverwaltung
Logbuch
Jahr 2013
Jahr 2014
Jahr 2015
Jahr 2016
Anhang
Zweier-Potenzen
Bits und Bytes
GiB, MiB, KiB im Vergleich zu GB, MB, KB
Java-Applets
Inhalt dieses LOOPs ausdrucken
Literatur
Impressum