Informatik/Advanced Operating Systems.md
2021-10-14 10:15:47 +02:00

7.5 KiB

Einführung

Betriebssysteme stecken nicht nur in Einzelplatzrechnern, sondern z.B. auch in:

  • Informationssystemen
    • Gesundheitswesen
    • Finanzdienstleister
  • Verkehrsmanagement-Systemen
    • Eisenbahn
    • Flugwesen
  • Kommunikationssystemen
    • Mobilfunk
    • Raumfahrt
  • eingebettetenSystemen
    • Multimedia
    • Fahrzeugsysteme
    • Sensornetze
  • ... \rightarrow verschiedenste Anforderungen!

Konsequenz: Spezialbetriebssysteme für Anforderungen wie ...

  • Robustheit
  • Echtzeitfähigkeit
  • Energieeffizienz
  • Sicherheit
  • Adaptivität
  • ...

Gegenstand dieser Vorlesung: Konstruktionsrichtlinien für solche ,,High-End Betriebssysteme''

Funktionale und nichtfunktionale Eigenschaften

  • Beispiel: Autokauf ,,Mit unserem Fahrzeug können Sie einkaufen fahren!''

  • Beispiel: Handykauf ,,Mit unserem Telefon können Sie Ihre Freunde und Familie anrufen!''

  • Anforderungen (Requirements)

    • Funktionale und nichtfunktionale Eigenschaften (eines Produkts, z.B. Softwaresystems) entstehen durch Erfüllung von funktionalen und nichtfunktionalen Anforderungen
  • funktionale Eigenschaft

    • legt fest, was ein Produkt tun soll.
    • Bsp Handykauf: Das Produkt soll Telefongespräche ermöglichen.
  • eine nichtfunktionale Eigenschaft (NFE)

    • legt fest, wie es dies tun soll, also welche sonstigen Eigenschaften das Produkt haben soll.
    • Bsp Handykauf: Das Produkt soll klein, leicht, energiesparend, strahlungsarm, umweltfreundlich,... sein.
  • andere Bezeichnungen nichtfunktionaler Eigenschaften

    • Qualitäten bzw. Qualitätsattribute (eines Software-Produkts):
      • Nichtfunktionale Anforderungen bzw. Eigenschaften eines Software-Systems bzw. -Produkts oft auch als seine Qualitäten bezeichnet.
      • einzelne realisierte Eigenschaft ist demzufolge ein Qualitätsattribut (quality property) dieses Systems bzw. Produkts.
    • Weitere in der Literatur zu findende Begriffe in diesem Zusammenhang:
      • Non-functionalrequirements/properties
      • Constraints
      • Quality ofservice(QoS) requirements
      • u.a.
  • ,,~ilities''

    • im Englischen:nichtfunktionale Eigenschaften eines Systems etc. informell auch als seine „ilities“ bezeichnet, hergeleitet von Begriffen wie
      • Stability
      • Portability
      • ...
    • im Deutschen: ( ,,itäten'',,,barkeiten'', ... möglich aber sprachästhetisch fragenswert)
      • Portab-ilität , Skalier-barkeit, aber: Offen-heit , Performanz, ...

Konsequenzen für Betriebssysteme

Hardwarebasis

Einst: Einprozessor-Systeme

Heute:

  • Mehrprozessor-Systeme
  • hochparallele Systeme
  • neue Synchronisationsmechanismen erforderlich
  • \rightarrow unterschiedliche Hardware und deren Multiplexing aufgrund unterschiedlicher nichtfunktionaler Eigenschaften

Betriebssystemarchitektur

Einst: Monolithische und Makrokernel-Architekturen

Heute:

  • Mikrokernel(-basierte) Architekturen
  • Exokernelbasierte Architekturen ( Library-Betriebssysteme )
  • Virtualisierungsarchitekturen
  • Multikernel-Architekturen
  • \rightarrow unterschiedliche Architekturen aufgrund unterschiedlicher nichtfunktionaler Eigenschaften

Ressourcenverwaltung

Einst: sog. Batch-Betriebssysteme: Stapelverarbeitung von Jobs (FIFO, Zeitgarantie: irgendwann)

Heute:

  • Echtzeitgarantien für Multimedia und Safety-kritische Anwendungen (Unterhaltung, Luft-und Raumfahrt, autonomes Fahren)
  • echtzeitfähige Scheduler, Hauptspeicherverwaltung, Ereignismanagement, Umgangmit Überlast und Prioritätsumkehr ...
  • \rightarrow unterschiedliche Ressourcenverwaltung aufgrund unterschiedlicher nichtfunktionaler Eigenschaften

