01801/01671 - Betriebssysteme/Rechnernetze und Datenbanken 1

Kursbeschreibung

Im Vergleich zur technischen Informatik (Computersysteme) ist der Kurs weniger mathematisch. Jedoch behandelt er derart viele Themen, dass die Teilbereiche Betriebssysteme, Rechnernetze und Datenbanken jeweils einen eigenen Kurs mit 10 ECTS verdient hätten. Es werden fast alle wichtigen Themen angesprochen und teilweise im Detail behandelt. Ich denke da nur an den Interruptvorgang (Unterbrechungseingang, Sicherung der Register, ...). Als Literaturempfehlung kann ich euch die gleichen Bücher ans Herz legen wie bei der technischen Informatik. Sobald man die Hauptspeicherverwaltung verstanden hat wird einem auch etwas klarer was es mit allem anderen auf sich hat. Für Datenbanken war das Buch von Kemper und Eickler ganz gut, welches ich jedoch nur ausgeliehen hatte.

Lernstrategie

Mündliche Prüfung. Viele Selbstgespräche wenn die Partnerin keine Lust hat sich zum x-ten Mal den Zustandswechsel eines Prozesses erklären zu lassen. Empfehle auch hier Mindmaps pro Kurseinheit und eine Mindmap für den kompletten Kurs. Die letzte Mindmap verwendet ihr dann um euch mündlich von Thema zu Thema zu hangeln und sehr wo Ihr noch Hänger habt oder unsicher seid.

Prüfung

Prüfung durfte ich bei Prof. Dr. Haake ablegen. Angenehm, auch wenn ich nicht immer wusste worauf er hinaus will. Wohlwollende Notenvergabe. Interrupt-Vorgang muss man in und auswendig kennen.

Kursinhalt

Betriebssysteme und Rechnernetze

Prozessor, Hauptspeicher, Cache, Sekundär- und Tertiärspeicher. Alles inklusive Aufbau und Ideen dahinter (Speicherhierarchie). Gerätesteuerung (virtuelles Gerät), Kapselung und Schichtenmodell, Unterbrechungen (Software, Hardware, Traps) und direkter Speicherzugriff (DMA) sowie PIO. Interrupt-Controller, Memory-mapped IO, Benutzer- und Systemmodus. Prozesszustände, Gerätezugriff im Detail, Programmier- und Benutzerschnittstelle. Parallelrechner, verteilte Systeme und Realzeitsysteme.

Hauptspeicherverwaltung mit Paging, Segmentierung usw. bis auf Detail-Ebene wie etwas abgebildet wird, Seitentabellen, Prozesssynchronisation (Semaphore, Mutex, atomare Operationen,...) mit dem Philosophen-Problem, Generierung von Prozessen (fork und clone), LWPs, Dateisysteme EXT und FAT sowie deren interne Struktur und Abbildung der Daten in diesen Dateisystemen, Inodes ("Wie viele Blöcke kann ich in einem Inode dressieren?"). Grundlagen in Linux, Rechteverwaltung.

Rechnernetze mit Kommunikation, Protokollen und Schichtenarchitektur. Aufbau des Internet, Netzwerkeinheiten, Versand von Nachrichten mit Multiplex und Demultiplex, PDUs, Verzögerungen in Routern, Bridges. Client- und Server-Modell. Protokolle im Detail (HTTP, FTP und SMTP), Schnittstellen. Programmierung Client und Server in Java. Transportschicht im Detail, Berechnung Checksummen und Header. UDP und TCP mit Zuständen im Detail, Sockets. Prinzipien der zuverlässigen Datenübertragung (Sequenznummern, Prüfsummen, etc.). Fensterbreite, Zeitdiagramm, Handshakes. Besprechung ICMP, Traceroute und Ping.

