diff --git a/Advanced Operating Systems - Cheatsheet.pdf b/Advanced Operating Systems - Cheatsheet.pdf index 1ec1f9c..75a3654 100644 --- a/Advanced Operating Systems - Cheatsheet.pdf +++ b/Advanced Operating Systems - Cheatsheet.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b880f311d368cca651da7e6932b2c6fce6b45d6b9dc496555cdf8c88b9d481f5 -size 873434 +oid sha256:12e7a3b265e6739ddd5c4b03d3bde45452448b275d6c084558c0d6564b7d5be0 +size 872076 diff --git a/Advanced Operating Systems - Cheatsheet.tex b/Advanced Operating Systems - Cheatsheet.tex index 2072a35..8e71c4b 100644 --- a/Advanced Operating Systems - Cheatsheet.tex +++ b/Advanced Operating Systems - Cheatsheet.tex @@ -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} \ No newline at end of file