Zusammenfassung

This commit is contained in:
wieerwill 2022-03-01 20:39:11 +01:00
parent 50a57c0f1d
commit 52999a65d7
2 changed files with 91 additions and 232 deletions

Binary file not shown.

View File

@ -3308,89 +3308,57 @@
\end{itemize*}
\pagebreak
\section{Zusammenfassung}
\subsection{Funktionale und nichtfunktionale Eigenschaften}
\begin{itemize*}
\item Funktionale Eigenschaften: beschreiben, was ein (Software)-Produkt tun soll
\item Nichtfunktionale Eigenschaften: beschreiben, wie funktionale Eigenschaften realisiert werden, also welche sonstigen Eigenschaftendas Produkt haben soll ... unterteilbar in
\item Nichtfunktionale Eigenschaften: beschreiben, wie funktionale Eigenschaften realisiert werden, unterteilbar in
\begin{enumerate*}
\item Laufzeiteigenschaften (zur Laufzeit sichtbar)
\item Evolutionseigenschaften (beim Betrieb sichtbar: Erweiterung, Wartung, Test usw.)
\item Evolutionseigenschaften (beim Betrieb sichtbar)
\end{enumerate*}
\end{itemize*}
Roadmap (... von Betriebssystemen)
\subsection{Sparsamkeit und Effizienz}
\begin{itemize*}
\item Sparsamkeit und Effizienz
\item Robustheit und Verfügbarkeit
\item Sicherheit
\item Echtzeitfähigkeit
\item Adaptivität
\item Performanzund Parallelität
\end{itemize*}
\subsection{Sparsamkeit und
Effizienz}
\begin{itemize*}
\item Sparsamkeit: Die Eigenschaft eines Systems, seine Funktion mit
minimalem Ressourcenverbrauch auszuüben.
\item Effizienz: Der Grad, zu welchem ein System oder eine seiner
Komponenten seine Funktion mit minimalem Ressourcenverbrauch ausübt.
$\rightarrow$ Ausnutzungsgrad begrenzter Ressourcen
\item Die jeweils betrachtete(n) Ressource(n) muss /(müssen) dabei
spezifiziert sein!
\item sinnvolle Möglichkeiten bei Betriebssystemen:
\item Sparsamkeit: Die Eigenschaft eines Systems, seine Funktion mit minimalem Ressourcenverbrauch auszuüben
\item Effizienz: Der Grad, zu welchem ein System oder eine seiner Komponenten seine Funktion mit minimalem Ressourcenverbrauch ausübt
\item $\rightarrow$ Ausnutzungsgrad begrenzter Ressourcen
\item Die jeweils betrachtete Ressource muss dabei spezifiziert sein
\item sinnvolle Möglichkeiten bei Betriebssystemen
\begin{enumerate*}
\item Sparsamer Umgang mit Energie , z.B. energieeffizientes Scheduling
\item Sparsamer Umgang mit Speicherplatz (Speichereffizienz)
\item Sparsamer Umgang mit Energie
\item Sparsamer Umgang mit Speicherplatz
\item Sparsamer Umgang mit Prozessorzeit
\item ...
\end{enumerate*}
\end{itemize*}
Sparsamkeit mit Energie
\begin{itemize*}
\item Sparsamkeit mit Energie als heute extrem wichtigen Ressource, mit
nochmals gesteigerter Bedeutung bei mobilen bzw. vollständig autonomen
Geräten Maßnahmen:
\end{itemize*}
\begin{enumerate*}
\item Hardware-Ebene: momentan nicht oder nicht mit maximaler Leistung
benötigte Ressourcen in energiesparenden Modus bringen: abschalten,
Standby, Betrieb mit verringertem Energieverbrauch ( abwägen gegen
verminderte Leistung). (Geeignete Hardware wurde/wird ggf. erst
entwickelt)
\item Software-Ebene: neue Komponenten entwickeln, die in der Lage sein
müssen:
\item Hardware-Ebene: momentan nicht oder nicht mit maximaler Leistung benötigte Ressourcen in energiesparenden Modus bringen: abschalten, Standby, Betrieb mit verringertem Energieverbrauch
\item Software-Ebene: neue Komponenten entwickeln, die in der Lage sein müssen
\begin{itemize*}
\item Bedingungenzu erkennen, unter denen ein energiesparender Modus möglich ist;
\item Steuerungs-Algorithmen für Hardwarebetrieb so zu gestalten, dass Hardware-Ressourcen möglichst lange in einem energiesparenden Modus betrieben werden.
\item Bedingungenzu erkennen, unter denen ein energiesparender Modus möglich ist
\item Steuerungs-Algorithmen für Hardwarebetrieb so zu gestalten, dass Hardware-Ressourcen möglichst lange in einem energiesparenden Modus betrieben werden
\item Energie-Verwaltungsstrategien: energieeffizientes Scheduling zur Vermeidung von Unfairness und Prioritätsumkehr
\item Beispiele: energieeffizientes Magnetfestplatten-Prefetching, energiebewusstes RR-Scheduling
\end{itemize*}
\end{enumerate*}
Sparsamkeit mit Speicherplatz
\begin{itemize*}
\item Betrachtet: Sparsamkeit mit Speicherplatz mit besonderer Wichtigkeit
für physisch beschränkte, eingebettete und autonome Geräte
\item Maßnahmen Hauptspeicherauslastung:
\item Betrachtet: Sparsamkeit mit Speicherplatz mit besonderer Wichtigkeit für physisch beschränkte, eingebettete und autonome Geräte
\item Maßnahmen Hauptspeicherauslastung
\begin{enumerate*}
\item Algorithmus und Strategie z.B.: \begin{itemize*} \item Speicherplatz sparende Algorithmen zur Realisierung gleicher Strategien \end{itemize*}
\item Speicherverwaltung von Betriebssystemen: \begin{itemize*} \item physische vs. virtuelle Speicherverwaltung \item speichereffiziente Ressourcenverwaltung \item Speicherbedarfdes Kernels \item direkte Speicherverwaltungskosten \end{itemize*}
\item Speicherplatz sparende Algorithmen zur Realisierung gleicher Strategien
\item Speicherverwaltung von Betriebssystemen:
\begin{itemize*}
\item physische vs. virtuelle Speicherverwaltung
\item speichereffiziente Ressourcenverwaltung
\item Speicherbedarfdes Kernels
\item direkte Speicherverwaltungskosten
\end{itemize*}
\end{enumerate*}
\item Maßnahmen Hintergrundspeicherauslastung:
\item Maßnahmen Hintergrundspeicherauslastung
\begin{enumerate*}
\item Speicherbedarf des Betriebssystem-Images
\item dynamische SharedLibraries
\item VMM-Auslagerungsbereich
@ -3400,25 +3368,16 @@
$\rightarrow$ 99\% Überschneidung mit NFE Performanz
\end{itemize*}
\subsection{Robustheit und
Verfügbarkeit}
\subsection{Robustheit und Verfügbarkeit}
\begin{itemize*}
\item Robustheit: Zuverlässigkeit unter Anwesenheit externer Ausfälle
\item fault, aktiviert $\rightarrow$ error, breitet sich aus
$\rightarrow$ failure
\item fault, aktiviert $\rightarrow$ error, breitet sich aus $\rightarrow$ failure
\end{itemize*}
Robustheit
\begin{itemize*}
\item Erhöhung der Robustheit durch Isolation:
\begin{itemize*}
\item Maßnahmen zur Verhinderung der Fehlerausbreitung:
\end{itemize*}
\item Erhöhung der Robustheit durch Isolation: Maßnahmen zur Verhinderung der Fehlerausbreitung
\begin{enumerate*}
\item Adressraumisolation: Mikrokernarchitekturen,
\item kryptografische HW-Unterstützung: Intel SGX und
\item Virtualisierungsarchitekturen
@ -3427,36 +3386,25 @@
\end{itemize*}
Vorbedingung für Robustheit: Korrektheit
\begin{itemize*}
\item Korrektheit: Eigenschaft eines Systems sich gemäß seiner Spezifikation
zu verhalten (unter der Annahme, dass bei dieser keine Fehler gemacht
wurden).
\item Korrektheit: Eigenschaft eines Systems sich gemäß seiner Spezifikation zu verhalten
\item Maßnahmen (nur angesprochen):
\end{itemize*}
\begin{enumerate*}
\item diverse Software-Tests:
\begin{itemize*}
\item können nur Fehler aufspüren, aber keine Fehlerfreiheit garantieren!
\end{itemize*}
\item Software-Tests: können nur Fehler aufspüren, aber keine Fehlerfreiheit garantieren
\item Verifizierung:
\begin{itemize*}
\item Durch umfangreichen mathematischen Apparat wird Korrektheit der Software bewiesen.
\item Aufgrund der Komplexität ist Größe verifizierbarer Systeme (bisher?) begrenzt.
\item Betriebssystem-Beispiel: verifizierter Mikrokern seL
\item Durch umfangreichen mathematischen Apparat wird Korrektheit der Software bewiesen
\item Aufgrund der Komplexität ist Größe verifizierbarer Systeme begrenzt
\end{itemize*}
\end{enumerate*}
Verfügbarkeit
\begin{itemize*}
\item Verfügbarkeit: Der Anteil an Laufzeit eines Systems, in dem dieses
seine spezifizierte Leistung erbringt.
\item Verfügbarkeit: Der Anteil an Laufzeit eines Systems, in dem dieses seine spezifizierte Leistung erbringt
\item angesprochen: Hochverfügbare Systeme
\item Maßnahmen zur Erhöhung der Verfügbarkeit:
\item Maßnahmen zur Erhöhung der Verfügbarkeit
\begin{enumerate*}
\item Robustheitsmaßnahmen
\item Redundanz
\item Redundanz
@ -3465,16 +3413,11 @@
\end{enumerate*}
\end{itemize*}
\subsection{Sicherheit}
\begin{itemize*}
\item Sicherheit (IT-Security): Schutz eines Systems gegen Schäden durch
zielgerichtete Angriffe, insbesondere in Bezug auf die Informationen,
die es speichert, verarbeitet und kommuniziert.
\item Sicherheitsziele:
\item Sicherheit (IT-Security): Schutz eines Systems gegen Schäden durch zielgerichtete Angriffe, insbesondere in Bezug auf die Informationen, die es speichert, verarbeitet und kommuniziert
\item Sicherheitsziele
\begin{enumerate*}
\item Vertraulichkeit (Confidentiality)
\item Integrität (Integrity)
\item Verfügbarkeit (Availability)
@ -3484,69 +3427,37 @@
\end{itemize*}
Security Engineering
\begin{itemize*}
\item Sicherheitsziele $\rightarrow$ Sicherheitspolitik
$\rightarrow$ Sicherheitsarchitektur
$\rightarrow$ Sicherheitsmechanismen
\item Sicherheitspolitik: Regeln zum Erreichen eines Sicherheitsziels.
\begin{itemize*}
\item hierzu formale Sicherheitsmodelle:
\item IBAC, TE, MLS
\item DAC, MAC
\end{itemize*}
\item Sicherheitsmechanismen: Implementierung der Durchsetzung einer
Sicherheitspolitik.
\begin{itemize*}
\item Zugriffssteuerungslisten(ACLs)
\item SELinux
\end{itemize*}
\item Sicherheitsarchitektur: Platzierung, Struktur und Interaktion von
Sicherheitsmechanismen.
\begin{itemize*}
\item wesentlich: Referenzmonitorprinzipien
\item RM1: Unumgehbarkeit $\rightarrow$ vollständiges Finden aller Schnittstellen
\item RM2: Manipulationssicherheit $\rightarrow$ Sicherheit einerSicherheitspolitik selbst
\item RM3: Verifizierbarkeit $\rightarrow$ wohlstrukturierte und per Designkleine TCBs
\end{itemize*}
\item Sicherheitsziele $\rightarrow$ Sicherheitspolitik $\rightarrow$ Sicherheitsarchitektur $\rightarrow$ Sicherheitsmechanismen
\item Sicherheitspolitik: Regeln zum Erreichen eines Sicherheitsziels: IBAC, TE, MLS, DAC, MAC
\item Sicherheitsmechanismen: Implementierung der Durchsetzung einer Sicherheitspolitik: ACLs, SELinux
\item Sicherheitsarchitektur: Platzierung, Struktur und Interaktion von Sicherheitsmechanismen
\item wesentlich: Referenzmonitorprinzipien
\item RM1: Unumgehbarkeit $\rightarrow$ vollständiges Finden aller Schnittstellen
\item RM2: Manipulationssicherheit $\rightarrow$ Sicherheit einerSicherheitspolitik selbst
\item RM3: Verifizierbarkeit $\rightarrow$ wohlstrukturierte und per Designkleine TCBs
\end{itemize*}
\subsection{Echtzeitfähigkeit}
\begin{itemize*}
\item Echtzeitfähigkeit: Fähigkeit eines Systems auf eine Eingabe innerhalb
eines spezifizierten Zeitintervalls eine korrekte Reaktion
hervorzubringen.
\item Echtzeitfähigkeit: Fähigkeit eines Systems auf eine Eingabe innerhalb eines spezifizierten Zeitintervalls eine korrekte Reaktion hervorzubringen.
\item Maximum dieses relativen Zeitintervalls: Frist d
\end{itemize*}
\begin{enumerate*}
\item echtzeitfähige Scheduling-Algorithmen für Prozessoren
\begin{itemize*}
\item zentral: garantierte Einhaltung von Fristen
\item wichtige Probleme: Prioritätsumkehr, Überlast, kausale Abhängigkeit
\end{itemize*}
\item zentral: garantierte Einhaltung von Fristen
\item wichtige Probleme: Prioritätsumkehr, Überlast, kausale Abhängigkeit
\item echtzeitfähige Interrupt-Behandlung
\begin{itemize*}
\item zweiteilig:asynchron registrieren, geplant bearbeiten
\end{itemize*}
\item zweiteilig:asynchron registrieren, geplant bearbeiten
\item echtzeitfähige Speicherverwaltung
\begin{itemize*}
\item Primärspeicherverwaltung, VMM (Pinning)
\item Sekundärspeicherverwaltung, Festplattenscheduling
\end{itemize*}
\item Primärspeicherverwaltung, VMM (Pinning)
\item Sekundärspeicherverwaltung, Festplattenscheduling
\end{enumerate*}
\subsection{Adaptivität}
\begin{itemize*}
\item Adaptivität: Eigenschaft eines Systems, so gebaut zu sein, dass es ein
gegebenes (breites) Spektrum nichtfunktionaler Eigenschaften
unterstützt.
\item Beobachtung: Adaptivität i.d.R. als komplementär und synergetisch zu
anderen NFE:
\item Adaptivität: Eigenschaft eines Systems, so gebaut zu sein, dass es ein gegebenes (breites) Spektrum nichtfunktionaler Eigenschaften unterstützt
\item Beobachtung: Adaptivität i.d.R. als komplementär und synergetisch zu anderen NFE
\begin{itemize*}
\item Sparsamkeit
\item Robustheit
@ -3557,118 +3468,66 @@
\end{itemize*}
\end{itemize*}
Adaptive Systemarchitekturen
Adaptive Systemarchitekturen Zielstellungen
\begin{itemize*}
\item Zielstellungen:
\begin{itemize*}
\item Exokernel: \{ Adaptivität \} $\cup$ \{ Performanz, Echtzeitfähigkeit, Wartbarkeit, Sparsamkeit \}
\item Virtualisierung: \{ Adaptivität \} $\cup$ \{ Wartbarkeit, Sicherheit, Robustheit \}
\item Container: \{ Adaptivität \} $\cup$ \{ Wartbarkeit, Portabilität, Sparsamkeit \}
\end{itemize*}
\item Exokernel: \{ Adaptivität \} $\cup$ \{ Performanz, Echtzeitfähigkeit, Wartbarkeit, Sparsamkeit \}
\item Virtualisierung: \{ Adaptivität \} $\cup$ \{ Wartbarkeit, Sicherheit, Robustheit \}
\item Container: \{ Adaptivität \} $\cup$ \{ Wartbarkeit, Portabilität, Sparsamkeit \}
\end{itemize*}
\subsection{Performanz und
Parallelität}
\subsection{Performanz und Parallelität}
\begin{itemize*}
\item Performanz (wie hier besprochen): Eigenschaft eines Systems, die für
korrekte Funktion (= Berechnung) benötigte Zeit zu minimieren.
\item Performanz (wie hier besprochen): Eigenschaft eines Systems, die für korrekte Funktion benötigte Zeit zu minimieren
\item hier betrachtet: Kurze Antwort-und Reaktionszeiten
\begin{enumerate*}
\item vor allen Dingen: Parallelisierung auf Betriebssystemebene zur weiteren Steigerung der Performanz/Ausnutzung von Multicore-Prozessoren(da Steigerung der Prozessortaktfrequenz kaum noch möglich)
\item weiterhin: Parallelisierung auf Anwendungsebene zur Verringerung der Antwortzeiten von Anwendungen und Grenzen der Parallelisierbarkeit(für Anwendungen auf einem Multicore-Betriebssystem).
\end{enumerate*}
\item Parallelisierung auf Betriebssystemebene zur weiteren Steigerung der Performanz/Ausnutzung von Multicore-Prozessoren
\item Parallelisierung auf Anwendungsebene zur Verringerung der Antwortzeiten von Anwendungen und Grenzen der Parallelisierbarkeit
\end{itemize*}
Mechanismen, Architekturen, Grenzen der Parallelisierung
\begin{itemize*}
\item Hardware:
\begin{itemize*}
\item Multicore-Prozessoren
\item Superskalarität
\end{itemize*}
\item Betriebssystem:
\begin{itemize*}
\item Multithreading(KLTs) und Scheduling
\item Synchronisation und Kommunikation
\item Lastangleichung
\end{itemize*}
\item Anwendung(sprogrammierer):
\begin{itemize*}
\item Parallelisierbarkeiteines Problems
\item optimaler Prozessoreneinsatz, Effizienz
\end{itemize*}
\item Hardware: Multicore-Prozessoren, Superskalarität
\item Betriebssystem: Multithreading, Scheduling, Synchronisation und Kommunikation, Lastangleichung
\item Anwendung: Parallelisierbarkeit, optimaler Prozessoreneinsatz, Effizienz
\end{itemize*}
\subsection{Synergetische und konträre
Eigenschaften}
\subsection{Synergetische und konträre Eigenschaften}
\begin{itemize*}
\item Normalerweise:
\begin{itemize*}
\item Eine nichtfunktionale Eigenschaft bei IT-Systemen meist nicht ausreichend
\item Beispiel: Was nützt ein Echtzeit-Betriebssystem - z.B. innerhalb einer Flugzeugsteuerung - wenn es nicht auch verlässlich arbeitet?
\end{itemize*}
\item In diesem Zusammenhang interessant:
\begin{itemize*}
\item Welche nichtfunktionalen Eigenschaften mit Maßnahmen erreichbar, die in gleiche Richtung zielen, bei welchen wirken Maßnahmen eher gegenläufig?
\item Erstere sollen synergetische, die zweiten konträre (also in Widerspruch zueinander stehende) nichtfunktionale Eigenschaften genannt werden.
\item Zusammenhang nicht immer eindeutig und offensichtlich, wie z.B. bei: ,,Sicherheit kostet Zeit.'' (d.h. Performanz und Sicherheit sind nichtsynergetische Eigenschaften)
\end{itemize*}
\item Eine nichtfunktionale Eigenschaft bei IT-Systemen meist nicht ausreichend
\item Welche nichtfunktionalen Eigenschaften mit Maßnahmen erreichbar, die in gleiche Richtung zielen, bei welchen wirken Maßnahmen eher gegenläufig?
\item Erstere sollen synergetische, die zweiten konträre (also in Widerspruch zueinander stehende) nichtfunktionale Eigenschaften genannt werden.
\item Zusammenhang nicht immer eindeutig und offensichtlich, wie z.B. bei: ,,Sicherheit kostet Zeit.'' (d.h. Performanz und Sicherheit sind nichtsynergetische Eigenschaften)
\end{itemize*}
\subsection{Notwendige NFE-Paarungen}
\begin{itemize*}
\item Motivation: Anwendungen (damit auch Betriebssysteme) für bestimmte
Einsatzgebiete brauchen oft mehrere nichtfunktionale Eigenschaften
gleichzeitig - unabhängig davon, ob sich diese synergetisch oder
nichtsynergetisch zueinander verhalten.
\item Beispiele:
\begin{itemize*}
\item Echtzeit und Verlässlichkeit: ,,SRÜ''-Systeme an potentiell gefährlichen Einsatzgebieten (Atomkraftwerk, Flugzeugsteuerung, Hinderniserkennung an Fahrzeugen, ...)
\item Echtzeit und Sparsamkeit: Teil der eingebetteten Systeme
\item Robustheit und Sparsamkeit: unter entsprechenden Umweltbedingungen eingesetzte autonome Systeme, z.B. smart-dust-Systeme
\end{itemize*}
\item Anwendungen für bestimmte Einsatzgebiete brauchen oft mehrere nichtfunktionale Eigenschaften gleichzeitig - unabhängig davon, ob sich diese synergetisch oder nichtsynergetisch zueinander verhalten
\item Echtzeit und Verlässlichkeit: ,,SRÜ''-Systeme an potentiell gefährlichen Einsatzgebieten
\item Echtzeit und Sparsamkeit: Teil der eingebetteten Systeme
\item Robustheit und Sparsamkeit: unter entsprechenden Umweltbedingungen eingesetzte autonome Systeme, z.B. smart-dust-Systeme
\end{itemize*}
Überblick: NFE und Architekturkonzepte
%\begin{longtable}[]{@{}llllll@{}}
%\toprule
%& Makrokernel & Mikrokernel & Exokernel & Virtualisierung &
%Multikernel\\
%\midrule
%\endhead
%Energieeffizienz & & & (\cmark ) & \xmark & \xmark \\
%Speichereffizienz & \xmark & (\cmark ) & (\cmark ) & & \xmark \\
%Robustheit & \xmark & \cmark & \xmark & \cmark &\\
%Verfügbarkeit & \xmark & (\cmark ) & & (\cmark ) & (\cmark )\\
%Korrektheit & \xmark & \cmark & \xmark & \xmark & (\cmark )\\
%Sicherheit & \xmark & \cmark & \xmark & \cmark &\\
%Echtzeitfähigkeit & (\cmark ) & (\cmark ) & \cmark & \xmark & \xmark \\
%Adaptivität & \xmark & (\cmark ) & \cmark & \cmark & (\cmark )\\
%Wartbarkeit & \cmark & & \cmark & \cmark &\\
%Performanz & (\cmark ) & \xmark & \cmark & \xmark & \cmark \\
%\bottomrule
%\end{longtable}
\begin{tabular}{r|c|c|c|c|c}
& Makrok. & Mikro. & Exok. & Virt. & Multik. \\\hline
Energieeffizienz & & & (\cmark) & \xmark & \xmark \\
Speichereffizienz & \xmark & (\cmark) & (\cmark) & & \xmark \\
Robustheit & \xmark & \cmark & \xmark & \cmark & \\
Verfügbarkeit & \xmark & (\cmark) & & (\cmark) & (\cmark) \\
Korrektheit & \xmark & \cmark & \xmark & \xmark & (\cmark) \\
Sicherheit & \xmark & \cmark & \xmark & \cmark & \\
Echtzeitfähigkeit & (\cmark) & (\cmark) & \cmark & \xmark & \xmark \\
Adaptivität & \xmark & (\cmark) & \cmark & \cmark & (\cmark) \\
Wartbarkeit & \cmark & & \cmark & \cmark & \\
Performanz & (\cmark) & \xmark & \cmark & \xmark & \cmark
\end{tabular}
\begin{itemize*}
\item[\cmark] ... Zieleigenschaft
\item ( \cmark ) ... synergetische Eigenschaft
\item[\xmark] ... konträre Eigenschaft
\item Leere Zellen: keine pauschale Aussage möglich.
\item[\cmark] Zieleigenschaft
\item[(\cmark)] synergetische Eigenschaft
\item[\xmark] konträre Eigenschaft
\item[Leer] keine pauschale Aussage möglich
\end{itemize*}
Fazit: Breites und offenes Forschungsfeld $\rightarrow$
werden Sie aktiv!
\end{multicols}
\end{document}