Betriebssystemabstraktionen

  • zusätzliche Abstraktionen und deren Verwaltung ...
    • ... zur Reservierung von Ressourcen (\rightarrow eingebettete Systeme)
    • ... zur Realisierung von QoS-Anforderungen (\rightarrow Multimediasysteme)
    • ... zur Erhöhung der Ausfallsicherheit (\rightarrow verfügbarkeitskritische Systeme)
    • ... zum Schutz vor Angriffen und Missbrauch (\rightarrow sicherheitskritische Systeme)
    • ... zum flexiblen und modularen Anpassen des Betriebssystems (\rightarrow hochadaptive Systeme)
  • \rightarrow höchst diverse Abstraktionen von Hardware aufgrund unterschiedlicher nichtfunktionaler Eigenschaften

Betriebssysteme als Softwareprodukte

  • Betriebssystem:
    • eine endliche Menge von Quellcode, indiziert durch Zeilennummern: MACOSX = \{0, 1, 2, ..., 4399822, ...\}
    • ein komplexes Softwareprodukt ...welches insbesondere allgemeinen Qualitätsanforderungen an den Lebenszyklusvon Softwareprodukten unterliegt!
  • an jedes Softwareprodukt gibt es Anforderungen an seine Nutzung und Pflege \rightarrow Evolutionseigenschaften
  • diese können für Betriebssysteme höchst speziell sein (Korrektheitsverifikation, Wartung, Erweiterung, ...)
  • \rightarrow spezielle Anforderungen an das Softwareprodukt Betriebssystem aufgrund unterschiedlicher nichtfunktionaler Eigenschaften

NFE von Betriebssystemen

Funktionale Eigenschaften (= Funktionen, Aufgaben) ... von Betriebssystemen:

  • Betriebssysteme: sehr komplexe Softwareprodukte
  • Ein Grund hierfür: besitzen Reihe von differenzierten Aufgaben - also funktionale Eigenschaften

Grundlegende funktionale Eigenschaften von Betriebssystemen:

  1. Hardware-Abstraktion (Anwendungen/Programmierern eine angenehme Ablaufumgebung auf Basis der Hardware bereitstellen)
  2. Hardware-Multiplexing (gemeinsame Ablaufumgebung zeitlich oder logisch getrennt einzelnen Anwendungen zuteilen)
  3. Hardware-Schutz (gemeinsame Ablaufumgebung gegen Fehler und Manipulation durch Anwendungen schützen)

Nichtfunktionale Eigenschaften (Auswahl) von Betriebssystemen:

  • Laufzeiteigenschaften
    • Sparsamkeit und Effizienz
    • Robustheit
    • Verfügbarkeit
    • Sicherheit (Security)
    • Echtzeitfähigkeit
    • Adaptivität
    • Performanz
  • Evolutionseigenschaften
    • Wartbarkeit
    • Portierbarkeit
    • Offenheit
    • Erweiterbarkeit

Klassifizierung: Nichtfunktionale Eigenschaften unterteilbar in:

  1. Laufzeiteigenschaften (execution qualities)
    • zur Laufzeit eines Systems beobachtbar
    • Beispiele: ,,security'' (Sicherheit), ,,usability'' (Benutzbarkeit), ,,performance'' (Performanz), ...
  2. Evolutionseigenschaften (evolution qualities)
    • charakterisieren (Weiter-) Entwicklung- und Betrieb eines Systems
    • Beispiele: ,,testability'' (Testbarkeit), ,,extensibility'' (Erweiterbarkeit) usw.
  • liegen in statischer Struktur eines Softwaresystems begründet

Inhalte der Vorlesung

Auswahl sehr häufiger NFE von Betriebssystemen:

  • Sparsamkeit und Effizienz
  • Robustheit
  • Verfügbarkeit
  • Sicherheit (Security)
  • Echtzeitfähigkeit
  • Adaptivität
  • Performanz

Diskussion jeder Eigenschaft: (Bsp.: Echtzeitfähigkeit)

  • Motivation, Anwendungsgebiete, Begriffsdefinition(en) (Bsp.: Multimedia- und eingebettete Systeme)
  • Mechanismen und Abstraktionen des Betriebssystems (Bsp.: Fristen, Deadline-Scheduler)
  • unterstützende Betriebssystem-Architekturkonzepte (Bsp.: Mikrokernel)
  • ein typisches Beispiel-Betriebssystem (Bsp.: QNX)
  • Literaturliste

Sparsamkeit und Effizienz

Robustheit und Verfügbarkeit

Sicherheit

Echtzeitfähigkeit

Adaptivität

Performanz und Parallelität

Zusammenfassung

Literatur

  • NFE in Betriebssystemen
    • Eeles, Peter; Cripps, Peter: The Process of Software Architecting
  • Funktionale Eigenschaften eines Betriebssystem
    • Tanebaum, Andrews; Bos, Herbert: Modern Operating Systems
    • Tanebaum, Andrews; Woodhull, Alberts: Operating Systems Design and Implementation
    • Stallings, William: Operating Systems: Internals and Design Principles