« »

Vorlesung

Vorschau der Datei

1. Alles ist eins – außer der Null

Themen: Syllabus. Geschichtlicher Hintergrund. Zahlen- und Stellenwertsysteme. Binärsystem. Schaltungen und Wertetabellen. Logische Gatter. Halbaddierer und Addierer. Gatterverzögerung. Transistoren.

Vorschau der Datei

2. Struktur von Computersystemen und HW/SW-Schnittstellen

Themen: Hardware- und Softwareebenen. Literatur. Computeraufbau. Funktionsweise einer Maus als motivierendes Querschnitts-Beispiel für Hardware, Zustände, Schnittstellen, Datenübertragung, Berechnungen und Anzeige.

Vorschau der Datei

3. Minimierung und Endliche Automaten

Themen: Logikfunktionen und Boolesche Algebra. Minterme. Normalformen. Schaltungssynthese. Minimierung (algebraisch, KV-Diagramme, Quine-McCluskey-Algorithmus). Schaltwerke. Latches. Flipflops. Endliche Automaten (Moore und Mealy). Zeitdiagramme.

Vorschau der Datei

4. Rechnerarithmetik

Themen: Stellenwertsysteme. Oktal- und Hexadezimalzahlen. Ganze Zahlen im Einerkomplement, Zweierkomplement und Exzess-Code. Wertebereiche. Fest- und Gleitkommazahlen. Zeichendarstellung in ASCII, ISO-Latin-1 und Unicode.

Vorschau der Datei

5. Speicher

Themen: Arbeitsspeicher: Statisch und Dynamisch, Adressierung, Entwurfsziele. Performance-Lücke. Speicherhierarchie. Lokalität. Caches: Funktionsweise, Aufbau, Organisationsformen, Schreibverfahren, Ebenen, Austauschverfahren.

Vorschau der Datei

6. Von Bits zu Prozessoren

Themen: Wiederholung: Endliche Automaten, Kombinatorische Logik, Volladdierer, Multiplexer, Register. RISC-V als Prozessorarchitektur. Übersetzung von Hochsprachen in Assembler: Instruktionen, Direktiven, Pseudoinstruktionen, Kontrollfluss. Datenpfad eines RISC-V-Prozessors. Steuerwerk. Instruktionsaufbau mit Opcodes, Immediates, Registern, Formaten.

Vorschau der Datei

7. Von Pipelines und Kontrollpfaden

Themen: Wiederholung: RISC-Prozessorstruktur, Register, Programmzähler, Speicher, Instruktionsaufbau. Datenpfad einer Immediate-Instruktion. Steuerwerk: Multiplexer, Schreibsteuerung. Pipelining: Grundprinzip, Stufen, erweiterter Datenpfad, Konflikte. Prozessor-Performance: Latenz, Durchsatz, Zyklen pro Instruktion.

Vorschau der Datei

8. Ein- und Ausgabe

Themen: Ein- und Ausgabegeräte: Schnittstellen, Busse, Controller, I/O-Register. Beispiele: Tastatur, Grafikkarte, IDE-Festplatte, Ethernet. Character vs. Block Devices vs. Beschleuniger. Exceptions vs. Traps vs. Interrupts. Interrupts bei RISC-V: CLINT, PLIC, CSRs, mcause. Adressräume. Interrupts vs. Direct Memory Access vs. Polling bei Gerätetreibern. Betriebssystemaufgaben. Unix-API für Gerätezugriff: Everything is a file, Abstraktionen, Systemaufrufe, Gerätetreiber. Serielle und parallele Datenübertragung. UARTs und RS232.

Vorschau der Datei

9. Vom Programm zum Prozess

Themen: Schritte der Quellcode-Übersetzung. Präprozessor. Compiler: Lexikalische Analyse, Syntaxanalyse, Semantische Analyse, Codeerzeugung, Codeoptimierung. Assembler: Speichersektionen und -layout, Heap und Stack. Linker. Loader. ELF-Dateien und -sektionen. Funktionen bei RISC-V: Registerkonventionen, Stackstruktur, RÜcksprung, Label. Ausblick auf Betriebssysteme.

