Systemsoftware und Verteilte Systeme

Implementierung einer Notenverwaltung

Individuelles Projekt BSc

Abgeschlossen am 2. Juli 2008 durch Boris Richter.PDF-Dokument

Ansprechpartner

Themengebiete

  • Übersetzerbau
  • e-Learning
  • Systemprogrammiersprache

Hintergrund

In der Abteilung Systemsoftware und verteilte Systeme wird zur Veranschaulichung von Algorithmen aus den Bereichen Betriebssysteme und verteilte Systeme eine Systemprogrammiersprache verwendet, die an die Sprachen Pascal und Modula-II angelehnt ist. Mittels der Systemprogrammiersprache ist es möglich, die wesentlichen Punkte eines Algorithmus prägnant darzustellen. Leider existiert für diese Sprache gegenwärtig nur eine "intuitive" Spezifikation und keine konkrete Implementierung in Form eines Parsers oder Übersetzers. Um den Studierenden der betroffenen Lehrmodule eine systematische Einarbeitung in die Systemprogrammiersprache zu ermöglichen, soll im Rahmen der Arbeit die Grundlage für ein interaktives Lernsystem gelegt werden, das - aufbauend auf einer Implementierung eines Systemprogrammiersprachenübersetzers - sowohl die Sprache selbst als auch relevante Anwendungen aus den Bereichen Betriebssysteme und verteilte Systeme zu vermitteln in der Lage ist.

Aufgabenbeschreibung

Konkret zu bewältigende Teilaufgaben:

  1. anhand der existierenden Algorithmen und der intuitiven, semi-formalen Sprachbeschreibung aus den Unterlagen zu den Veranstaltungen Praktische Informatik bzw. Betriebssysteme 1 (und ggf. Betriebssysteme 2 und Verteilte Betriebssysteme) soll die Syntax und Semantik der Systemprogrammiersprache - in Zusammenarbeit mit den Lehrenden der betreffenden Lehrmodule - formall spezifiziert werden
  2. es soll ein Übersetzer implementiert werden, der ein in der Systemprogrammiersprache geschriebenes Quellprogramm zunächst in einen Zwischencode und anschließend in eine der Zielsprachen C oder Java übersetzt
  3. auf dem Übersetzer aufbauend soll exemplarisch ein interaktives, web-basiertes, prototypisches ``Lernsystem'' für einige Inhalte der oben genannten Vorlesungen erstellt werden, z.B.:
    • die Systemprogrammiersprache selbst
    • Semaphorimplementierung
    • Prozeßzustandsmodell und Prozeßwechsel
    • Adreßumsetzung bei virtuellem Speicher
    • Seitenauslagerungsstrategien für virtuellen Speicher
    • UNIX-Dateiverwaltung mittels I-Node-Tabellen
    • verteilter gegenseitiger Ausschluß

Vorkenntnisse

  • Grundkenntnisse in Compilerbau (z.B. aus dem Compilerbau-Teil des Moduls Praktische Informatik)
  • Grundkenntnisse in Betriessystemen (z.B. aus dem Betriebssysteme-Teil des Moduls Praktische Informatik