From 1ff7a95c0c1be8592db44c1e9bdc06e8013a3942 Mon Sep 17 00:00:00 2001 From: wieerwill Date: Mon, 28 Feb 2022 17:44:46 +0100 Subject: [PATCH] =?UTF-8?q?=C3=9Cberlast?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Advanced Operating Systems - Cheatsheet.pdf | 4 +- Advanced Operating Systems - Cheatsheet.tex | 137 ++++++-------------- 2 files changed, 42 insertions(+), 99 deletions(-) diff --git a/Advanced Operating Systems - Cheatsheet.pdf b/Advanced Operating Systems - Cheatsheet.pdf index ec36e33..a22b014 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:6224ee7077af34c42a03830d1afbbb134d75b7e81166a6d388e686425046bb76 -size 586141 +oid sha256:d2443545d668e4c59dfdc0859d40b777a0f2451adac16a84dae40465f53b6204 +size 584820 diff --git a/Advanced Operating Systems - Cheatsheet.tex b/Advanced Operating Systems - Cheatsheet.tex index 640a703..c1a78e8 100644 --- a/Advanced Operating Systems - Cheatsheet.tex +++ b/Advanced Operating Systems - Cheatsheet.tex @@ -2256,127 +2256,70 @@ \end{itemize*} \subsubsection{Überlast} - \begin{itemize*} - \item Definition: kritische Situation - bei der die benötigte Menge an - Prozessorzeit die Kapazität des vorhandenen Prozessors übersteigt - $(U\textgreater1)$ - \begin{itemize*} - \item[$\rightarrow$] nicht alle Prozesse können Fristen einhalten - \end{itemize*} - \item Hauptrisiko: kritische Prozesse können Fristen nicht einhalten - $\rightarrow$ Gefährdung funktionaler und anderer - nichtfkt. Eigenschaften ( $\rightarrow$ harte Fristen!) - \item Stichwort: ,,graceful degradation'' (,,würdevolle'' Verschlechterung) - statt unkontrollierbarer Situation $\rightarrow$ - Wahrung von Determinismus + \item Definition: kritische Situation, bei der benötigte Menge an Prozessorzeit die Kapazität des vorhandenen Prozessors übersteigt %$(U< 1)$ + \item[$\rightarrow$] nicht alle Prozesse können Fristen einhalten + \item Hauptrisiko: kritische Prozesse können Fristen nicht einhalten $\rightarrow$ Gefährdung funktionaler und anderer nichtfkt. Eigenschaften ( $\rightarrow$ harte Fristen!) + \item Stichwort: ,,graceful degradation'' statt unkontrollierbarer Situation $\rightarrow$ Wahrung von Determinismus \end{itemize*} - - \paragraph{Wichtigkeit eines - Prozesses} - + Wichtigkeit eines Prozesses \begin{itemize*} - \item Minimallösung: (lebenswichtig für Echtzeit-System) - \begin{itemize*} - \item Unterscheidung zwischen Zeitbeschränkungen (Fristen) und tatsächlicher Wichtigkeit eines Prozesses für System - \end{itemize*} - \item Allgemein gilt: - \begin{itemize*} - \item Wichtigkeit eines Prozesses ist unabhängig von seiner Periodendauer und irgendwelchen Fristen - \item z.B. kann ein Prozess trotz späterer Frist viel wichtiger als anderer mit früherer Frist sein. - \item Beispiel: Bei chemischem Prozess könnte Temperaturauswertung jede 10s wichtiger sein als Aktualisierung graphischer Darstellung an Nutzerkonsole jeweils nach 5s - \end{itemize*} + %\item Minimallösung (lebenswichtig für Echtzeit-System) + \item Unterscheidung zwischen Zeitbeschränkungen (Fristen) und tatsächlicher Wichtigkeit eines Prozesses für System + \item Wichtigkeit eines Prozesses ist unabhängig von seiner Periodendauer und irgendwelchen Fristen + \item z.B. kann Prozess trotz späterer Frist wichtiger als anderer mit früherer Frist sein + %\item Beispiel: Bei chemischem Prozess könnte Temperaturauswertung jede 10s wichtiger sein als Aktualisierung graphischer Darstellung an Nutzerkonsole jeweils nach 5s \end{itemize*} - - \paragraph{Umgang mit Überlast: alltägliche - Analogien} - + Umgang mit Überlast: alltägliche Analogien \begin{enumerate*} - \item Weglassen weniger wichtiger Aktionen - \begin{itemize*} - \item ohne Frühstück aus dem Haus... - \item kein Zähneputzen ... - \item Wichtung vom Problem bzw. Aktivitätsträgern (hier: Personen) abhängig! - \end{itemize*} - \item Verkürzen von Aktivitäten - \begin{itemize*} - \item Katzenwäsche... - \end{itemize*} - \item Kombinieren - \begin{itemize*} - \item kein Frühstück + Katzenwäsche + ungekämmt - \end{itemize*} + \item Weglassen weniger wichtiger Aktionen (kein Frühstück...) + \item Verkürzen von Aktivitäten (Katzenwäsche...) + \item Kombinieren (kein Frühstück + Katzenwäsche + ungekämmt) \end{enumerate*} - - \paragraph{Wichtung von Prozessen} - - Behandlung: - + Wichtung von Prozessen \begin{itemize*} - \item zusätzlicher Parameter V (Wert) für jeden Prozess/Thread einer - Anwendung - \item spezifiziert relative Wichtigkeit eines Prozesses (od. Thread) im - Verhältnis zu anderen Prozessen (Threads) der gleichen Anwendung - \item bei Scheduling: V stellt zusätzliche Randbedingung (primär: Priorität - aufgrund von Frist, sekundär: Wichtigkeit) + \item Parameter V für jeden Prozess/Thread einer Anwendung + \item spezifiziert relative Wichtigkeit eines Prozesses/Thread im Verhältnis zu anderen der gleichen Anwendung + \item bei Scheduling: V stellt zusätzliche Randbedingung (primär: Priorität aufgrund von Frist, sekundär: Wichtigkeit) \end{itemize*} - - \paragraph{Obligatorischer und optionaler - Prozessanteil} - + Obligatorischer und optionaler Prozessanteil \begin{itemize*} - \item Aufteilung der Gesamtberechnung $(C_{ges})$ eines Prozesses in - zwei Phasen - \item einfache Möglichkeit der Nutzung des Konzepts des anpassbaren - Prozessorzeitbedarfs - \item Prinzip: - \begin{itemize*} - \item Bearbeitungszeitbedarf eines Prozesses zerlegt in \begin{enumerate*} \item obligatorischer Teil (Pflichtteil, $C_{ob}$): muss unbedingt u. immer ausgeführt werden $\rightarrow$ liefert bedingt akzeptables Ergebnis \item optionaler Teil $(C_{opt})$: nur bei ausreichender Prozessorkapazität ausgeführt $\rightarrow$ verbessert durch obligatorischen Teil erzieltes Ergebnis \end{enumerate*} - \item Prinzip in unterschiedlicher Weise verfeinerbar - \end{itemize*} + \item Aufteilung der Gesamtberechnung eines Prozesses in zwei Phasen + \item Möglichkeit der Nutzung des anpassbaren Prozessorzeitbedarfs + \item Bearbeitungszeitbedarf eines Prozesses zerlegt in + \begin{enumerate*} + \item obligatorischer Teil: unbedingt und immer ausführen $\rightarrow$ liefert bedingt akzeptables Ergebnis + \item optionaler Teil: nur bei ausreichender Lapazität ausführen $\rightarrow$ verbessert erzieltes Ergebnis + \end{enumerate*} + \item Prinzip in unterschiedlicher Weise verfeinerbar %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-obligatorisch-optionaler-prozessanteil.png} \end{itemize*} - \subsubsection{Echtzeit-Interruptbehandlung} - - \begin{enumerate*} - \item Fristüberschreitung durch ungeeignete Interruptbearbeitung - %\begin{itemize*} - %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-interruptbehandlung-fristüberschreitung.png} - %\end{itemize*} - \item Lösung für Echtzeitsysteme ohne Fristüberschreitung - \begin{itemize*} - \item Interrupt wird zunächst nur registriert (deterministischer Zeitaufwand) - \item tatsächliche Bearbeitung der Interruptroutine muss durch Scheduler eingeplant werden $\rightarrow$ Pop-up Thread - %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-interruptbehandlung-lösung.png} - \end{itemize*} - \end{enumerate*} - - - \subsubsection{Echtzeit-Speicherverwaltung} - \begin{itemize*} - \item Prinzip: - \begin{itemize*} - \item Hauptanliegen: auch hier Fristen einhalten - \item wie bei Interrupt-Bearbeitung und Prioritätsumkehr: unkontrollierbare Verzögerungen der Prozessbearbeitung (= zeitlicher Nichtdeterminismus) vermeiden! - \end{itemize*} + \item Fristüberschreitung durch ungeeignete Interruptbearbeitung + %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-interruptbehandlung-fristüberschreitung.png} + \item Interrupt wird nur registriert (deterministischer Zeitaufwand) + \item tatsächliche Bearbeitung der Interruptroutine muss durch Scheduler eingeplant werden $\rightarrow$ Pop-up Thread + %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-interruptbehandlung-lösung.png} + \end{itemize*} + + \subsection{Echtzeit-Speicherverwaltung} + \begin{itemize*} + \item Hauptanliegen: Fristen einhalten + \item unkontrollierbare Verzögerungen der Prozessbearbeitung vermeiden \item Ressourcenzuordnung, deswegen: \begin{enumerate*} - - \item keine Ressourcen-Zuordnung ,,on-demand'' (d.h. in dem Moment, wo sie benötigt werden) sondern ,,Pre-Allokation'' (= Vorab-Zuordnung) - \item keine dynamische Ressourcenzuordnung (z.B. Hauptspeicher), sondern Zuordnung maximal benötigter Menge bei Pre-Allokation ( $\rightarrow$ BS mit ausschließlich statischer Hauptspeicherallokation: TinyOS) + \item keine Ressourcen-Zuordnung ,,on-demand'' sondern ,,Pre-Allokation'' (=Vorab) + \item keine dynamische Ressourcenzuordnung, sondern Zuordnung maximal benötigter Menge bei Pre-Allokation \end{enumerate*} \end{itemize*} - \paragraph{Hauptspeicherverwaltung} - \begin{itemize*} \item bei Anwendung existierender Paging-Systeme \begin{itemize*}