UnivIS
Informationssystem der Friedrich-Alexander-Universität Erlangen-Nürnberg © Config eG 
FAU Logo
  Sammlung/Stundenplan    Modulbelegung Home  |  Rechtliches  |  Kontakt  |  Hilfe    
Suche:      Semester:   
 
 Darstellung
 
Druckansicht

 
 
Modulbeschreibung (PDF)

 
 
 Außerdem im UnivIS
 
Vorlesungs- und Modulverzeichnis nach Studiengängen

Vorlesungsverzeichnis

 
 
Veranstaltungskalender

Stellenangebote

Möbel-/Rechnerbörse

 
 
>>

Systemsoftwaretechnik (SST)7.5 ECTS
(englische Bezeichnung: Systems Software Engineering)

Modulverantwortliche/r: Daniel Lohmann
Lehrende: Wolfgang Schröder-Preikschat, Daniel Lohmann


Startsemester: SS 2015Dauer: 1 SemesterTurnus: jährlich (SS)
Präsenzzeit: 90 Std.Eigenstudium: 135 Std.Sprache: Deutsch

Lehrveranstaltungen:


Empfohlene Voraussetzungen:

Es wird empfohlen, folgende Module zu absolvieren, bevor dieses Modul belegt wird:

Betriebssysteme-V+Ü (WS 2014/2015)
Systemprogrammierung (SS 2013)


Inhalt:

Schwerpunktthema der Veranstaltung ist die Verwaltung von Prozessadressräumen. Untersucht werden Verfahren und Techniken zur Trennung logischer Adressräume, zum Adressraumgrenzen überschreitenden Zugriff und zum Schutz von Prozessen. Vorgestellt wird die Implementierung von Systemaufrufen und seiten- wie auch segmentbasierte Techniken zur Abbildung logischer/virtueller Adressräume auf reale. Vor diesem Hintergrund werden verschiedene Betriebssystemarchitekturen verglichen und gängige Adressraummodelle von Betriebssystemen erläutert.
Letztlich sind Architektur und Abstraktionen des "idealen Betriebssystems" immer abhängig von der konkreten Anwendung und Hardware. Im Rahmen der Lehrveranstaltung werden daher außerdem moderne Methoden zum Entwurf und zur Implementierung von Software-Produktlinien betrachtet. Dabei wird ein besonderes Augenmerk auf die Eignung im Bereich von eingebetteter Systemsoftware gelegt, welche nicht nur schön, d. h. zum Beispiel wartungsfreundlich, sondern vor allem schlank, d. h. klein im Ressourcenverbrauch, sein muss.

Lernziele und Kompetenzen:


Studierende, die das Modul erfolgreich abgeschlossen haben:

  • erläutern und implementieren Entwurfsprinzipien für Systemaufrufe und diskutieren deren spezifischen Vor-/Nachteile.

  • vergleichen grundlegende BS-Architekturen (Monolith, Mikrokern, Makrokern, Exokern) anhand fundamentaler Charakteristika (Robustheit, Performanz, Portierbarkeit) und deren Einfluss auf die Implementierung von Mechanismen (Systemaufrufe, Addressraumschutz).

  • unterscheiden Hierarchiekonzepte des Softwareentwurfs (Benutzthierachie, funktionale Hierachie) und erläutern deren Implikationen beim Betriebssystementwurf.

  • klassifizieren Schutz-, Verwaltungs-, und Virtualisierungstechniken für Programmzustände (Seitennummerierung, Segementierung, Sprachbasierung, Capabilities) und implementieren diese auf der IA-32-Architektur

  • Diskutieren Adressraummodelle (Mehradressraummodell, Einadressraummodell, mehrstufige und inverse Seitenabbildungen, Mitbenutzung) und deren Implementierbarkeit auf gängigen Hardwarearchitekturen.

  • Implementieren Mechanismen und Abtraktionen zur Interprozesskommunikation.

  • Diskutieren das Zusammenspiel zwischen Kommunikation und Synchronisation im Bezug auf die besonderen Herausforderungen bei der Implementierung von Betriebssytemabstraktionen (lost wakeup, lost update, gepufferte/ungepufferte Zugriffe)

  • Diskutieren Prinzipien der Mitbenutzung von Code und Daten unter Berücksichtigung der Betriebssystem- und Addressraumarchitektur.

  • Erläutern die Funktionsweise eines Bindeladers und skizzieren effiziente Implementierungstechniken für positionsunabhängige Strukturen.

  • Erläutern Prinzipien der produktlinienbasierten Entwicklung statisch konfigurierbarer Systemsoftware.

  • Beherrschen Prinzipen des merkmalbasierten Softwareentwurfs (FODA) und die Modellierung einer Domäne mit Merkmalmodellen.

  • Unterscheiden Implementierungstechniken für statische Variabilität in Systemsoftware (dekompositional, kompositional, generativ) und deren spezifischen Vor-/Nachteile.

  • Verstehen und erläutern am Beispiel von Linux die softwaretechnischen Herausforderungen bei der Entwicklung hochgradig konfigurierbare Systemsoftware.

  • Implementieren Konfigurationsoptionen im Betriebssystem mit Hilfe aspektorientieter Entwurfs- und Programmiertechniken.

  • Beherschen die Sprache AspectC++ und setzen sie zielgerichtet zur Implementierung konfigurierbarer Systemabstraktionen ein.

    • erschließen sich typische Probleme (Nebenläufigkeit, Compilerverhalten, Debuggen ohne dedizierte Hilfsmittel) und Fehlerquellen bei der hardwarenahen Softwareentwicklung.

    • können in Kleingruppen kooperativ arbeiten.

    • können die ihre Entwurfs- und Implementierungsentscheidungen kompakt präsentieren und argumentativ vertreten.

    • reflektieren ihre Entscheidungen kritisch und leiten Alternativen ab.

    • können offen und konstruktiv mit Schwachpunkten und Irrwegen umgehen.

Literatur:

  • Wolfgang Schröder-Preikschat. The Logical Design of Parallel Operating Systems. Prentice Hall.
  • Brian W. Kernighan, Dennis M. Ritchie. The C Programming Language. Prentice Hall.

  • David M. Weiss, Chi Tau Robert Lai. Software Product-Line Engineering: A Family-Based Software Development Process. Addison-Wesley.

  • Krysztof Czarnecki, Ulrich W. Eisenecker. Generative Programming. Methods, Tools and Applications. Addison-Wesley.

  • Bjarne Stroustrup. The C++ Programming Language. Englewood Cliffs.

  • Richard M. Stallman. Using GCC: The GNU Compiler Collection Manual. GNU Press.

  • Robert Mecklenburg. Managing Projects with GNU Make. O’Reilly.

  • Richard M. Stallman, Roland Pesch, Stan Shebs. Debugging with GDB: The GNU Source-Level Debugger. GNU Press.


Weitere Informationen:

www: http://www4.informatik.uni-erlangen.de/Lehre/SS15/V_KSS/

Studien-/Prüfungsleistungen:

Systemsoftwaretechnik (Vorlesungen mit Übungen) (Prüfungsnummer: 701398)

(englischer Titel: Systems Software Engineering)

Prüfungsleistung, mehrteilige Prüfung, benotet
Anteil an der Berechnung der Modulnote: 100.0 %
weitere Erläuterungen:
30-minütige mündliche Prüfung + erfolgreiche Teilnahme an den Übungen + erfolgreiche Bearbeitung aller Übungsaufgaben

Erstablegung: SS 2015, 1. Wdh.: WS 2015/2016
1. Prüfer: Daniel Lohmann

UnivIS ist ein Produkt der Config eG, Buckenhof