Robustheit gekürzt
This commit is contained in:
parent
1985c9d835
commit
ccb8f75128
BIN
Advanced Operating Systems - Cheatsheet.pdf
(Stored with Git LFS)
BIN
Advanced Operating Systems - Cheatsheet.pdf
(Stored with Git LFS)
Binary file not shown.
@ -823,10 +823,6 @@
|
|||||||
\item hochsicherheitskritische Systeme (Finanz, Cloud Dienste)
|
\item hochsicherheitskritische Systeme (Finanz, Cloud Dienste)
|
||||||
\item hochverfügbare System (öffentliche Infrastruktur, Strom)
|
\item hochverfügbare System (öffentliche Infrastruktur, Strom)
|
||||||
%\item HPC (high performance computing)
|
%\item HPC (high performance computing)
|
||||||
\end{itemize*}
|
|
||||||
|
|
||||||
Allgemeine Begriffe
|
|
||||||
\begin{itemize*}
|
|
||||||
\item \textbf{Verlässlichkeit} Fähigkeit, eine Leistung zu erbringen, der man berechtigterweise vertrauen kann
|
\item \textbf{Verlässlichkeit} Fähigkeit, eine Leistung zu erbringen, der man berechtigterweise vertrauen kann
|
||||||
\item Untereigenschaften
|
\item Untereigenschaften
|
||||||
\begin{enumerate*}
|
\begin{enumerate*}
|
||||||
@ -856,14 +852,12 @@
|
|||||||
\end{itemize*}
|
\end{itemize*}
|
||||||
\item[fehlerhafter Zustand] (error) notwendige Ursache eines Ausfalls (nicht jeder error muss zu failure führen)
|
\item[fehlerhafter Zustand] (error) notwendige Ursache eines Ausfalls (nicht jeder error muss zu failure führen)
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item Maskierung, Redundanz
|
\item Maskierung, Redundanz, Isolation von Subsystemen
|
||||||
\item Isolation von Subsystemen
|
|
||||||
\item[$\rightarrow$] Isolationsmechanismen
|
\item[$\rightarrow$] Isolationsmechanismen
|
||||||
\end{itemize*}
|
\end{itemize*}
|
||||||
\item[Fehler] (fault) Ursache für fehlerhaften Systemzustand (error)%, z.B. Programmierfehler
|
\item[Fehler] (fault) Ursache für fehlerhaften Systemzustand (error)%, z.B. Programmierfehler
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item Ausfallverhalten spezifizieren
|
\item Ausfallverhalten spezifizieren, zur Laufzeit erkennen und Folgen beheben%, abschwächen...
|
||||||
\item Ausfälle zur Laufzeit erkennen und Folgen beheben%, abschwächen...
|
|
||||||
\item[$\rightarrow$] Micro-Reboots
|
\item[$\rightarrow$] Micro-Reboots
|
||||||
\end{itemize*}
|
\end{itemize*}
|
||||||
\end{description*}
|
\end{description*}
|
||||||
@ -871,7 +865,7 @@
|
|||||||
\subsection{Fehlerhafter Zustand}
|
\subsection{Fehlerhafter Zustand}
|
||||||
%interner und externer Zustand (internal \& external state)
|
%interner und externer Zustand (internal \& external state)
|
||||||
\begin{description*}
|
\begin{description*}
|
||||||
\item[externer Zustand] der Teil des Gesamtzustands, der an externer Schnittstelle sichtbar wird
|
\item[externer Zustand] Teil des Gesamtzustands, an externer Schnittstelle sichtbar
|
||||||
\item[interner Zustand] restlicher Teilzustand
|
\item[interner Zustand] restlicher Teilzustand
|
||||||
\item[erbrachte Leistung] zeitliche Folge externer Zustände
|
\item[erbrachte Leistung] zeitliche Folge externer Zustände
|
||||||
\end{description*}
|
\end{description*}
|
||||||
@ -962,22 +956,18 @@
|
|||||||
\item[\cmark] nichtvertrauenswürdiger Code kann keine beliebigen physischen Adressen schreiben
|
\item[\cmark] nichtvertrauenswürdiger Code kann keine beliebigen physischen Adressen schreiben
|
||||||
\item[\cmark] Kommunikation zwischen nvw. Code muss durch IPC-Mechanismen explizit hergestellt werden $\rightarrow$ Überwachung und Validierung zur Laufzeit möglich
|
\item[\cmark] Kommunikation zwischen nvw. Code muss durch IPC-Mechanismen explizit hergestellt werden $\rightarrow$ Überwachung und Validierung zur Laufzeit möglich
|
||||||
\item[\cmark] Kontrollfluss begrenzen: Funktionsaufrufe können i.A. keine AR-Grenzen überschreiten
|
\item[\cmark] Kontrollfluss begrenzen: Funktionsaufrufe können i.A. keine AR-Grenzen überschreiten
|
||||||
\begin{itemize*}
|
%\begin{itemize*}
|
||||||
\item[$\rightarrow$] BS-Zugriffssteuerung kann nicht durch Taskfehler ausgehebelt werden
|
%\item[$\rightarrow$] BS-Zugriffssteuerung kann nicht durch Taskfehler ausgehebelt werden
|
||||||
\item[$\rightarrow$] unabsichtliche Terminierungsfehler(unendliche Rekursion) erschwert ...
|
%\item[$\rightarrow$] unabsichtliche Terminierungsfehlererschwert ...%(unendliche Rekursion)
|
||||||
\end{itemize*}
|
%\end{itemize*}
|
||||||
\item keine Isolation zwischen Fehlern innerhalb des Kernels
|
\item keine Isolation zwischen Fehlern innerhalb des Kernels
|
||||||
\end{itemize*}
|
\end{itemize*}
|
||||||
|
|
||||||
\subsection{Mikrokernelarchitektur}
|
\subsection{Mikrokernelarchitektur}
|
||||||
Fortschritt ggü. Makrokernel
|
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item Strukturierungskonzept
|
|
||||||
\begin{itemize*}
|
|
||||||
\item strenger durchgesetzt durch konsequente Isolation voneinander unabhängiger Kernel-Subsysteme
|
\item strenger durchgesetzt durch konsequente Isolation voneinander unabhängiger Kernel-Subsysteme
|
||||||
\item zur Laufzeit durchgesetzt $\rightarrow$ Reaktion auf fehlerhafte Zustände möglich!
|
\item zur Laufzeit durchgesetzt $\rightarrow$ Reaktion auf fehlerhafte Zustände möglich
|
||||||
\end{itemize*}
|
\item zusätzlich zu vertikaler Strukturierung: horizontal
|
||||||
\item zusätzlich zu vertikaler Strukturierung des Kernels: horizontale Strukturierung eingeführt
|
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item[$\rightarrow$] funktionale Einheiten: vertikal (Schichten)
|
\item[$\rightarrow$] funktionale Einheiten: vertikal (Schichten)
|
||||||
\item[$\rightarrow$] isolierte Einheiten: horizontal (private vAR)
|
\item[$\rightarrow$] isolierte Einheiten: horizontal (private vAR)
|
||||||
@ -990,9 +980,8 @@
|
|||||||
|
|
||||||
\subsubsection{Modularer Makrokernel vs. Mikrokernel}
|
\subsubsection{Modularer Makrokernel vs. Mikrokernel}
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-modularer-makrokernel.png}
|
|
||||||
\item minimale Kernelfunktionalität
|
\item minimale Kernelfunktionalität
|
||||||
\item keine Dienste, nur allgemeine Schnittstellenfür diese
|
\item keine Dienste, nur allgemeine Schnittstellen für diese
|
||||||
\item keine Strategien, nur grundlegende Mechanismen zur Ressourcenverwaltung
|
\item keine Strategien, nur grundlegende Mechanismen zur Ressourcenverwaltung
|
||||||
\item neues Problem: minimales Mikrokerneldesign
|
\item neues Problem: minimales Mikrokerneldesign
|
||||||
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-modularer-makrokernel-2.png}
|
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-modularer-makrokernel-2.png}
|
||||||
@ -1000,20 +989,18 @@
|
|||||||
|
|
||||||
\paragraph{Robustheit von Mikrokernen}
|
\paragraph{Robustheit von Mikrokernen}
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item = Gewinn durch Adressraumisolation innerhalb des Kernels
|
\item[=] Gewinn durch Adressraumisolation innerhalb des Kernels
|
||||||
\item[\cmark] kein nichtvertrauenswürdiger Code im Kernelspace, der dort beliebige physische Adressen manipulieren kann
|
\item[\cmark] kein nichtvertrauenswürdiger Code im Kernelspace, der dort beliebige physische Adressen manipulieren kann
|
||||||
\item[\cmark] Kommunikation zwischen nvw. Code (nicht zur zwischen Anwendungstasks)muss durch IPC explizit hergestellt werden $\rightarrow$ Überwachung und Validierung zur Laufzeit
|
\item[\cmark] Kommunikation zwischen nvw. Code muss durch IPC explizit hergestellt werden $\rightarrow$ Überwachung und Validierung zur Laufzeit
|
||||||
\item[\cmark] Kontrollfluss begrenzen: Zugriffssteuerung auch zwischen Serverprozessen, zur Laufzeit unabhängiges Teilmanagement von Code (Kernelcode) möglich (z.B.: Nichtterminierung erkennen)
|
\item[\cmark] Kontrollfluss begrenzen: Zugriffssteuerung auch zwischen Serverprozessen, zur Laufzeit unabhängiges Teilmanagement von Code möglich %(z.B.: Nichtterminierung erkennen)
|
||||||
\item Neu:
|
\item Neu:
|
||||||
\item[\cmark] nvw. BS-Code muss nicht mehr im Kernelspace laufen
|
\item[\cmark] nvw. BS-Code muss nicht mehr im Kernelspace laufen
|
||||||
\item[\cmark] verbleibender Kernel: klein, funktional weniger komplex, leichter zu entwickeln, zu testen, evtl. formal zu verifizieren
|
\item[\cmark] Kernel: klein, funktional weniger komplex, leichter zu entwickeln, zu testen, evtl. formal zu verifizieren
|
||||||
\item[\cmark] daneben: Adaptivität durch konsequentere Modularisierung des Kernels gesteigert
|
\item[\cmark] Adaptivität durch konsequentere Modularisierung des Kernels
|
||||||
\end{itemize*}
|
\end{itemize*}
|
||||||
|
|
||||||
\subsubsection{Mikrokernel: Mach}
|
\subsubsection{Mikrokernel: Mach}
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item 1975: Aleph (BS des ,,Rochester Intelligent Gateway'')
|
|
||||||
\item 1979/81: Accent (verteiltes BS), CMU
|
|
||||||
\item Mach 3.0 (1989): einer der ersten praktisch nutzbaren $\mu$Kerne
|
\item Mach 3.0 (1989): einer der ersten praktisch nutzbaren $\mu$Kerne
|
||||||
\item Ziel: API-Emulation ($\not=$ Virtualisierung) von UNIX und -Derivaten auf unterschiedlichen Prozessorarchitekturen
|
\item Ziel: API-Emulation ($\not=$ Virtualisierung) von UNIX und -Derivaten auf unterschiedlichen Prozessorarchitekturen
|
||||||
\item mehrere unterschiedliche Emulatoren gleichzeitig lauffähig
|
\item mehrere unterschiedliche Emulatoren gleichzeitig lauffähig
|
||||||
@ -1035,40 +1022,24 @@
|
|||||||
\begin{enumerate*}
|
\begin{enumerate*}
|
||||||
\item Prozesse, Threads, Speicherobjekte
|
\item Prozesse, Threads, Speicherobjekte
|
||||||
\item Ports (generisches, ortstransparentes Adressierungskonzept)
|
\item Ports (generisches, ortstransparentes Adressierungskonzept)
|
||||||
\item Botschaften, ... (sekundäre, von den obigen genutzte Abstraktionen)
|
\item Botschaften, ... (sekundäre, von obigen genutzte Abstraktionen)
|
||||||
\end{enumerate*}
|
\end{enumerate*}
|
||||||
|
|
||||||
Architektur
|
Architektur: Bewertung aus heutiger Sicht
|
||||||
\begin{itemize*}
|
|
||||||
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-mach-architektur.png}
|
|
||||||
\item Systemaufrufkosten:
|
|
||||||
\begin{itemize*}
|
|
||||||
\item IPC-Benchmark (1995): i486 Prozessor, 50 MHz
|
|
||||||
\item Messung mit verschiedenen Botschaftenlängen( x - Werte)
|
|
||||||
\item ohne Nutzdaten (0 Byte Botschaftenlänge): 115 $\mu$s (Tendenz unfreundlich ...)
|
|
||||||
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-mach-systemaufruf.png}
|
|
||||||
\end{itemize*}
|
|
||||||
\item Bewertung aus heutiger Sicht:
|
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item funktional komplex
|
\item funktional komplex
|
||||||
\item 153 Systemaufrufe
|
\item 153 Systemaufrufe
|
||||||
\item mehrere Schnittstellen, parallele Implementierungen für eine Funktion
|
\item mehrere Schnittstellen, parallele Implementierungen für eine Funktion
|
||||||
\item[$\rightarrow$] Adaptivität (Auswahl durch Programmierer)
|
\item[$\rightarrow$] Adaptivität (Auswahl durch Programmierer)
|
||||||
\end{itemize*}
|
\end{itemize*}
|
||||||
\item Fazit:
|
|
||||||
\begin{itemize*}
|
|
||||||
\item zukunftsweisender Ansatz
|
|
||||||
\item langsame und ineffiziente Implementierung
|
|
||||||
\end{itemize*}
|
|
||||||
\end{itemize*}
|
|
||||||
|
|
||||||
Lessons Learned
|
Lessons Learned
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item Umsetzung: Designkriterien weitgehend unbekannt
|
\item Umsetzung: Designkriterien weitgehend unbekannt
|
||||||
\item Folgen für Performanz und Programmierkomfort: [Heis19]
|
\item Folgen für Performanz und Programmierkomfort
|
||||||
\item[\xmark] ,,complex'', ,,inflexible'', ,,slow''
|
\item[\xmark] ,,complex'', ,,inflexible'', ,,slow''
|
||||||
\item wissen etwas über Kosten: IPC-Performanz, Kernelabstraktionen
|
\item wissen etwas über Kosten: IPC-Performanz, Kernelabstraktionen
|
||||||
\item wissen nichts über guten $\mu$Kern-Funktionsumfang und gute Schnittstellen
|
\item wissen nichts über guten $\mu$Kern-Funktionsumfang und Schnittstellen
|
||||||
\end{itemize*}
|
\end{itemize*}
|
||||||
|
|
||||||
\subsubsection{L4}
|
\subsubsection{L4}
|
||||||
@ -1097,7 +1068,6 @@
|
|||||||
|
|
||||||
\subsubsection{Mikrokernel - Designprinzipien}
|
\subsubsection{Mikrokernel - Designprinzipien}
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item Was gehört in einen Mikrokern?
|
|
||||||
\item Konzeptsicht $\rightarrow$ Funktionalität
|
\item Konzeptsicht $\rightarrow$ Funktionalität
|
||||||
\item Implementierungssicht $\rightarrow$ Performanz
|
\item Implementierungssicht $\rightarrow$ Performanz
|
||||||
\item[$\rightarrow$] 1. Generation: durch Performanzentscheidungen aufgeweicht
|
\item[$\rightarrow$] 1. Generation: durch Performanzentscheidungen aufgeweicht
|
||||||
@ -1106,11 +1076,10 @@
|
|||||||
|
|
||||||
Designprinzipien für Mikrokernel-Konzept
|
Designprinzipien für Mikrokernel-Konzept
|
||||||
\begin{enumerate*}
|
\begin{enumerate*}
|
||||||
\item System interaktive und nicht vollständig vertrauenswürdige Applikationen unterstützen ( $\rightarrow$ HW-Schutz,-Multiplexing),
|
\item System interaktive und nicht vollständig vertrauenswürdige Applikationen unterstützen ($\rightarrow$ HW-Schutz,-Multiplexing)
|
||||||
\item Hardware mit virtueller Speicherverwaltung und Paging
|
\item Hardware mit virtueller Speicherverwaltung und Paging
|
||||||
\end{enumerate*}
|
\end{enumerate*}
|
||||||
|
|
||||||
Designprinzipien
|
|
||||||
\begin{description*}
|
\begin{description*}
|
||||||
\item[Autonomie] Subsystem muss so implementiert werden, dass es von keinem anderen Subsystem gestört oder korrumpiert werden kann
|
\item[Autonomie] Subsystem muss so implementiert werden, dass es von keinem anderen Subsystem gestört oder korrumpiert werden kann
|
||||||
\item[Integrität] Subsystem $S_1$ muss sich auf Garantien von $S_2$ verlassen können. D.h. beide Subsysteme müssen miteinander kommunizieren können, ohne dass ein drittes Subsystem diese Kommunikation stören, fälschen oder abhören kann.
|
\item[Integrität] Subsystem $S_1$ muss sich auf Garantien von $S_2$ verlassen können. D.h. beide Subsysteme müssen miteinander kommunizieren können, ohne dass ein drittes Subsystem diese Kommunikation stören, fälschen oder abhören kann.
|
||||||
@ -1118,9 +1087,9 @@
|
|||||||
|
|
||||||
L4: Speicherabstraktion
|
L4: Speicherabstraktion
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item Adressraum: Abbildung, die jede virtuelle Seite auf einen physischen Seitenrahmen abbildet oder als ,,nicht zugreifbar'' markiert
|
\item Adressraum: Abbildung, die jede virtuelle Seite auf einen physischen Seitenrahmen abbildet oder ,,nicht zugreifbar'' markiert
|
||||||
\item Implementierung über Seitentabellen, unterstützt durch MMU-Hardware
|
\item Implementierung über Seitentabellen, unterstützt durch MMU
|
||||||
\item Aufgabe des Mikrokernels (Schicht aller Subsysteme): muss Hardware-Konzept des Adressraums verbergen und durch eigenes Adressraum-Konzept überlagern
|
\item Aufgabe des Mikrokernels: muss Hardware-Konzept des Adressraums verbergen und durch eigenes Adressraum-Konzept überlagern
|
||||||
\item Mikrokernel-Konzept des Adressraums:
|
\item Mikrokernel-Konzept des Adressraums:
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item muss Implementierung von beliebigen virtuellen Speicherverwaltungs-und -schutzkonzepten oberhalb des Mikrokernels (d.h. in den Subsystemen) erlauben
|
\item muss Implementierung von beliebigen virtuellen Speicherverwaltungs-und -schutzkonzepten oberhalb des Mikrokernels (d.h. in den Subsystemen) erlauben
|
||||||
@ -1186,7 +1155,7 @@
|
|||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item müssen vertrauenswürdig vergeben und verwaltet werden
|
\item müssen vertrauenswürdig vergeben und verwaltet werden
|
||||||
\item[$\rightarrow$] essenziell für (sinnvolles) Multitasking und -threading
|
\item[$\rightarrow$] essenziell für (sinnvolles) Multitasking und -threading
|
||||||
\item[$\rightarrow$] essenziell für vertrauenswürdige Kernel-/Server-Schnittstellen
|
\item[$\rightarrow$] essenziell für vertrauensw. Kernel-/Server-Schnittstellen
|
||||||
\end{itemize*}
|
\end{itemize*}
|
||||||
\item Designentscheidung
|
\item Designentscheidung
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
@ -1214,16 +1183,16 @@
|
|||||||
\item Konsequenzen für Mikrokernel-Implementierung
|
\item Konsequenzen für Mikrokernel-Implementierung
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item müssen für jeden Prozessortyp neu implementiert werden
|
\item müssen für jeden Prozessortyp neu implementiert werden
|
||||||
\item deshalb prinzipiell nicht portierbar $\rightarrow$ L3-/L4-Prototypen: 99\% Assemblercode
|
\item deshalb prinzipiell nicht portierbar %$\rightarrow$ L3-/L4-Prototypen: 99\% Assemblercode
|
||||||
\end{itemize*}
|
\end{itemize*}
|
||||||
\item innerhalb eines Mikrokernels sind von Prozessorhardware abhängig
|
\item innerhalb eines Mikrokernels von Prozessorhardware abhängig
|
||||||
\begin{enumerate*}
|
\begin{enumerate*}
|
||||||
\item grundlegende Implementierungsentscheidungen
|
\item grundlegende Implementierungsentscheidungen
|
||||||
\item meiste Algorithmen u. Datenstrukturen
|
\item meiste Algorithmen u. Datenstrukturen
|
||||||
\end{enumerate*}
|
\end{enumerate*}
|
||||||
\item Fazit: Mikrokernel mit akzeptabler Performanz hardwarespezifische Implementierung minimal erforderlicher vom Prozessortyp unabhängiger Abstraktionen
|
%\item Mikrokernel mit akzeptabler Performanz hardwarespezifische Implementierung minimal erforderlicher vom Prozessortyp unabhängiger Abstraktionen
|
||||||
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-l4-ipc-performance.png}
|
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-l4-ipc-performance.png}
|
||||||
\item L4 heute: Spezifikation Mikrokernels (nicht Implementierung)
|
%\item L4 heute: Spezifikation Mikrokernels (nicht Implementierung)
|
||||||
\end{enumerate*}
|
\end{enumerate*}
|
||||||
|
|
||||||
%Einige Weiterentwicklungen:
|
%Einige Weiterentwicklungen:
|
||||||
@ -1261,12 +1230,8 @@
|
|||||||
\item[$\rightarrow$] BS-Code in Serverprozessen: verbleibendes Risiko unabhängiger Teilausfälle von BS-Funktionalität
|
\item[$\rightarrow$] BS-Code in Serverprozessen: verbleibendes Risiko unabhängiger Teilausfälle von BS-Funktionalität
|
||||||
\item Ergänzung zu Isolationsmechanismen notwendig
|
\item Ergänzung zu Isolationsmechanismen notwendig
|
||||||
\item Mechanismen zur Behandlung von Subsystem-Ausfällen
|
\item Mechanismen zur Behandlung von Subsystem-Ausfällen
|
||||||
\item[=] Mechanismen zur Behandlung Anwendungs-, Server- und Gerätetreiberfehlen
|
%\item[=] Mechanismen zur Behandlung Anwendungs-, Server- und Gerätetreiberfehlen
|
||||||
\item[$\rightarrow$] Micro-Reboots
|
\item[$\rightarrow$] Micro-Reboots
|
||||||
\end{itemize*}
|
|
||||||
|
|
||||||
Ansatz
|
|
||||||
\begin{itemize*}
|
|
||||||
\item kleinen (als fehlerfrei angenommenen) $\mu$Kernel
|
\item kleinen (als fehlerfrei angenommenen) $\mu$Kernel
|
||||||
\item BS-Funktionalität in bedingt vertrauenswürdigen Serverprozessen %(kontrollierbare, aber wesentlich größere Codebasis)
|
\item BS-Funktionalität in bedingt vertrauenswürdigen Serverprozessen %(kontrollierbare, aber wesentlich größere Codebasis)
|
||||||
\item Treiber/Anwendungen in nicht vertrauenswürdigen Prozessen %(nicht kontrollierbare Codebasis)
|
\item Treiber/Anwendungen in nicht vertrauenswürdigen Prozessen %(nicht kontrollierbare Codebasis)
|
||||||
@ -1295,18 +1260,18 @@
|
|||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item Ziel: robustes Betriebssystems
|
\item Ziel: robustes Betriebssystems
|
||||||
\item[$\rightarrow$] Schutz gegen Sichtbarwerden von Fehlern(= Ausfälle) für Nutzer
|
\item[$\rightarrow$] Schutz gegen Sichtbarwerden von Fehlern(= Ausfälle) für Nutzer
|
||||||
\item Fokus auf Anwendungsdomänen: Einzelplatzrechner und eingebettete Systeme
|
\item Fokus auf Anwendungsdomänen: Einzelplatzrechner, Embedded
|
||||||
\item Anliegen: Robustheit \textgreater{} Verständlichkeit \textgreater{} geringer HW-Bedarf
|
\item Anliegen: Robustheit \textgreater{} Verständlichkeit \textgreater{} geringer HW-Bedarf
|
||||||
\end{itemize*}
|
\end{itemize*}
|
||||||
|
|
||||||
Architektur
|
Architektur
|
||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item \includegraphics[width=.8\linewidth]{Assets/AdvancedOperatingSystems-minix-architektur.png}
|
\item \includegraphics[width=.7\linewidth]{Assets/AdvancedOperatingSystems-minix-architektur.png}
|
||||||
\item Anwendungen (weiß): Systemaufrufe im POSIX-Standard
|
\item Anwendungen (weiß): Systemaufrufe im POSIX-Standard
|
||||||
\item Serverprozesse (grau): IPC (botschaftenbasiert), mit Kernel: spezielle MINIX-API (kernel calls), für Anwendungsprozesse gesperrt
|
\item Serverprozesse (grau): IPC (botschaftenbasiert), mit Kernel: spezielle MINIX-API (kernel calls), für Anwendungsprozesse gesperrt
|
||||||
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-minix-architektur-bs.png}
|
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-minix-architektur-bs.png}
|
||||||
\item Betriebssystem-Serverprozesse: Dateisystem (FS), Prozessmanagement (PM), Netzwerkmanagement (Net)
|
\item Betriebssystem-Serverprozesse: Dateisystem (FS), Prozessmanagement (PM), Netzwerkmanagement (Net)
|
||||||
\item Reincarnation Server (RS) $\rightarrow$ Micro-Reboots jeglicher Serverprozesse
|
\item Reincarnation Server (RS) $\rightarrow$ Micro-Reboots der Serverprozesse
|
||||||
\item Kernelprozesse: systemtask, clocktask
|
\item Kernelprozesse: systemtask, clocktask
|
||||||
\end{itemize*}
|
\end{itemize*}
|
||||||
|
|
||||||
@ -1326,7 +1291,7 @@
|
|||||||
\begin{itemize*}
|
\begin{itemize*}
|
||||||
\item komplementäre NFE zu Robustheit: Verfügbarkeit ( availability )
|
\item komplementäre NFE zu Robustheit: Verfügbarkeit ( availability )
|
||||||
\item Verbesserung von Robustheit $\rightarrow$ Verbesserung von Verfügbarkeit
|
\item Verbesserung von Robustheit $\rightarrow$ Verbesserung von Verfügbarkeit
|
||||||
\item Robustheitsmaßnahmen hinreichend , nicht notwendig %(hochverfügbare Systeme können sehr wohl von Ausfällen betroffen sein...)
|
\item Robustheitsmaßnahmen hinreichend, nicht notwendig %(hochverfügbare Systeme können sehr wohl von Ausfällen betroffen sein...)
|
||||||
\item weitere komplementäre NFE: Robustheit $\rightarrow$ Sicherheit (security)
|
\item weitere komplementäre NFE: Robustheit $\rightarrow$ Sicherheit (security)
|
||||||
\item Definition: Grad, zu welchem ein System oder eine Komponente funktionsfähig und zugänglich (erreichbar) ist, wann immer seine Nutzung erforderlich ist (IEEE)
|
\item Definition: Grad, zu welchem ein System oder eine Komponente funktionsfähig und zugänglich (erreichbar) ist, wann immer seine Nutzung erforderlich ist (IEEE)
|
||||||
\item Anteil an Laufzeit eines Systems, in dem dieses seine spezifizierte Leistung erbringt
|
\item Anteil an Laufzeit eines Systems, in dem dieses seine spezifizierte Leistung erbringt
|
||||||
@ -1354,10 +1319,10 @@
|
|||||||
\item primäres Einsatzfeld: eingebettete Systeme, z.B. Automobilbau
|
\item primäres Einsatzfeld: eingebettete Systeme, z.B. Automobilbau
|
||||||
\item Mikrokernarchitektur mit Adressraumisolation für Gerätetreiber
|
\item Mikrokernarchitektur mit Adressraumisolation für Gerätetreiber
|
||||||
\item (begrenzt) dynamische Micro-Rebootsmöglich
|
\item (begrenzt) dynamische Micro-Rebootsmöglich
|
||||||
\item $\rightarrow$ Maximierung der Uptime des Gesamtsystems
|
\item[$\rightarrow$] Maximierung der Uptime des Gesamtsystems
|
||||||
\end{itemize*}
|
\end{itemize*}
|
||||||
\begin{description*}
|
\begin{description*}
|
||||||
\item[High-Avalability-Manager] Laufzeit-Monitor der Systemdienste/Anwendungsprozesse überwacht und neustartet $\rightarrow$ $\mu$Reboot-Server
|
\item[High-Avalability-Manager] Laufzeit-Monitor der Systemdienste/ Anwendungsprozesse überwacht und neustartet $\rightarrow$ $\mu$Reboot-Server
|
||||||
\item[High-Availability-Client-Libraries] Funktionen zur transparenten automatischen Reboot für ausgefallene Server-Verbindungen
|
\item[High-Availability-Client-Libraries] Funktionen zur transparenten automatischen Reboot für ausgefallene Server-Verbindungen
|
||||||
\end{description*}
|
\end{description*}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user