Hörsaalübung
0. Organisatorisches
Themen: Kennenlernen. Inhaltlicher Überblick übers Modul. Kurzer Ausflug in die Geschichte der Rechner. Ada Lovelace und Alan Turing. Stereotyp der 'männlichen Informatik'. Erwartungsmanagement. Raum für Fragen, Kritik und Rat. Prüfungsformat. Literaturhinweise.
1. Logikgatter
Themen: Bits darstellen mit Relais und Transistoren. Kurzer Überblick über die Halbleiterfertigung. Physikalische Herausforderungen. Grundlegende Logikgatter. Intuitive Schaltungsminimierung. Halb- und Volladdierer. Schaltpläne und Wertetabellen. Organisatorische Details.
2. Zahlen
Themen: Informationen zum Kursmaterial. Halb- und Volladdierer. Komplementdarstellung für Ganzzahlen mit Vorzeichen. Gleitkommazahlen nach IEEE 754-2008. Beispiele, Ausnahmen und Fallstricke.
3. Automaten
Themen: Algebraische und grafische Schaltungsminimierung. Latches, Flipflops und Register. Endliche Automaten: Entwurf, Zustandsgleichungen, kombinatorische Logik, Moore- und Mealy-Automaten. Zeichenkodierung in Unicode: Terminologie, Kodierung, Sicherheitsprobleme.
4. Speicher
Themen: Speicheradressierung. Einheiten. Räumliche und zeitliche Lokalität. Cache-Grundbegriffe. Organisationsstrukturen: Direkte, mengenassoziative und vollassoziative Abbildung.
5. Instruction Set Architecture
Themen: Überblick über verschiedene Befehlssatzarchitekturen, historisch und aktuell. Elemente einer Instruction Set Architecture am Beispiel RISC-V 32I. Datenpfad eines einfachen RISC-V-Rechners.
6. Pipelines und I/O
Themen: Fünfstufige Pipeline: Stufen, Datenpfad, Ausführungszeit, Hazards, NOPs, Forwarding. Input/Output: Dateizugriff in Unix, Systemaufrufe, Funktionen der C-Standardbibliothek (stat, open, read, lseek, close), Tracing (ltrace, strace). Auswertung des Zwischenfeedbacks.
7. Traps
Themen: Systematik der Unterbrechungen. Anwendung im Energiemanagement. Kontextwechsel zwischen User und Kernel Mode in einem einfachen Betriebssystem. Ressourcenzuteilung: Knappheit und Strategien. Aktuelle Scheduler. Live Coding zu I/O: Verteilte Zahlen einlesen.
8. Nebenläufigkeit
Themen: Toy Example: Verteilte Zahlen einsammeln. Threads: Aufteilung der Arbeit, praktische Umsetzung. Beobachtungen zum Laufzeitverhalten bei verschiedener Anzahl an Threads. Zugriff auf geteilten Speicher. Synchronisationsmechanismen: Semaphore, atomare Operationen.
9. Virtueller Speicher
Themen: Design-Entscheidungen im Speicherlayout. Virtueller Speicher. Seitenfehler. Einstufiges Paging: Seitentabelle, Adressübersetzung, Berechtigungen. Mehrstufiges Paging: Vorteile, Nachteile, Adressübersetzung. Ersetzungsstrategie Second-Chance-Algorithmus.
10. Multicore-Rechner
Themen: Evaluation. Caches: Migration und Replikation. Invarianten. Kohärenzprotokolle: Snooping- vs. Directory-basiert, Modified-Shared-Invalid-Protokoll und Zustände, False Sharing. Speicherkonisstenz: Sequential Consistency, Total Store Order, Schreibpuffer und Schreibweiterleitung. Petersons Algorithmus.
11. Verantwortung
Themen: Globaler Norden vs. Globaler Süden: Geisterarbeit, Clickwork, Content Moderation. Tech will fix this am Beispiel des Sustainable Development Goals 2: Zero Hunger. Ökonomie des Extraktivismus, Parallelen zum "Ressourcenfluch" im Kolonialismus. Auswirkungen von Informationstechnologie auf die Umwelt: Energieverbrauch von Rechenzentren, primäre und sekundäre Effekte, Graue Energie. Rohstoffgewinnung: Lithium und Kobalt, Arbeitsbedingungen im Bergbau. Technologie und Demokratie: Tech-Milliardäre und ihr Reichtum, Anfänge des Silicon Valley, Venture Capital, Broligarchie. Gelebte Verantwortung: ethische Bildung, praktische Hinweise, Fazit.