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.
- Qualitäten bzw. Qualitätsattribute (eines Software-Produkts):
-
,,~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, ...
- im Englischen:nichtfunktionale Eigenschaften eines Systems etc. informell auch als seine „ilities“ bezeichnet, hergeleitet von Begriffen wie
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)
- ... zur Reservierung von Ressourcen (
\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!
- eine endliche Menge von Quellcode, indiziert durch Zeilennummern: MACOSX =
- 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:
- Hardware-Abstraktion (Anwendungen/Programmierern eine angenehme Ablaufumgebung auf Basis der Hardware bereitstellen)
- Hardware-Multiplexing (gemeinsame Ablaufumgebung zeitlich oder logisch getrennt einzelnen Anwendungen zuteilen)
- 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:
- Laufzeiteigenschaften (execution qualities)
- zur Laufzeit eines Systems beobachtbar
- Beispiele: ,,security'' (Sicherheit), ,,usability'' (Benutzbarkeit), ,,performance'' (Performanz), ...
- 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