Vorschau der Datei

10. Hardware-/Software-Schnittstellen

Themen: Isolation als Sicherheitsmechanismus. Adressräume. Systemaufrufe. Privilegienmodi in RISC-V.

Vorschau der Datei

11. Prozesse und das Betriebssystem

Themen: Interaktion mit dem Betriebssystem. C-Standardbibliothek. Prozesse: Process Control Block, Zustände. Zuteilungsstrategien: First-Come First-Served, Round Robin, Shortest Process Next. Systemaufrufe fork, _exit, getpid, execve, …. Besondere Prozesse: Init, Orphans, Zombies.

Vorschau der Datei

12. Ressourcen und Synchronisation

Themen: Wiederholung: Zuteilungsstrategien: First-Come First-Served, Round Robin, Shortest Process Next. fork, exec und vfork. Prozesse, Threads und Fibres. Race Conditions. Synchronisation. Kritischer Abschnitt. Lockvariablen. Deaktivieren von Interrupts. Atomare Instruktionen. Aktives vs. passives Warten.

Vorschau der Datei

13. Semaphore und Sicherheit

Themen: Passives Warten. Semaphore. Einfache vs. ressourcenorientierte Synchronisation. Leser-Schreiber-Problem. Deadlocks: Bedingungen, Ressourcenallokationsgraph, Dining Philosophers, Verhinderung, Erkennung, Auflösung. Livelocks. Sicherheit: Funktional vs. aus IT-Sicherheitsperspektive. Viren, Würmer, Trojaner, Rootkits, Phishing, Pharming. Zugriffsrechte. Principle of Least Privilege. Separation of Concerns. Zugriffmatrix, Access Control Lists, Capabilities. Unix-Zugriffsrechte.

Vorschau der Datei

14. Persistente Speicherung: Dateisysteme

Themen: Hintergrundspeicher. Dateiabstraktionen. Dateizugriffe. Unix Virtual File System: Switch, Mounting. Dateispeicherung: Zusammenhängend vs. verkettete Listen. FAT: Funktionsweise, Probleme, Fragmentierung. Indexierter Speicher. Inodes: Struktur, Diskussion. Freispeicherverwaltung. Verzeichnisverwaltung: Listen, Hashfunktionen. Anwendungsbeispiele: Unix System V, Berkeley Fast File System, ext2/3/4.

Vorschau der Datei

15. Virtueller Speicher

Themen: Virtueller Speicher als Konzept. Memory Panagement Unit. Paging. Seitenfehler. Ersetzungsstrategien: First-In First-Out, Optimal, Least Recently Used, Second Chance. Seitentabelleneinträge. Einstufige und mehrstufige Tabellen. Adressübersetzung. Translation Lookaside Buffer. Adressen in RISC-V.

Vorschau der Datei

16. Cachekohärenz und Speicherkonsistenzmodelle

Themen: Mehrprozessorsysteme. Cachekohärenz. Write Propagation und Write Serialization. "Single-Write Multiple-Reader"-Invariante. "Data Value"-Invariante. "Write Through"- und "Write Back"-Caches. Kohärenzprotokolle: Snooping- vs. verzeichnisbasiert, invalidierungs- vs. updatebasiert. MSI-Protokoll. MESI-Protokoll. Speicherkonsistenz: Sequenzielle Konsistenz und Total Store Order. Store Buffer. Data Races.

Vorschau der Datei

17. Kommunikation: Interprozesskommunikation und Netzwerke

Themen: Interprozesskommunikation (IPC). Shared Memory. Message Passing: Synchron vs. asynchron, direkte vs. indirekte vs. Gruppenadressierung, Nachrichtenformat, Übertragungsarten. Unix-Signale. Unix-Pipes. Internet-Kommunikation: HTTP, URLs DNS, TCP/IP-Sockets, Remote Procedure Calls.