diff options
| author | Gregor Kleen <gkleen@yggdrasil.li> | 2016-01-11 02:30:41 +0000 |
|---|---|---|
| committer | Gregor Kleen <gkleen@yggdrasil.li> | 2016-01-11 02:30:41 +0000 |
| commit | e621ada27e4eb7b4495416a59741893a6003a20f (patch) | |
| tree | a2d3937b9a7462534d3028cf3ed39a82249ac06b | |
| parent | f487420143603e324d98e0adf14bc75ec2e33208 (diff) | |
| download | uni-e621ada27e4eb7b4495416a59741893a6003a20f.tar uni-e621ada27e4eb7b4495416a59741893a6003a20f.tar.gz uni-e621ada27e4eb7b4495416a59741893a6003a20f.tar.bz2 uni-e621ada27e4eb7b4495416a59741893a6003a20f.tar.xz uni-e621ada27e4eb7b4495416a59741893a6003a20f.zip | |
OSS 10
| -rw-r--r-- | ws2015/oss/blaetter/10/abgabe.md | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/ws2015/oss/blaetter/10/abgabe.md b/ws2015/oss/blaetter/10/abgabe.md new file mode 100644 index 0000000..530ce2d --- /dev/null +++ b/ws2015/oss/blaetter/10/abgabe.md | |||
| @@ -0,0 +1,111 @@ | |||
| 1 | --- | ||
| 2 | header-includes: | ||
| 3 | - \usepackage{tikz} | ||
| 4 | - \usetikzlibrary{petri} | ||
| 5 | - \usepackage[ngerman]{babel} | ||
| 6 | --- | ||
| 7 | # Petrinetze und Erreichsbarkeitsgraphen | ||
| 8 | |||
| 9 | a) | ||
| 10 | |||
| 11 | \begin{figure}[!h] | ||
| 12 | \centering | ||
| 13 | \begin{tikzpicture} | ||
| 14 | \node [place, tokens=1, label=right:$BS$] (bs) at (0.5,0) {}; | ||
| 15 | \node [place] (p1) at (0, 2) {$P_1$}; | ||
| 16 | \node [place] (p2) at (1, 2) {$P_2$}; | ||
| 17 | |||
| 18 | \node [transition] (t1) at (0,1) {$T_1$} | ||
| 19 | edge [pre] (bs) | ||
| 20 | edge [post] (p1); | ||
| 21 | |||
| 22 | \node [transition] (t3) at (1,1) {$T_3$} | ||
| 23 | edge [pre] (bs) | ||
| 24 | edge [post] (p2); | ||
| 25 | |||
| 26 | \node [transition] (t4) at (1, 3) {$T_4$} | ||
| 27 | edge [pre] (p2) | ||
| 28 | edge [post, bend left=45] (bs); | ||
| 29 | |||
| 30 | \node [transition] (t2) at (0, 3) {$T_2$} | ||
| 31 | edge [pre] (p1) | ||
| 32 | edge [post, bend right=45] (bs); | ||
| 33 | \end{tikzpicture} | ||
| 34 | \caption{Generisches preemptives Multitasking} | ||
| 35 | \label{fig:45a} | ||
| 36 | \end{figure} | ||
| 37 | |||
| 38 | Die Stelle $BS$ steht für die Betriebsystemsfunktionen, $P_1$ für den ersten, und $P_2$ für den zweiten Prozess. | ||
| 39 | Hat eine der Stellen eine Marke so heißt dies, dass der jeweilige Prozess bzw.\, die Funktionen momentan ausgeführt werden. | ||
| 40 | |||
| 41 | Die Transitionen bezeichnen Prozesswechsel. | ||
| 42 | |||
| 43 | b) | ||
| 44 | |||
| 45 | \begin{figure}[!h] | ||
| 46 | \centering | ||
| 47 | \begin{tikzpicture} | ||
| 48 | \node [place, tokens=1, label=right:$BS_1$] (bs1) at (1,0) {}; | ||
| 49 | \node [place, label=left:$BS_2$] (bs2) at (0,0) {}; | ||
| 50 | \node [place] (p1) at (0, 2) {$P_1$}; | ||
| 51 | \node [place] (p2) at (1, 2) {$P_2$}; | ||
| 52 | |||
| 53 | \node [transition] (t1) at (0,1) {$T_1$} | ||
| 54 | edge [pre] (bs1) | ||
| 55 | edge [post] (p1); | ||
| 56 | |||
| 57 | \node [transition] (t3) at (1,1) {$T_3$} | ||
| 58 | edge [pre] (bs2) | ||
| 59 | edge [post] (p2); | ||
| 60 | |||
| 61 | \node [transition] (t4) at (1, 3) {$T_4$} | ||
| 62 | edge [pre] (p2) | ||
| 63 | edge [post, bend left=45] (bs1); | ||
| 64 | |||
| 65 | \node [transition] (t2) at (0, 3) {$T_2$} | ||
| 66 | edge [pre] (p1) | ||
| 67 | edge [post, bend right=45] (bs2); | ||
| 68 | \end{tikzpicture} | ||
| 69 | \caption{Round-Robin Scheduling} | ||
| 70 | \label{fig:45b} | ||
| 71 | \end{figure} | ||
| 72 | |||
| 73 | Sowohl $BS_1$ als auch $BS_2$ bezeichnen hier Betriebssystemsfunktionen tragen jedoch zusätzlich die Information welcher Prozess vom Round-Robin Verfahren als nächstes ausgewählt wird. | ||
| 74 | |||
| 75 | c) | ||
| 76 | |||
| 77 | |||
| 78 | \begin{figure}[!h] | ||
| 79 | \centering | ||
| 80 | \begin{tikzpicture} | ||
| 81 | \node (A) {$M_0 = (1, 0, 0, 0)$}; | ||
| 82 | \node (B) [below of=A] {$M_1 = (0, 0, 1, 0)$}; | ||
| 83 | \node (C) [below of=B] {$M_2 = (0, 1, 0, 0)$}; | ||
| 84 | \node (D) [below of=C] {$M_3 = (0, 0, 0, 1)$}; | ||
| 85 | |||
| 86 | \draw[thick, ->] (A) -- node[right] {$T_1$} ++ (B); | ||
| 87 | \draw[thick, ->] (B) -- node[right] {$T_2$} ++ (C); | ||
| 88 | \draw[thick, ->] (C) -- node[right] {$T_3$} ++ (D); | ||
| 89 | \draw[thick, ->] (D) to [bend right=90] node[midway,left] {$T_4$} (A); | ||
| 90 | \end{tikzpicture} | ||
| 91 | \caption{Erreichbarkeitsgraph für das Petrinetz aus Abbildung \ref{fig:45b}. Das Format ist $M_n = (BS_1, BS_2, P_1, P_2)$} | ||
| 92 | \label{fig:45c} | ||
| 93 | \end{figure} | ||
| 94 | |||
| 95 | d) Damit mindestens ein Prozess verhungern könnte müsste es einen Pfad geben, der nur endlich oft durch eine Markierung läuft, die eine Marke für den betrachteten Prozess gesetzt hat. | ||
| 96 | |||
| 97 | Es gibt in Abbildung \ref{fig:45c} nur einen geschlossenen Pfad, der sowohl $M_1$ als auch $M_3$ trifft. | ||
| 98 | Insbesondere ist obig beschriebene Situation für keinen der beiden Prozesse der Fall. | ||
| 99 | |||
| 100 | e) Eine Verklemmung könnte genau dann auftreten, falls es in Abbildung \ref{fig:45c} eine Markierung gäbe, die keine Folgemarkierung hat---Dies ist nicht der Fall. | ||
| 101 | |||
| 102 | Eine Teilweise Verklemmung könnte genau dann auftreten, falls es in Abbildung \ref{fig:45c} eine Markierung gäbe, die nicht durch das Schalten von endlich vielen Transaktionen von jeder anderen Markierung erreichbar wäre. | ||
| 103 | Da der Erreichbarkeitsgraph genau aus einem zyklischen Pfad besteht, der alle Markierungen enthält, ist dies nicht der Fall. | ||
| 104 | |||
| 105 | # Multiprocessing | ||
| 106 | |||
| 107 | a) Die neu hinzukommenden Marken dürfen die Kapazität der Stelle nicht überschreiten | ||
| 108 | b) $M(s) - W(s,t)$ | ||
| 109 | c) Der gemeinsam genutzte Speicherbereich muss immer genau zu 60% gefüllt sein | ||
| 110 | d) (iii) | ||
| 111 | e) Es enthält eine teilweise Verklemmung | ||
