Adaptivität einführung

This commit is contained in:
WieErWill 2022-02-28 21:37:54 +01:00
parent 26b150740a
commit bdd5ea9638
2 changed files with 51 additions and 87 deletions

Binary file not shown.

View File

@ -2374,7 +2374,6 @@
Kommunikation zwischen 1 Sender und n Empfängern Kommunikation zwischen 1 Sender und n Empfängern
\end{center} \end{center}
\begin{itemize*} \begin{itemize*}
\item nach erstem Schreibzugriff: garantiert niemals undefinierte Wartezeiten durch Blockierung von Sender/Empfänger \item nach erstem Schreibzugriff: garantiert niemals undefinierte Wartezeiten durch Blockierung von Sender/Empfänger
\item Lesen/Überschreiben in zyklischer Reihenfolge: \item Lesen/Überschreiben in zyklischer Reihenfolge:
@ -2473,128 +2472,93 @@
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-drops.png} %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-drops.png}
\end{itemize*} \end{itemize*}
\section{Adaptivität} \section{Adaptivität (Flexibility)}
\subsection{Motivation}
\begin{itemize*} \begin{itemize*}
\item als unmittelbar geforderte NFE: \item als unmittelbar geforderte NFE: eingebettete Systeme, Systeme in garstiger Umwelt
\begin{itemize*} \item diese Anwendungsdomänen fordern typischerweise auch andere wesentliche NFE
\item eingebettete Systeme \item[$\rightarrow$] Adaptivität als komplementäre NFE zur Förderung von
\item Systeme in garstiger Umwelt (Meeresgrund, Arktis, Weltraum, ...)
\item Unterstützung von Cloud-Computing-Anwendungen
\item Unterstützung von Legacy-Anwendungen
\end{itemize*} \end{itemize*}
\item Beobachtung: genau diese Anwendungsdomänen fordern typischerweise auch \begin{description*}
andere wesentliche NFE (s.bisherige Vorlesung ...) \item[Robustheit] funktionale Adaptivitätdes BS reduziert Kernelkomplexität %($\rightarrow$ kleiner, nicht adaptiver $\mu$Kernel)
\item $\rightarrow$ Adaptivität als komplementäre NFE zur \item[Sicherheit] TCB-Größe $\rightarrow$ Verifizierbarkeit, adaptive Reaktion auf Bedrohungen
Förderung von \item[Echtzeitfähigkeit] adaptives Scheduling/Überlast/Interruptbehandlung
\item[Performanz] Last-und Hardwareadaptivität
\item[Erweiterbarkeit] von Abstraktionen, Schnittstellen, Multiplexing
\item[Wartbarkeit] Anpassung des BS an Anwendungen, nicht umgekehrt
\item[Sparsamkeit] Lastadaptivität, adaptive Datenstrukturen
\end{description*}
\begin{itemize*} \begin{itemize*}
\item Robustheit: funktionale Adaptivitätdes BS reduziert Kernelkomplexität ( $\rightarrow$ kleiner, nicht adaptiver $\mu$Kernel) \item Begriff
\item Sicherheit: wie Robustheit:TCB-Größe $\rightarrow$ Verifizierbarkeit, außerdem: adaptive Reaktion auf Bedrohungen
\item Echtzeitfähigkeit: adaptive Scheduling-Strategie (vgl. RC), adapt. Überlastbehandlung, adapt. Interruptbehandlungs-und Pinning-Strategien
\item Performanz: Last-und Hardwareadaptivität
\item Erweiterbarkeit: adaptive BS liefern oft hinreichende Voraussetzungen der einfachen Erweiterbarkeit von Abstraktionen, Schnittstellen, Hardware-Multiplexing-und -Schutzmechanismen ( Flexibility )
\item Wartbarkeit: Anpassung des BS an Anwendungen, nicht umgekehrt
\item Sparsamkeit: Lastadaptivitätvon CPUs, adaptive Auswahl von Datenstrukturen und Kodierungsverfahren
\end{itemize*}
\end{itemize*}
\subsection{Adaptivitätsbegriff}
\begin{itemize*} \begin{itemize*}
\item Adaptability: ,,see Flexibility. '' [Marciniak94] \item Fähigkeit eines Systems, sich an breites Spektrum verschiedener Anforderungen anzupassen
\item Flexibility: \item[=] so gebaut, dass breites Spektrum verschiedener nicht funktionaler Eigenschaften unterstützt
\begin{itemize*}
\item ,,The ease with which a system or a component can be modified for use in applications or environments other than those for which it was specifically designed.'' (IEEE)
\item für uns: entspricht Erweiterbarkeit
\end{itemize*}
\item Adaptivität: (unsere Arbeitsdefinition)
\begin{itemize*}
\item Die Fähigkeit eines Systems, sich an ein breites Spektrum verschiedener Anforderungen anpassen zu lassen.
\item = ... so gebaut zu sein, dass ein breites Spektrum verschiedener nicht funktionaler Eigenschaften unterstützt wird.
\item letztere: komplementär zur allgemeinen NFE Adaptivität \item letztere: komplementär zur allgemeinen NFE Adaptivität
\end{itemize*} \end{itemize*}
\end{itemize*}
\subsection{Roadmap}
\begin{itemize*}
\item in diesem Kapitel: gleichzeitig Mechanismen und Architekturkonzepte
\item Adaptivität jeweils anhand komplementärer Eigenschaften dargestellt: \item Adaptivität jeweils anhand komplementärer Eigenschaften dargestellt:
\begin{itemize*} \begin{itemize*}
\item Exokernel: \{Adaptivität\}$\cup$\{Performanz, Echtzeitfähigkeit,Wartbarkeit, Sparsamkeit\} \item Exokernel: \{Adaptivität\}$\cup$\{Performanz, Echtzeitfähigkeit,Wartbarkeit, Sparsamkeit\}
\item Virtualisierung: \{Adaptivität\}$\cup$\{Wartbarkeit, Sicherheit, Robustheit\} \item Virtualisierung: \{Adaptivität\}$\cup$\{Wartbarkeit, Sicherheit, Robustheit\}
\item Container: \{Adaptivität\}$\cup$\{Wartbarkeit, Portabilität, Sparsamkeit\} \item Container: \{Adaptivität\}$\cup$\{Wartbarkeit, Portabilität, Sparsamkeit\}
\end{itemize*} \end{itemize*}
\item Beispielsysteme: \item Beispielsysteme
\begin{itemize*} \begin{itemize*}
\item Exokernel-Betriebssysteme: Aegis/ExOS, Nemesis, MirageOS \item Exokernel OS: Aegis/ExOS, Nemesis, MirageOS
\item Virtualisierung: Vmware, VirtualBox, Xen \item Virtualisierung: Vmware, VirtualBox, Xen
\item Containersoftware: Docker \item Containersoftware: Docker
\end{itemize*} \end{itemize*}
\end{itemize*} \end{itemize*}
\subsection{Exokernelarchitektur} \subsection{Exokernelarchitektur}
\begin{itemize*} \begin{itemize*}
\item Grundfunktion von Betriebssystemen \item Grundfunktion von Betriebssystemen
\begin{itemize*} \begin{itemize*}
\item physische Hardware darstellen als abstrahierte Hardware mit komfortableren Schnittstellen \item physische Hardware darstellen als abstrahierte Hardware mit komfortableren Schnittstellen
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-exokernelarchitekturen.png} %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-exokernelarchitekturen.png}
\item Schnittstelle zu Anwendungen (API) : bietet dabei exakt die gleichen Abstraktionen der Hardware für alle Anwendungen an, z.B. \begin{itemize*} \item \textbf{Prozesse:} gleiches Zustandsmodell, gleiches Threadmodell \item \textbf{Dateien:} gleiche Namensraumabstraktion \item \textbf{Adressräume:} gleiche Speicherverwaltung (VMM, Seitengröße, Paging) \item \textbf{Interprozesskommunikation:} gleiche Mechanismen für alle Anwendungsprozesse \end{itemize*} \item Schnittstelle zu Anwendungen (API): Abstraktionen der Hardware
\end{itemize*}
\item Problem:
\begin{itemize*}
\item Implementierungsspielraumfür Anwendungen wird begrenzt:
\end{itemize*} \end{itemize*}
\item Problem: Implementierungsspielraumfür Anwendungen wird begrenzt
\begin{enumerate*} \begin{enumerate*}
\item Vorteile domänenspezifischer Optimierungender Hardwarebenutzung können nicht ausgeschöpft werden $\rightarrow$ \textbf{Performanz, Sparsamkeit} \item Vorteile domänenspezifischer Optimierungender Hardwarebenutzung können nicht ausgeschöpft werden $\rightarrow$ \textbf{Performanz, Sparsamkeit}
\item die Implementierung existierender Abstraktionen kann bei veränderten Anforderungen nicht an Anwendungen angepasst werden $\rightarrow$ \textbf{Wartbarkeit} \item die Implementierung existierender Abstraktionen kann bei veränderten Anforderungen nicht an Anwendungen angepasst werden $\rightarrow$ \textbf{Wartbarkeit}
\item Hardwarespezifikationen, insbesondere des Zeitverhaltens (E/A, Netzwerk etc.), werden von Effekten des BS-Management überlagert $\rightarrow$ \textbf{Echtzeitfähigkeit} \item Hardwarespezifikationen, insbesondere des Zeitverhaltens (E/A, Netzwerk etc.), werden von Effekten des BS-Management überlagert $\rightarrow$ \textbf{Echtzeitfähigkeit}
\end{enumerate*} \end{enumerate*}
\item Idee von Exokernel-Architekturen:
%\begin{itemize*}
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-exokernel-architektur.png}
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-exokernel-beispiel.png}
%\end{itemize*}
\end{itemize*} \end{itemize*}
\subsubsection{Exokernelmechanismen} \subsubsection{Exokernelmechanismen}
\begin{center}
\begin{itemize*} \includegraphics[width=.6\linewidth]{Assets/AdvancedOperatingSystems-exokernel-architektur.png}
\item Designprinzip von Exokernelmechanismen: %\includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-exokernel-beispiel.png}
\end{center}
\begin{itemize*} \begin{itemize*}
\item Trennung von Schutz und Abstraktion der Ressourcen \item Trennung von Schutz und Abstraktion der Ressourcen
\item Ressourcen-Schutz und -Multiplexing: verbleibt beim Betriebssystemkernel(dem Exokernel) \item Ressourcen-Schutz und -Multiplexing verbleibt beim Kernel
\item Ressourcen-Abstraktion (und deren Management): zentrale Aufgabe der Library-Betriebssysteme \begin{itemize*} \item[$\rightarrow$] autonome Management-Strategien durch in Anwendungen importierte Funktionalität \end{itemize*} \item Ressourcen-Abstraktion Aufgabe der Library-Betriebssysteme
\item Resultat: \begin{enumerate*} \item systemweit(durch jeweiliges BS vorgegebene) starre Hardware-Abstraktionen vermieden \item anwendungsdomänenspezifische Abstraktionen sehr einfach realisierbar \item (Wieder-) Verwendung eigener und fremder Managementfunktionalität wesentlich erleichtert $\rightarrow$ komplementäre NFEn! (Performanz, EZ-Fähigkeit, Sparsamkeit, ...) \end{enumerate*} \item[$\rightarrow$] autonome Management-Strategien durch in Anwendungen importierte Funktionalität
\end{itemize*} \begin{enumerate*}
\item Funktion des Exokernels: \item systemweit(durch jeweiliges BS vorgegebene) starre Hardware-Abstraktionen vermieden
\item anwendungsdomänenspezifische Abstraktionen sehr einfach
\item (Wieder-) Verwendung eigener/fremder Managementfunktionalität wesentlich erleichtert $\rightarrow$ komplementäre NFEn (Performanz, Sparsamkeit, ...)
\end{enumerate*}
\item Funktion des Exokernels
\begin{itemize*} \begin{itemize*}
\item Prinzip: definiert Low-level-Schnittstelle \begin{itemize*} \item ,,low-level'' = so hardwarenah wie möglich, bspw. die logische Schnittstelle eines elektronischen Schaltkreises/ICs ( $\rightarrow$ Gerätetreiber $\subseteq$ Library-BS!) \item Bsp.: der Exokernelmuss den Hauptspeicher schützen, aber nicht verstehen, wie dieser verwaltet wird $\rightarrow$ Adressierung ermöglichen ohne Informationen über Seiten, Segmente, Paging-Attribute, ... \end{itemize*} \item Prinzip: definiert Low-level-Schnittstelle (so hardwarenah wie möglich)
\item Library-Betriebssysteme: implementieren darauf jeweils geeignete anwendungsnahe Abstraktionen \begin{itemize*} \item Bsp.: Adressraumsemantik, Seitentabellenlayout und -verwaltung, Paging-und Locking-Verfahren, ... \end{itemize*} \item[$\rightarrow$] Adressierung ermöglichen ohne Informationen über Seiten, Segmente, Paging-Attribute, ...
\item Library-Betriebssysteme: implementieren darauf jeweils geeignete anwendungsnahe Abstraktionen
\item Anwendungsprogrammierer: wählen geeignete Library-Betriebssysteme bzw. schreiben ihre eigenen Exokernelmechanismen \item Anwendungsprogrammierer: wählen geeignete Library-Betriebssysteme bzw. schreiben ihre eigenen Exokernelmechanismen
\end{itemize*} \end{itemize*}
\item prinzipielle Exokernelmechanismen am Beispiel Aegis/ExOS \item prinzipielle Exokernelmechanismen am Beispiel Aegis/ExOS
[Engler+95] \begin{description*}
\begin{itemize*} \item[implementiert] Multiplexing der Hardware-Ressourcen
\item Der Exokernel... \begin{itemize*} \item \emph{implementiert:} Multiplexing der Hardware-Ressourcen \item \emph{exportiert:} geschützte Hardware-Ressourcen \end{itemize*} \item[exportiert] geschützte Hardware-Ressourcen
\end{itemize*} \end{description*}
\item minimal: drei Arten von Mechanismen \item minimal: drei Arten von Mechanismen
\begin{enumerate*}
\item Secure Binding: erlaubt geschützte Verwendung von Hardware-Ressourcen durch Anwendungen, Behandlung von Ereignissen
\item Visible ResourceRevocation: beteiligt Anwendungen am Entzug von Ressourcen mittels (kooperativen) Ressourcen-Entzugsprotokolls
\item Abort-Protokoll: erlaubt ExokernelBeendigung von Ressourcenzuordnungen bei unkooperativen Applikationen
\end{enumerate*}
\end{itemize*} \end{itemize*}
\begin{description*}
\item[Secure Binding] erlaubt geschützte Verwendung von Hardware- Ressourcen durch Anwendungen, Behandlung von Ereignissen
\item[Visible Resource Revocation] beteiligt Anwendungen am Entzug von Ressourcen mittels (kooperativen) Ressourcen-Entzugsprotokolls
\item[Abort-Protokoll] erlaubt ExokernelBeendigung von Ressourcenzuordnungen bei unkooperativen Applikationen
\end{description*}
\subsubsection{Secure Binding} \subsubsection{Secure Binding}