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 | ||