Embedded Systems (ES)

Belegbar Sommersemester
ECTS-Punkte 10 (ca. 300 Stunden)
Fachgebiet Praktische Informatik

Ziel des Moduls

Eingebettete Systeme sind aus unserem Alltag nicht mehr wegzudenken und finden in sehr vielen Bereichen ihre Anwendung wie z.B. in der Telekommunikation, der Haushalt- und Unterhaltungselektronik, der industriellen Steuerungs- und Automatisierungssysteme und der Bürokommunikation. Sie werden in Zukunft eine dominierende Rolle übernehmen und in vielen Bereichen die bisher eingesetzten weniger flexiblen Lösungen ersetzen.

Dieses Modul führt ein in den Bereich der "Eingebetteten Systeme". Sie erhalten einen Einblick in deren zukünftige Bedeutung, lernen die theoretischen Grundlagen der Arbeitsweise kennen und üben im Rahmen eines mehrtägigen Präsenzpraktikums die Konfiguration und Inbetriebnahme solcher Systeme.

Inhalt des Moduls
  • Digitaltechnik
  • Rechnerarchitektur
  • Grundlagen von Betriebssystemen
  • Programmieren in C und Einführung in die Systemprogrammierung unter Linux
  • Echtzeitsysteme
  • Embedded Linux
Inhalt im Detail

ES 1: Digitaltechnik

  • Digital - Analog: Was ist Digital?; Codierung
  • Darstellung von Zahlen: Polyadische Zahlensysteme; Duales Zahlensystem; Oktalsystem; Hexadezimalsystem
  • Logische Verknüpfungen - Schaltalgebra: Formalismen und Definitionen; Algebraische Eigenschaften aussagenlogischer Verknüpfungen; Schaltnetze; Minimierung von Schaltfunktionen; Arithmetikschaltungen
  • Schaltwerke: Kippstufen; Bistabile Kippstufen (Flipflops); Endliche Automaten
  • Realisierung digitaler Funktionen: Kenngrößen; Die wichtigsten digitalen Schaltungsfamilien; Digitale Bauelemente in Form von integrierten Schaltkreisen
  • Grundlagen der programmierbaren Logik: Einleitung; PLA; PAL; GAL; FPGA, EPLD

ES 2: Rechnerarchitektur

  • Grundlagen: Der Begriff "Rechnerarchitektur"; Historische Entwicklung der Rechnersysteme; Prinzipieller Aufbau eines Rechnersystems; Darstellung und technische Verarbeitung von Informationen; Technologische Voraussetzungen von Rechnersystemen; Informationsdarstellung und -kodierung
  • Rechnerarchitekturen: Die Architektur des "Von-Neumann-Rechners"; Klassifikationsschema für Rechnerarchitekturen nach Flynn
  • Rechnerbaugruppen: Speicher; CPU; Ein-/Ausgabe
  • Weiterführende Konzepte der Rechnerarchitektur: Speichertechniken; RISC / CISC; Parallele Verarbeitung; Mehrprozessorsysteme – Verteilte Systeme

ES 3: Grundlagen von Betriebssystemen

  • Die Kurseinheit ist als Begleittext zu dem Buch "Mandl, Peter: Grundkurs Betriebssysteme, Verlag Springer Vieweg" konzipiert.
  • Einführung: Computersysteme, Entwicklung von Betriebssystemen
  • Betriebssystemarchitekturen und Betriebsarten: Zugriffsschutz in Betriebssystemen; Betriebssystemarchitekturen; Klassische Großrechnerbetriebsarten; Terminalserver-Betrieb; Verteilte Verarbeitung
  • Interruptverarbeitung: Interrupts; Systemaufrufe
  • Prozesse und Threads: Prozesse; Threads; Programmiermodelle für Threads; Prozesse und Threads in konkreten Betriebssystemen
  • CPU-Scheduling: Scheduling-Kriterien; Scheduling-Verfahren; Vergleich ausgewählter Scheduling-Verfahren
  • Synchronisation und Kommunikation: Grundlegendes; Konzepte; Synchronisationstechniken moderner Betriebssysteme; Synchronisationsmechanismen in Programmiersprachen; Kommunikation von Prozessen und Threads
  • Hauptspeicherverwaltung: Grundlegende Betrachtungen; Virtueller Speicher; Speicherverwaltung in ausgewählten Systemen

ES 4: Programmieren in C und Einführung in die Systemprogrammierung unter Linux

  • Einführung in die Programmiersprache C: Vor- und Nachteile der Sprache; Ein erstes C-Programm; Namen und reservierte Schlüsselwörter; Elementare Datentypen; Arrays, Strukturen, Unions und Zeiger; Operatoren; Kontrollstrukturen; Funktionen; Präprozessor-Anweisungen; Geltungsbereiche von Bezeichnern; Speicherklassen; Notwendigkeit und Vorteile einer Stilfibel
  • Linux-Systemtreiber: Hardwarezugriffe; Hardwarezugriffe aus dem User-Space; Systemtreiber aus Applikationssicht; Ladbare und nicht ladbare Systemtreiber; Block- und zeichenorientierte Treiber
  • Erstellen von Systemtreibern: Hallo-Welt-Treiber; Aufbau eines minimalen Systemtreibers; Beispiel: Null-Device-Systemtreiber; Testen von Treibern; Interruptverarbeitung im Treiber; Treibererweiterungen; Nützliche Regeln für Treiberentwicklung

ES 5: Echtzeitsysteme

  • Die Kurseinheit ist als Begleittext zu dem Buch "Zöbel, Dieter: Echtzeitsysteme, Springer-Verlag" konzipiert.
  • Einführung: Merkmale von Echtzeitsystemen; Grundmodell eines Echtzeitsystems; Prozesse; Echt und Zeit
  • Methodische und technische Grundlagen: Überblick über die Echtzeitplanung; Verteilte Echtzeitsysteme
  • Grundlegende Planungsverfahren: Planen durch Suchen; Planen nach dynamischen Prioritäten; Planen nach statischen Prioritäten
  • Fortgeschrittene Planungsverfahren

ES 6: Embedded Linux

  • Embedded Systems - warum Linux?
  • Grober Aufbau eines Embedded Systems unter Linux
  • Entwicklungs- und Testwerkzeuge
  • Skript-Programmierung (Bash)
  • Datenträger
  • Umgang mit Dateisystemen
  • Einsatz von Filesystemen beim Kernelstart
  • Busybox
  • Bootlader
  • Schnittstellen für Input/Output
  • GNU General Public License

Autoren

Umfang des Moduls
  • 6 Lehrhefte mit Übungsaufgaben
  • 2 Lehrbücher
  • Software
  • Präsenzpraktikum (1 Woche)
Empfohlene Vorkenntnisse

Grundkenntnisse in einer Programmiersprache.

Kursdauer
1 Semester

Kosten
zur Kostenübersicht Einzelmodule

Abschluss
Das Modul ist verwendbar für die Abschlüsse: