Grundlagen der Betriebssysteme

Praktische Einführung und Programmierung

Stefan Bosse

Universität Koblenz - FB Informatik

1 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick ::

Überblick

https://heiprotec.de/die-betriebssysteme-im-vergleich

2 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: Mitarbeiter

Mitarbeiter

  1. Prof. Dr. Stefan Bosse, Praktische Informatik (Vorlesung und Übung)

    • Verteilte Künstliche Intelligenz & Sensornetzwerke
    • Betriebssysteme & Virtualisierung
    • Technische Systeme
  2. WiMi Sidar Cilinc (Übung)

    • AG Praktische Informatik
  3. HiWi (Übung)

3 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: Aufbau der Veranstaltung

Aufbau der Veranstaltung

  1. Vorlesungen

    • Mittwoch 8-10 Uhr (Hauptstrang, Grundlagen)
    • On-line, Video (Nebenstrang: Tutorials, besondere Themen, wie z.B. C und Betriebssystemsprogrammierung)
  2. Übungen

    • Freitags 8-10 Uhr
  3. Digitale Übungsformate

4 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: Übungsformat

Übungsformat

Notebooks: Alle Übungen sind digital und werden im Web Browser bearbeitet (lokal, ggfs. off-line). Die Inhalte einer Übungseinheit werden als Datei im JSON Format gespeichert und hoch geladen.

  • Interaktive Übungen mit Fragen, Hinweisen, und Codesnippets.
5 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: Praktische Aufgaben

Praktische Aufgaben

Wie programmieren ein Betriebssystem (basekernel) in der Programmiersprache C.

  • Oder zumindest werden kleine Änderungen vorgenommen

  • Das Betriebssystem wird in einem Emulator vm86 in einem Web Browser (!) ausgeführt.

  • Elementare Konzepte von Betriebssystemen, deren Programmierung und Softwareentwurf sowie das Testen wird praktisch erlernt.

6 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: Leistungskriterien

Leistungskriterien

  1. Übungen

    • Bearbeitung der Übungseinheiten in Einzelarbeit (in Gruppe)
    • Abgabe eines Übungszettels in digitaler Form als Gruppe (JSON Datei)
    • Abgabe aller Übungszettel (pro Gruppe)
    • Einfaches Bewertungsschema 0/1/2
  2. Klausur

    • 60-90 Minuten
    • Vor allem Wissensabfrage und Verständnis
    • Minimale C Programmierung (eher Snippets)
    • Diagramm- und tabellenbasiertes Lösen
7 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: Inhalte

Inhalte

  1. Taxonomie der Betriebssysteme, Grundlagen
  2. Das Speichermodell und die Programmiersprache C
  3. Eine Einführung in die Programmiersprache C
  4. Prozesse: Programme in Ausführung
  5. Virtualisierung und Virtuelle Maschinen
  6. Scheduling
  7. Echtzeitbetriebssysteme und Eingebettete Systeme
  8. Speicherverwaltung, Virtueller Speicher
  9. Dateisysteme, Ein- und Ausgabe
  10. Synchronisation, Netzwerkkommunikation
8 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: Ressourcen

Ressourcen

  • Alle Materialien auf https://edu-9.de/Lehre/bs1k
    • Folien im HTML/PDF Format
    • Gesammelte Inhalte im epub Format
    • Videos
    • Software
    • Literatur
    • Übungen
9 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: Betriebssysteme und Rechnerarchitekturen

Betriebssysteme und Rechnerarchitekturen

  • Zuerst war die Rechenmaschine da.
  • Dann stellte man fest dass die Hardware organisiert und strukturiert werden musste.
  • Und es kamen die Betriebssysteme ....

Betriebssysteme und Virtuelle Maschinen sind eng verwandt. Es folgt ein erstes Beispiel eines Einplatinencomputers My4th.

10 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: My4th

My4th

  • Ein vollständiger Computer, aber ohne einen Mikroprozessor!
  • Praktisch eine Software Virtual Machine (SVM)
  • Die Recheneinheit besteht aus einem NOR Logikgatter und einem Register (Flip-Flop, 1 Bit ALU)
  • Aufgebaut mit Komponenten aus den 1980 Jahren!
  • Vollständig über einer serielle Schnittstelle programmierbar.
  • Eingabe: Programmtext
  • Software: Compiler, Interpreter, Ein- und Ausgabe - ein Betriebssystem!
  • Ausgabe: Textausgabe
11 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: My4th

My4th

Minimaler aber vollständiger Computer basierend auf einem Stapelspeicher!

  • Das Rechenwerk besteht nur aus einem Logikgatter und einem Datenregister!
  • Berechnungen werden seriell ausgeführt.
  • Vollständiges Softwaresystem: FORTH (Programmiersprache, Übersertzer und Prozessor)
  • Im Grunde ist dieser Rechner eine Software Maschine: Die meisten Rechneroperationen werden durch Mikroinstruktionen aus dem Festspeicher (ROM) oder mit Tabellen ausgeführt (z.B. Schiebeoperation mit Tabelle).
  • Vollständige Virtuelle Maschine: Abstraktion der Betriebsmittel durch FORTH
  • Autor und Designer: Dennis Kuschel, Bremen
12 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: My4th

My4th Architektur

13 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: My4th

My4th Platine mit Mikroschaltungen

14 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: My4th

15 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: My4th

My4th

Der elektronische Schaltplan

16 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: My4th

My4th

Über die serielle Schnittstelle können Programme eingegeben und Ergebnisse abgerufen werden! Ein Terminal.

  • FORTH basiert auf dem Prinzip des Stapelspeichers: Zuerst rein, zuletzt raus!
  • Anstelle print(10 + 5) muss man in umgekehrter Reihenfolge alles eingeben: 5 10 + .
  • Der „Punktbefehl“ gibt den obersten Wert auf dem Stapelspeicher aus (print).

17 / 18

Stefan Bosse - Grundlagen der Betriebssysteme - Modul 0 Überblick :: 10biForthOS

10biForthOS

  • Ein "vollständiges" 8086 CPU OS in 46 Bytes!
  • 10biForthOS = 10b (2) i (Anweisungen) Forth OS ist ein sehr primitives Forth mit nur zwei Anweisungen:

    • 1 kompiliert einen Befehl
    • 0 führt den Befehl aus
  • Vollständiger Binärekode des OS:

50b8 8e00 31d8 e8ff 0017 003c 0575 00ea
5000 3c00 7401 eb02 e8ee 0005 0588 eb47
b8e6 0200 d231 14cd e480 7580 c3f4

Bootloader. Es kann Befehle über eine serielle Verbindung oder von einer Tastatur empfangen. Dies ermöglicht es einem Host-Computer, komplexere Software Byte für Byte darauf zu laden.

1 B8 1 00 1 7E 1 8E 1 C0 1 30 1 FF 1... 0

18 / 18