Überlast

This commit is contained in:
WieErWill 2022-02-28 17:44:46 +01:00
parent f97143c828
commit 1ff7a95c0c
2 changed files with 42 additions and 99 deletions

Binary file not shown.

View File

@ -2256,127 +2256,70 @@
\end{itemize*} \end{itemize*}
\subsubsection{Überlast} \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*} \begin{itemize*}
\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[$\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 Hauptrisiko: kritische Prozesse können Fristen nicht einhalten \item Stichwort: ,,graceful degradation'' statt unkontrollierbarer Situation $\rightarrow$ Wahrung von Determinismus
$\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
\end{itemize*} \end{itemize*}
Wichtigkeit eines Prozesses
\paragraph{Wichtigkeit eines
Prozesses}
\begin{itemize*}
\item Minimallösung: (lebenswichtig für Echtzeit-System)
\begin{itemize*} \begin{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 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 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 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 %\item Beispiel: Bei chemischem Prozess könnte Temperaturauswertung jede 10s wichtiger sein als Aktualisierung graphischer Darstellung an Nutzerkonsole jeweils nach 5s
\end{itemize*}
\end{itemize*} \end{itemize*}
Umgang mit Überlast: alltägliche Analogien
\paragraph{Umgang mit Überlast: alltägliche
Analogien}
\begin{enumerate*} \begin{enumerate*}
\item Weglassen weniger wichtiger Aktionen \item Weglassen weniger wichtiger Aktionen (kein Frühstück...)
\begin{itemize*} \item Verkürzen von Aktivitäten (Katzenwäsche...)
\item ohne Frühstück aus dem Haus... \item Kombinieren (kein Frühstück + Katzenwäsche + ungekämmt)
\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*}
\end{enumerate*} \end{enumerate*}
Wichtung von Prozessen
\paragraph{Wichtung von Prozessen}
Behandlung:
\begin{itemize*} \begin{itemize*}
\item zusätzlicher Parameter V (Wert) für jeden Prozess/Thread einer \item Parameter V für jeden Prozess/Thread einer Anwendung
Anwendung \item spezifiziert relative Wichtigkeit eines Prozesses/Thread im Verhältnis zu anderen der gleichen Anwendung
\item spezifiziert relative Wichtigkeit eines Prozesses (od. Thread) im \item bei Scheduling: V stellt zusätzliche Randbedingung (primär: Priorität aufgrund von Frist, sekundär: Wichtigkeit)
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)
\end{itemize*} \end{itemize*}
Obligatorischer und optionaler Prozessanteil
\paragraph{Obligatorischer und optionaler
Prozessanteil}
\begin{itemize*} \begin{itemize*}
\item Aufteilung der Gesamtberechnung $(C_{ges})$ eines Prozesses in \item Aufteilung der Gesamtberechnung eines Prozesses in zwei Phasen
zwei Phasen \item Möglichkeit der Nutzung des anpassbaren Prozessorzeitbedarfs
\item einfache Möglichkeit der Nutzung des Konzepts des anpassbaren \item Bearbeitungszeitbedarf eines Prozesses zerlegt in
Prozessorzeitbedarfs \begin{enumerate*}
\item Prinzip: \item obligatorischer Teil: unbedingt und immer ausführen $\rightarrow$ liefert bedingt akzeptables Ergebnis
\begin{itemize*} \item optionaler Teil: nur bei ausreichender Lapazität ausführen $\rightarrow$ verbessert erzieltes Ergebnis
\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*} \end{enumerate*}
\item Prinzip in unterschiedlicher Weise verfeinerbar \item Prinzip in unterschiedlicher Weise verfeinerbar
\end{itemize*}
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-obligatorisch-optionaler-prozessanteil.png} %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-obligatorisch-optionaler-prozessanteil.png}
\end{itemize*} \end{itemize*}
\subsubsection{Echtzeit-Interruptbehandlung} \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*} \begin{itemize*}
\item Interrupt wird zunächst nur registriert (deterministischer Zeitaufwand) \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 tatsächliche Bearbeitung der Interruptroutine muss durch Scheduler eingeplant werden $\rightarrow$ Pop-up Thread
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-interruptbehandlung-lösung.png} %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-interruptbehandlung-lösung.png}
\end{itemize*} \end{itemize*}
\end{enumerate*}
\subsubsection{Echtzeit-Speicherverwaltung}
\subsection{Echtzeit-Speicherverwaltung}
\begin{itemize*} \begin{itemize*}
\item Prinzip: \item Hauptanliegen: Fristen einhalten
\begin{itemize*} \item unkontrollierbare Verzögerungen der Prozessbearbeitung vermeiden
\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 Ressourcenzuordnung, deswegen: \item Ressourcenzuordnung, deswegen:
\begin{enumerate*} \begin{enumerate*}
\item keine Ressourcen-Zuordnung ,,on-demand'' sondern ,,Pre-Allokation'' (=Vorab)
\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, sondern Zuordnung maximal benötigter Menge bei Pre-Allokation
\item keine dynamische Ressourcenzuordnung (z.B. Hauptspeicher), sondern Zuordnung maximal benötigter Menge bei Pre-Allokation ( $\rightarrow$ BS mit ausschließlich statischer Hauptspeicherallokation: TinyOS)
\end{enumerate*} \end{enumerate*}
\end{itemize*} \end{itemize*}
\paragraph{Hauptspeicherverwaltung} \paragraph{Hauptspeicherverwaltung}
\begin{itemize*} \begin{itemize*}
\item bei Anwendung existierender Paging-Systeme \item bei Anwendung existierender Paging-Systeme
\begin{itemize*} \begin{itemize*}