Ü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*}
\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 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
\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 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}
\begin{itemize*}
\item Minimallösung: (lebenswichtig für Echtzeit-System)
Wichtigkeit eines Prozesses
\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
\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 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 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
\end{itemize*}
%\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 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*}
\end{enumerate*}
\subsubsection{Echtzeit-Speicherverwaltung}
\subsection{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 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*}