Überlast
This commit is contained in:
parent
f97143c828
commit
1ff7a95c0c
BIN
Advanced Operating Systems - Cheatsheet.pdf
(Stored with Git LFS)
BIN
Advanced Operating Systems - Cheatsheet.pdf
(Stored with Git LFS)
Binary file not shown.
@ -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*}
|
||||||
|
Loading…
Reference in New Issue
Block a user