171 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 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 |