Vermittlungsschicht, Aufgaben und Ziele. Prinzipen Pfadermittlung, gewichtete Graphen, Dijkstra, global-dezentral, statisch-dynamisch, Link-State, DV, BGP4, RIP. Komplexität, Konvergenz, iteratives Verhalten, Berechnung der Distanztabellen, Bellman-Ford-Algorithmus, Routing-Schleifen und CTI-Problem, hierarchisches Routing, Inter-AS, Intra-AS, Adressierung in IPv4 und IPv6, Netzklassen und Subnetting bis zum Abwinken, DHCP, ICANN, Routing von IP Datagrammen, Hops, Fragmentierung, MTU, Pfadbestimmung und Fehlerbehandlung mit ICMP. Anycast, Sicherungsschicht, Bitübertragungsschicht, PCM-Verfahren.

Das waren die Stichpunkte für 01801. Und das ist nur 5 ECTS wert.

Datenbanken

Konzepte des DBS, DBMS, wie es früher war, Vorteile einer DB. Traditionelle Datenverwaltung, Satztypen, Feldtypen, Datenelemente. Redundanz, Inkonsistenz, Datenabhängigkeiten (sehr wichtig!), Inflexibilität. Logische Gesamtsicht, interne Sicht, externe Sicht. Konzeptuelles Modell, internes Modell, externes Modell. Transformationsregeln, DML, Query-Language, DDL. Physische Datenorganisation, internes Schema. Views. Aufgaben des DBMS. Zugriff im Detail (Systempuffer, User Work Area, etc.). Meta-Daten, Datendefinition, Recovery, Koordination. Tools und Utilities. Mathematisch: Beziehungen, Tupel, Attribute und Wertebereiche. Komplexität von Beziehungstypen, schwache und starke Entity-Typen. Modellierung mit dem ER-Modell, Vererbung und Partition.

Relationale Datenbanken, Domains. Modellierung und Darstellung als Tabelle. Schlüssel (Kandidaten, primär, sekundär), Abgeschlossenheit. Grundlegende Sprachen Relationenkalkül und Relationenalgebra (wichtig!), Beweis der Vollständigkeit. Algebra: Vereinigung, kartesisches Produkt, Projektion, Selektion, Differenz, Umbenennung. Kalkül: ebenso. Joins (wichtig!), natural, outer mit left und right. Kosten von Abfragen. Anschließend SQL bis zum abwinken. Nachdem man mit Algebra und Kalkül gequält wurde ist das kein Problem. Nun folgt das Transaktionsmodell, Konsistenz und Fehlerursachen sowie Integritätsbedingungen, Beginn und Ende von Transaktionen.   Kopplung von SQL an eine Programmiersprache (Cursor, embedded SQL, dynamisches SQL).

Prozeduren und Funktionen, Trigger (Syntax), Cursor. Nun folgt Optimierung von Abfragen mittels algebraischer Optimierung (wie es der Query-Prozessor auch macht): Operatorbäume, heuristische Regeln. Dann Optimierung auf physischer Ebene mittels Sekundärindex und Vorsortierung. Jetzt endliche die Implementierung eines DBMS mit Systempuffer-Manager (pinned Pages und forced Output), Zugriffsmanager als Ein-Tupel-Schnittstelle und Datenmanager. Anschließend im Detail der Entwurfsprozess einer Datenbank mit Machbarkeitsanalyse, Entwurf, Validierung, etc. Schwerpunkt liegt auf dem konzeptuellen Entwurf. Nun Abbildung des ER-Modells in die Datenbank mit der Transformation für Entity-Typen, Beziehungen, Supertyp- Hierarchien. Behandlung von Anomalien (Löschen, Einfügen, Ändern) durch 1., 2. und 3. Normalform sowie der BCNF. Nun funktionale Abhängigkeiten mit Closure (Hülle) als Basis der Normalformen, mathematische Definitionen.

Damit wären wir durch 3 Kurseinheiten Datenbank-Grundlagen durch. Auch nur 5 ECTS wert.

Buchempfehlung

Beitrag kommentieren