2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-19 11:38:05 +02:00
LaTeX-examples/documents/Warteschlangen/klaus.tex

518 lines
29 KiB
TeX

%-----------------------------------------------------------------------------------------------------------------
\chapter{Abschätzungen und Näherungen}
%-----------------------------------------------------------------------------------------------------------------
\section{Abschätzungen}
%------------------------------------------------------------------------------------------------------------------
Die Ergebnisse des vorigen Abschnittes sind deswegen etwas unbefriedigend, weil die angestrebte Zerlegung nur in
Spezialfällen möglich ist. Im allgemeinen Fall müssen wir uns darauf beschränken, Abschätzungen und
näherungsweise Lösungen zu finden.
Wir gehen wieder von unserer Rekursionsgleichung aus:
\[w_{n+1} = (w_{n}+u_{n})_{+} \]
Wir führen eine neue Zufallsvariable $y_{n}$ ein, die den entsprechenden Negativteil darstellt:
\[y_{n} = (w_{n}+u_{n})_{-} ~ ~ ~ ~ ~ ((x)_{-} := (-x)_{+}) ~. \]
Damit erhalten wir
\[ w_{n+1}-y_{n} = w_{n}+u_{n} ~.\]
Das gibt für die Erwartungswerte:
\[\E(w_{n+1})-\E(y_{n}) = \E(w_{n})+\E(u_{n}) ~.\]
Für $n$ $\rightarrow$ $\infty$ ergibt sich
\[-\E(y) = \E(u) = \E(x) - \E(t) \qquad \mbox{oder} \qquad \E(y) = \E(t) - \E(x) ~.\]
Leider haben wir keine Beziehung für die Wartezeit (Anmerkung: in den letzten Gleichungen steht nur eine Beziehung für die Verteilungen).
Als nächstes quadrieren wir die Ausgangsgleichung
\[ w_{n+1}^{2}+y_{n}^{2}-2w_{n+1}y_{n}=w_{n}^{2}+2w_{n}u_{n}+u_{n}^{2} ~.\]
Wegen \( (x)_{+}(x)_{-} = 0 \) ist \( w_{n+1}y_{n} = 0 ~,\) also
\[w_{n+1}^2 + y_{n}^2 = w_{n}^2+2w_{n}u_{n}+u_{n}^2 ~.\]
Wenn wir wieder die Erwartungswerte berchnen und \(n \rightarrow \infty \) gehen lassen, so ergibt sich
\begin{eqnarray*}
\E(w^{2})+\E(y^{2})&=&\E(w^{2})+2\E(wu)+\E(u^{2}) = \\
&=&\E(w^{2})+2\E(w)\E(u)+\E(u^{2}) \\
\end{eqnarray*}
($w_{n}$ und $u_{n}$ sind ja unabhängig).
Schließlich haben wir
\[\E(w) = \frac{\E(u^{2})-\E(y^{2})}{-2\E(u)} \qquad [\E(u) \mbox{ ist ja negativ}] ~.\]
Wir erhalten eine obere Abschätzung, wenn wir $\E(y^{2})$ nach unten abschätzen. Dazu verhilft uns die Ungleichung
\[\E(y^{2}) \geq (\E(y))^{2} = (\E(u))^{2} \qquad \mbox{also }\]
\[\E(w^{2}) \leq \frac{{\bf Var}(u)}{-2\E(u)} = \frac{{\bf Var}(x)+{\bf Var}(t)}{-2\E(u)} ~.\]
Für eine obere Abschätzung für $\E(y^{2})$ beachten wir, daß
\[y=(w+u)_{-} \leq (u)_{-} \quad \mbox{da} \quad w \geq 0 ~.\]
Wegen$ \quad u^{2} = ((u)_{+}-(u)_{-})^{2} = ((u)_{+})^{2}+((u)_{-})^{2} \quad $erhalten wir
\[\E(w) \geq \frac{(\E((u)_{+}))^{2}}{-2\E(u)} ~.\]
Ein weiterer Weg, eine untere Abschätzung zu finden ist folgender:
\[\E(w_{n+1}) = \E(w_{n}+u_{n})_{+} = \E[\E((w_{n}+u_{n})_{+}\vert w_{n})] ~.\]
Wenn wir für die Verteilungsfunktion von $u_{n}$
\[C(y)=\PP(u_{n} \leq y) \]
setzen, erhalten wir
\[\E((w_{n}+u_{n})_{+} \vert w_{n} = y) = \int_{-y}^{\infty}(u+z)dC(z) = \int_{-y}^{\infty}(1-C(z))dz =: g(y) ~.\]
Also
\[\E(w_{n+1}) = \E(g(w_{n}))\]
$g$ ist konvex ($g'$ ist monoton), also können wir die JENSEN'sche Ungleichung anwenden:
\[\E(g(w_{n})) \geq g(\E(w_{n}))~.\]
Für $n \rightarrow \infty$ ergibt sich
\[\E(w) \geq g(\E(w)) ~.\]
Wir betrachten die Gleichung
\[g(y) = y ~.\]
Die Funktion $y-g(y)$ hat die Ableitung $G(-y) \geq 0$, ist also monoton.\\
Weiters ist $g(0) = \E((u_{n})_{+}) > 0 \mbox{ falls } W(u_{n} > 0) > 0$ ist (andernfalls ist $w = 0$).\\
Für $n \rightarrow \infty$ ist $g(y) \rightarrow \E(u) < 0$, es gibt also eine eindeutig bestimmte Lösung $y_{0}$, für die $g(y_{0}) = y_{o}$, und
\[\E(w) \geq g(y_{o}) ~.\]
%------------------------------------
\section{Näherungen}
%------------------------------------
\bigskip
Ähnlich wie die Abschätzungen des vorigen Kapitels sollen uns die Näherungen dieses Abschnittes dazu dienen, ungefähre Aussagen über das qualitative
Verhalten einer Warteschlange zu treffen. Eine Möglichkeit besteht darin, die auftretenden Verteilungen durch solche zu ersetzen, für die wir exakte Ergebnisse
kennen. Dazu können wir etwa folgende Klassen von Verteilungen verwenden:
\begin{enumerate}
\item {\bf Verteilungen mit rationaler Laplacetransformation}
Man kann jede Verteilung durch Verteilungen mit rationalen Laplacetransformationen annähern. Für diese Verteilungen kann \\
man die Spektralzerlegung für $G/G/1$ \enquote{leicht} durchführen: \\
man findet die Nullstellen von Zähler und Nenner und ordnet sie, je nachdem in welcher Halbebene sie liegen, entweder
der Funktion $\Psi^{+}$ oder $\Psi^{-}$zu.
\item {\bf Diskrete Verteilungen}
Ähnlich wie unter $1.$ kann man jede Verteilung durch eine diskrete Verteilung annähern. Das folgende Beispiel zeigt, wie die diskreten Verteilungen behandelt
werden können:\\
Es sei
\begin{eqnarray*}
\PP(t_{n}=1)=a, \quad \PP(t_{n}=2)=1-a \\
\PP(x_{n}=1)=b, \quad \PP(x_{n}=2)=1-b
\end{eqnarray*}
[$b>a$].
Für $u_{n}=x_{n}-t_{n+1}$ ergibt sich:
\begin{eqnarray*}
\PP(u_{n}=-1)&=&b(1-a) \\
\PP(u_{n}=1)&=&a(1-b) \\
\PP(u_{n}=0)&=&ab+(1-a)(1-b) ~.
\end{eqnarray*}
Für die stationäre Verteilung der Wartezeit $w$ ergibt sich die Rekursion
\begin{eqnarray*}
p_{k}&=&a(1-b)p_{k-1}+(ab+(1-a)(1-b))p_{k}+b(1-a)p_{k+1} \\
p_{0}&=&(a(1-b)+ab-(1-a)(1-b))p_{0}+b(1-a)p_{1} ~.
\end{eqnarray*}
Wir erhalten
\begin{eqnarray*}
p_{k}&=&p_{0}\left( \frac{a(1-b)}{b(1-a)}\right)^{k} \\
p_{0}&=&1-\frac{a(1-b)}{b(1-a)}=\frac{b-a}{b(1-a)} ~.\\
\end{eqnarray*}
Falls wir mehr als zwei mögliche Werte für $x$ bzw. $t$ haben, müssen wir eine Rekursion höherer Ordnung lösen; dazu sind bekanntlich die Nullstellen des
charakteristischen Polynoms zu bestimmen. Auch hier, ebenso wie im im vorigen Abschnitt, reduziert sich also das Problem auf die Lösung einer algebraischen
Gleichung. Diese Lösung ist für hohe Polynomgrade nur numerisch möglich. Dies und die Tatsache, daß man nicht genau weiß, wie eine \enquote{gute} Näherung zu
wählen
ist, reduziert die Brauchbarkeit dieser beiden Näherungen.
\item {\bf Approximation für starke Auslastung (\enquote{Heavy traffic approximation})}
Wir betrachten den Fall $\rho \approx 1$. \\
Ausgangspunkt unserer Betrachtungen ist die Spektralzerlegung der $G/G/1$:
\[\frac{\Psi^{+}(s)}{\Psi^{-}(s)}=\tilde A (-s)\tilde B (s)-1 ~.\]
Für $s \rightarrow 0$ erhalten wir daraus die Entwicklung
\begin{eqnarray*}
\frac{\Psi^{+}(s)}{\Psi^{-}(s)}&=&(\E(t)-\E(x))s+\frac{s^{2}}{2}\E((x-t)^{2})+o(s^{2})= \\
&=&(1-\rho)s\E(t)+\frac{s^{2}}{2}\E((x-t)^{2})+o(s^{2})= \\
&=&(1-\rho)s\E(t)+\frac{s^{2}}{2}({\bf Var}(x)+{\bf Var}(t)+ \\
&+&(1-\rho)^{2}(\E(t))^{2}) + o(s^{2}) ~.
\end{eqnarray*}
Für $\rho \approx 1$ ist $(1-\rho)^{2}(\E(t))^{2}$ zu vernachlässigen, also
\begin{eqnarray*}
\frac{\Psi^{+}(s)}{\Psi^{-}(s)}&\approx&(1-\rho)s\E(t)+\frac{s^{2}}{2}({\bf Var}(x)+{\bf Var}(t))+o(s^{2}) \approx \\
&\approx&s(s-s_{0}) \frac{{\bf Var}(x)+{\bf Var}(t)}{2} ~.
\end{eqnarray*}
$\Psi^{+}(s)$ ist in der Nähe von $0$ stetig, also haben wir
\[\Psi^{+}(s) \approx Cs(s-s_{o})\]
mit
\[s_{0}=-\frac{2(1-\rho)\E(t)}{{\bf Var}(x)+{\bf Var}(t)} \]
und
\[C=\Psi^{-}(0)\frac{{\bf Var}(x)+{\bf Var}(t)}{2} ~. \]
Wir erhalten daraus
\[\Phi(s) \approx -\frac{s_{0}}{s(s-s_{0})}=\frac{1}{s}-\frac{1}{s-s_{0}} ~.\]
Also ergibt sich für die Verteilungsfunktion der Wartezeit
\[ F(y) \approx 1 - e^{-y\frac{2\E(t)(1-\rho)}{{\bf Var}(x)+{\bf Var}(t)}} ~.\]
Die Wartezeit ist also näherungsweise exponentialverteilt mit Mittel
\[\E(w)=\frac{{\bf Var}(x)+{\bf Var}(t)}{2\E(t)(1-\rho)} ~.\]
Dieses Ergebnis kann man als \index{Satz!Zentraler Grenzwertsatz für Warteschlangen}\enquote{zentralen Grenzwertsatz} für Warteschlangen betrachten.
Das Mittel dieser Exponentialverteilung haben wir bereits als obere
Abschätzung für die mittlere Wartezeit erhalten.
\item{\bf Die Flussapproximation}
Diese Näherung geht von einer einfachen Idee aus:\\
Wir ersetzen die Ankünfte und Bedienvorgänge durch konstante Ströme von $\lambda$ bzw. $\mu$ Kunden
pro Zeiteinheit. In unserem Standardmodell $(\lambda < \mu)$ ergibt sich aus dieser Näherung natürlich, daß die
Schlange stets leer ist, was offensichtlich nicht sehr brauchbar ist.
Für zwei Fälle gibt diese Approximation aber doch interessante Resultate:
\begin{enumerate}
\item Falls $\mu < \lambda$ ist, wächst die Anzahl der Kunden im System um $(\lambda - \mu)$ Kunden pro Zeiteinheit.
\item Falls $\lambda < \mu$ ist, und falls die Anzahl der Kunden groß ist, kann man die Zeit, bis das System wieder leer ist, mit Hilfe dieser
Näherung berechnen.
\end{enumerate}
\item{\bf Die Diffusionsnäherung}
Dies ist wie die vorige Näherung eine Approximation durch einen kontinuierlichen Prozeß. Diesmal wird auch die Varianz betrachtet.
Es sei $N_{a}(u)$ die Anzahl der Kunden, die bis zur Zeit $t$ ankommen.\\
Es gilt die Beziehung
\[ N_{a}(u) \geq n \Leftrightarrow T_{n} \geq u \]
$T_{n}$ ist, wie üblich, die Ankunftszeit des $n$-ten Kunden.
Aus dem Gesetz der großen Zahlen folgt:
\[ T_{n} \approx n\E(t) ~.\]
Das impliziert
\[N_{a}(u) \approx \lambda u ~. \]
Der zentrale Grenzwertsatz gibt uns
\[\PP(T_{n} \leq n\E(t)+z\sqrt{n{\bf Var}(t)}) = \Phi (z) ~. \]
Daraus ergibt sich für großes n
\begin{eqnarray*}
& &\PP(N_{a}\geq\lambda u + y\sqrt{u}) = \\
& & ~ ~=\PP(T_{\lambda u + y\sqrt{u}} \leq u) = \\
& & ~ ~=\PP(T_{\lambda u + y\sqrt{u}} \leq \E(t)(\lambda u + y\sqrt{u}) - y\E(t)\sqrt{u} ) = \\
& & ~ ~=\PP(T_{\lambda u + y\sqrt{u}} \leq \E(t)(\lambda u + y\sqrt{u}) - \\
& & ~ ~ ~ ~ ~- y\sqrt{(\E(t))^{3}(\lambda u + y\sqrt{u})})=\\
& &~ ~=\PP(T_{\lambda u + y\sqrt{u}} \leq \E(t)(\lambda u + y\sqrt{u}) - \\
& & ~ ~ ~ ~ ~-\frac{y}{\sqrt{\lambda ^{3}{\bf Var}(t)}}\sqrt{{\bf Var}(t)(\lambda u + y\sqrt{u})}) \\
& &~ ~=1 - \Phi(\frac{y}{\sqrt{\lambda ^{3}{\bf Var}(t)}}) ~.
\end{eqnarray*}
$N_{a}(u)$ ist also näherungsweise normalverteilt mit Mittel $u\lambda$ und Varianz $u\lambda^{3}{\bf Var}(t)$. Genauso erhält man für die Anzahl $N_{b}(u)$
der
Kunden, die während der Zeit $u$ bedient werden (wenn die Schlange nicht leer ist) eine näherungsweise Normalverteilung mit Mittel $\mu u$ und Varianz
$\mu^{3}u{\bf Var}(x)$. Wir nehmen jetzt an, daß diese Werte durch kontinuierliche Beiträge zustande kommen, d.h. die \enquote{Anzahl} der Ankünfte (bzw.
Bedienvorgänge)
in der kurzen Zeit $\Delta u$ soll normalverteilt mit Mittel $\lambda\Delta u$ (bzw. $\mu\Delta u$) und Varianz $\lambda^{3}\Delta u{\bf Var}(t)$ (bzw.
$\mu^{3}\Delta
u{\bf Var}(x)$) sein. Die Anzahl der Ankünfte bzw. Bedienvorgänge über disjunkten Intervallen sollen natürlich unabhängig sein. Die Änderung der Anzahl der
Kunden
im System während der Zeit $\Delta u$ ist dann normalverteilt mit Mittel $\Delta u(\lambda - \mu)$ und Varianz $\Delta u\sigma^{2}$ mit $\sigma^{2} =
\lambda^{3}{\bf Var}(t) + \mu^{3}{\bf Var}(x)$.\\
(Die letzte Beziehung gilt natürlich nur, wenn die Anzahl der Kunden im System $> 0$ ist).
Es sei nun
\[F(x,u) = \PP(N(u) \leq x) ~.\]
Wir stellen eine Gleichung für $F(x,u+\Delta u)$ auf, dabei sei $X(\Delta u)$ die Änderung der Kunden während $\Delta u$:
\begin{eqnarray*}
F(x,u+\Delta u)&=&\PP(N(u+\Delta u) \leq x) = \\
&=&\PP(N(u)+X(\Delta u) \leq x) = \\
&=&\PP(N(u) \leq x - X(\Delta u)) = \\
&=&\E(F(x-X(\Delta u),u)) = \\
&=&\E(F(x,u)-F_{x}(x,u)X(\Delta u) + \\
& &+ \frac{1}{2}F_{xx}(x,u)X(\Delta u)^{2} + o(\Delta u)) = \\
&=&F(x,u)-F_{x}(x,u)\E(X(\Delta u)) + \\
& &+\frac{1}{2}F_{xx}(x,u)(\E(X(\Delta u)^{2})) + o(\Delta u) = \\
&=&F(x,u)-F_{x}(x,u)\Delta u(\lambda-\mu) + \\
& &+\frac{1}{2}F_{xx}(x,u)\sigma^{2}\Delta u + o(\Delta u) ~.
\end{eqnarray*}
Wenn man $F(x,u)$ nach links bringt, durch $\Delta u$ dividiert, und $\Delta u \rightarrow 0$ gehen läßt, ergibt sich
\begin{eqnarray*}
F_{u}(x,u)&=&(\mu - \lambda)F_{x}(x,u) + \frac{1}{2}\sigma^{2}F_{xx}(x,u) \qquad (x \geq 0) \\
& & \\
F(x,0)&=&1 \qquad (x \geq 0) \\
F(x,0)&=&0 \qquad (x < 0) \\
F(0,u)&=&0 \qquad (u > 0) ~.
\end{eqnarray*}
Die Anfangsbedingung ergibt sich aus der Forderung, daß das System zur Zeit $0$ leer sein soll, und die Randbedingung daraus, daß die Anzahl der Kunden nicht
negativ sein darf.
Man kann sehr leicht die Lösung der Gleichung ohne Randbedingung finden, indem man die Laplace-Transformation anwendet:
\[G(z,u)=\int_{-\infty}^{\infty} e^{-xz}F(x,u)\diff x ~.\]
Wir erhalten nach einigen partiellen Integrationen:
\[G_{u}(z,u) = (\mu-\lambda)zG(z,u)+\frac{1}{2}\lambda^{2}z^{2}G(z,u) ~, \]
also
\[ G(z,u) = G(z,0)e^{\frac{1}{2}\sigma^{2}z^{2}+(\mu - \lambda)z} \]
und, da $G(z,0)=\frac{1}{z}$
\[G(z,u) = \frac{1}{z}e^{\frac{1}{2}\sigma^{2}uz^{2}+(\mu - \lambda)zu} ~.\]
Die Inversion der Laplace-Transformation liefert
\[F(x,u)=\Phi\left(\frac{x+(\mu - \lambda)u}{\sqrt{\sigma^{2}u}}\right) ~. \]
Um die Gleichung mit der Randbedingung zu lösen, suchen wir zuerst die stationäre Verteilung. Diese ergibt sich aus der obigen Gleichung, wenn $F(x,u)$ nicht
von $u$ abhängt. Dann ist natürlich die Ableitung nach $u = 0$, und wir erhalten:
\[ F'_{0}(x)(\mu - \lambda)+\frac{1}{2}\sigma^{2}F''(x)=0 ~. \]
Diese Gleichung hat die allgemeine Lösung
\[F(x) = C_{1}+C_{2}e^{\frac{2(\lambda - \mu)}{\sigma^{2}}x} ~. \]
Da $F(0) = 0$ und $F(\infty) = 1$ sein soll, erhalten wir
\[F(x) = 1-e^{\frac{2(\lambda - \mu)}{\sigma^{2}}x} ~. \]
Es ergibt sich also wieder eine Exponentialverteilung für die Wartezeit. Für $\rho \rightarrow 1$ stimmt diese Verteilung in erster Näherung mit der aus
Abschnitt $3.$ überein. Mit etwas mehr Arbeit kann man die folgende Lösung der partiellen Differentialgleichung erhalten:
\[F(x,u)=\Phi\left(\frac{x+u(\mu - \lambda)}{\sqrt{\sigma^{2}u}}\right)-e^{\frac{2(\mu - \lambda)}{\sigma^{2}}x}\Phi\left(\frac{-x+u(\mu -
\lambda)}{\sigma^{2}}\right) ~.\]
\end {enumerate}
%------------------------------------------------------------------------------------
\chapter{Time-Sharing}
%------------------------------------------------------------------------------------
Wir wollen jetzt unsere Kenntnisse auf eine Analyse von Fragen anwenden, die bei Time-sharing Anwendungen auftreten. \\
Wir betrachten den einfachsten Fall, daß nur eine CPU vorhanden ist, die \enquote{gleichzeitig} mehrere Programme bearbeiten muß.
Dazu wird jeweils eines der wartenden Programme ausgewählt, in den Hauptspeicher geladen, eine kurze Zeit (die sog. \index{Zeitscheibe}\enquote{Zeitscheibe}) gerechnet,
aus dem
Hauptspeicher entfernt, und das Spiel mit dem nächsten Programm fortgesetzt. Jedes Programm braucht eine bestimmte \index{Rechenzeit}Rechenzeit $x$, und sobald
diese Zeit (in
Form von einzelnen Zeitscheiben) abgearbeitet ist, verläßt das Programm das System. Da wir keine a-priori Information über die Rechenzeit eines Programmes
voraussetzen, können wir die Jobs nur aufgrund der schon verbrauchten Rechenzeit klassifizieren, und die Auswahl des nächsten Programms nach dieser verbrauchten
Rechenzeit treffen. Dabei können wir verschiedene Ziele verfolgen:
\begin{enumerate}
\item kurze Programme sollen möglichst schnell erledigt werden. Dadurch wird die Anzahl der Programme im System klein gehalten, was den Verwaltungsaufwand
reduziert; außerdem ist es psychologisch ungünstig, wenn ein Kunde auf ein 2-Sekunden-Programm eine Stunde warten muß.
\item eine möglichst \enquote{gerechte} Verteilung wäre eine, bei der die Zeit, die ein Job im System verbringt, proportional zur Rechenzeit ist; nur dann ist es nicht
möglich, durch Aufteilen eines langen Programmes in mehrere kürzere bzw. durch Zusammenfassen mehrere kürzere Programme einen Zeitgewinn zu erzielen.
\end{enumerate}
Wir machen folgende Annahmen:
\begin{enumerate}
\item Die Ankünfte erfolgen nach einem Poissonprozeß mit Rate $\lambda$, die Rechenzeiten sind unabhängig mit Verteilungsfunktion $B$ (wir haben also eine
$M/G/1$-Situation) mit Dichte $b$.
\item Die Zeitscheibe nehmen wir als infinitesimal an; weiters nehmen wir an, daß wir die Zeit zum Austauschen vernachlässigen können.
\item Wir betrachten nur die stationären Verteilungen.
\end{enumerate}
$N(u)$ sei die mittlere Anzahl von Jobs, deren verbrauchte Rechenzeit $\leq u$ ist. Dazu möge eine Dichte $n(u)$ existieren, sodaß
\[N(u)=\int_{0}^{u}n(s)ds \]
ist.
$T(u)$ sei die Zeit, die im Durchschnitt vergeht, bis ein Job $u$ Sekunden Rechenzeit bekommt. \\
$W(u)$ sei die Wartezeit eines Jobs mit $u$ Sekunden Rechenzeit, also
\[W(u) = T(u) - u ~. \]
Wir betrachten die Jobs, die schon zwischen $u$ und $u+\Delta u$ Sekunden gerechnet haben, als eine eigene Warteschlange. Hier kommen alle Jobs durch, deren
Rechenzeit $\geq u$ ist. Die Ankunftsrate in dieser Schlange ist also $\lambda(1-B(u))$.\\
Die mittlere Aufenthaltsdauer ist $T(u+\Delta u) - T(u)$, und die mittlere Anzahl von Jobs in dieser Schlange ist $\approx n(u)\Delta u$. \\
Mithilfe des Satzes von Little ergibt sich die Beziehung
\[n(u)=\lambda (1-B(u))\frac{\diff T(u)}{\diff u} ~. \]
Wir betrachten die folgende Strategien:
\begin{enumerate}
\item {\bf FCFS} (\enquote{Batch})
\item {\bf LCFS} (prä-emptiv): ein Job, der das System betritt, wird sofort bearbeitet (ein eventuell laufender Job wird dazu unterbrochen); wenn ein Job fertig
ist, wird der zuletzt unterbrochene weiterbearbeitet.
\item {\bf \index{Round Robin}Round Robin (RR)}: alle Jobs, die im System sind, werden der Reihe nach bearbeitet (abwechselnd).
\item Es wird jeweils der Job bearbeitet, der am wenigsten Rechenzeit verbraucht hat.
\end{enumerate}
Es sollte Strategie 4 kurze Jobs am meisten bevorzugen, 1 am wenigsten, 2 und 3 sollten dazwischen liegen.
\begin{enumerate}
\item Kennen wir von früher; hier ist die Wartezeit $W(u)$ konstant, und zwar ist
\[W(u) = \frac{\lambda \E(x^{2})}{2(1-\rho)} \]
und
\[T(u) = u + \frac{\lambda \E(x^{2})}{2(1-\rho)} ~. \]
\item Hier ist $T(u)$ leicht zu bestimmen. Denn $T(u)$ ist gleich der Rechenzeit $u$ plus der Summe der Rechenzeiten aller Programme, die während $T(u)$
ankommen.
Während $T(u)$ kommen $\lambda T(u)$ Programme an, jedes bringt im Schnitt $\E(x)$ Sekunden Rechenzeit mit, also gilt
\[T(u) = u + \lambda T(u)\E(x)=u + \rho T(u) ~,\]
also
\[T(u)=\frac{u}{1-\rho} ~. \]
Wir haben also ein \enquote{gerechtes} Verfahren gefunden.
\item Wenn sich $N$ Programme im System befinden, bekommt ein bestimmtes Programm $\frac{1}{N}$ der gesamten Rechenzeit. \\
Daher ist $\diff T(u) = N \diff u$. Da nur gerechnet wird, wenn das System nicht leer ist, ergibt sich:
\[ T(u)=u\E(N \mid N \not= 0)=Cu, \]
also wieder ein \enquote{gerechtes} System. Um $C$ zu bestimmen, betrachten wir den Fall $u \rightarrow \infty$. Wenn $u$ groß ist, werden die meisten Jobs, die während
$T(u)$ ankommen, auch noch während $T(u)$ das System verlassen. Für großes $u$ ist also das Verhalten ähnlich wie im vorigen Fall, und wir erhalten wieder
\[T(u)=\frac{u}{1-\rho} ~. \]
\item Wenn wir ein Programm betrachten, das genau $u$ Sekunden Rechenzeit benötigt, dann sehen wir, daß für $T(u)$ von der Rechenzeit aller anderen Programme
nur der Teil von Bedeutung ist, der kleiner als $u$ ist. Aus der Sicht dieses Programmes können wir also $x$ durch $(x \land u)$ ersetzen, und die
Verteilungsfunktion $B$ durch:
\[
B_{u}(y) = \left\{
\begin{array}{lc}
B(y) & y<u \\
1 & y \geq u
\end{array} \right. ~.
\]
$W(u)$ setzt sich jetzt zusammen aus der restlichen Rechenzeit aller Programme, die vor unserem Programm angekommen sind, plus der Summe der Rechenzeiten von
allen Programmen, die während $T(u)$ ankommen. Der erste Teil ist im Mittel gleich der Wartezeit in $M_{\lambda}/B_{u}/1$, also gleich
\[W_{u}=\frac{\lambda \E((x \land u)^{2})}{2(1-\rho _{u})} \]
mit
\[\rho _{u}=\lambda \E(x \wedge u) ~.\]
Für den zweiten Teil ergibt sich
\[\lambda T(u)\E(x \wedge u) = T(u)\rho _{u} ~.\]
Wir bekommen die Gleichung
\[T(u)=u+W_{u}+\rho _{u}T(u) ~, \]
also
\[T(u)=\frac{u+W_{u}}{1-\rho_{u}} ~. \]
Für $u \rightarrow 0$ ergibt sich
\[T(u) \approx u ~, \]
für $u \rightarrow \infty$
\[T(u) \approx \frac{u}{1-\rho} ~. \]
\end{enumerate}
%-------------------------------------------------------------------------------------------
\chapter{Prioritäten}
%----------------------------------------------------------------------------------------------
Wir betrachten den Fall, daß es mehrere \index{Klassen}Klassen von Kunden gibt, die von unserem System unterschiedlich behandelt werden. Genauer gesagt soll es
$p > 0$ Klassen
von Kunden geben. Die Kunden aus Klasse $i$ kommen nach einem Poissonprozeß mit Rate $\lambda_{i}$ an und benötigen eine Bedienzeit mit Verteilungsfunktion
$B_{i}$ (wir betrachten also wieder eine $M/G/1$-Situation). Weiters sei
\begin{eqnarray*}
\lambda &=& \sum_{i=1}^{p}\lambda _{i} \\
B(y) &=& \frac{1}{\lambda}\sum_{i=1}^{p}\lambda _{i}B_{i}(y) \\
\rho _{i} &=& \lambda _{i}\int ydB_{i}(y) \\
\rho &=& \lambda \int ydB(y) ~.
\end{eqnarray*}
Es gibt jetzt eine ganze Reihe von Möglichkeiten, Disziplinen zu definieren, die eine Klasse gegebüber anderen bevorzugen. Wir sprechen von unterschiedlichen
{\bf \index{Prioritäten}Prioritäten}.
Die Disziplinen, die wir untersuchen, sollen folgende Eigenschaften haben:
\begin{enumerate}
\item {\bf Nicht-prä-emptiv}: Ein einmal begonnener Bedienvorgang wird ohne Unterbrechung zu Ende geführt.
\item {\bf Arbeitserhaltend}: Niemand, der wartet, wird weggeschickt, ohne bedient zu worden zu sein.
\end{enumerate}
Weiters soll immer, wenn das System nicht leer ist, bedient werden.
%-------------------------------
\section{Ein Erhaltungssatz}
%------------------------------
$U_{t}$ sei die unverrichtete Zeit im System, d.h. die Zeit, die benötigt wird, um alle anwesenden Kunden fertig zu bedienen. Offensichtlich ist die Verteilung
von $U_{t}$ unabhängig von der Disziplin: \\
$U_{t}$ wächst mit jeder Ankunft eines Kunden um seine Bedienzeit an, und fällt pro Sekunde um $1$ Sekunde, solange $U_{t}>0$ ist. Die stationäre Verteilung
von $U_{t}$ entspricht der Verteilung der Wartezeit eines zufällig ankommenden Kunden bei der FCFS-Disziplin. \\
Insbesondere ist
\[\E(U) = \frac{\lambda \E(x^{2})}{2(1-\rho)} ~ \]
wobei $x$ nach der Funktion $B$ verteilt ist.
Wir berechnen jetzt $\E(U)$ auf eine andere Art. Dazu bezeichnen wir mit $W_{i}$, $i=1, \dots , p$, die mittlere Wartezeit eines Kunden mit Priorität $i$, und
mit
$N_{i}$ die Anzahl der Kunden aus der $i$-ten Prioritätsgruppe in der Warteschlange.
$\E(U)$ setzt sich jetzt aus folgenden Beiträgen zusammen:
\begin{enumerate}
\item $W_{0}$: die mittlere restliche Bedienzeit für den Kunden, der gerade bedient wird.
\item Die Summe der mittleren Bedienzeiten für alle Kunden, die sich in der Warteschlange befinden.
\end{enumerate}
Um $W_{0}$ zu bestimmen, stellen wir fest, daß $W_{0}$ gleich der Zeit ist, die ein zufällig ankommender Kunde warten muß, bis der Kunde fertig ist, der gerade
bedient wird. Mit Wahrscheinlichkeit $(1-\rho)$ findet der ankommende Kunde das System leer vor. Falls der Server besetzt ist, kann man die Verteilung der
restlichen Bedienzeit folgendermaßen bestimmen: \\
Wir betrachten eine große Anzahl $n$ von unabhängigen Variablen mit Verteilung $B$. Ihre Summe ist nach dem Gesetz der großen Zahlen $\approx n\E(x)$. Wenn wir
in dem Intervall der Länge $n\E(x)$ einen Punkt zufällig wählen, ist die Chance, daß wir bis zum Ende des Teilintervalls, in das der zufällig gewählte Punkt
fällt, einen Abstand zwischen $u$ und $u+\Delta u$ haben, gleich $\frac{\Delta u}{n\E(x)}$ mal der Anzahl der Intervalle mit Länge $> u$, also
\[ \approx \frac{\Delta u}{n\E(x)}n(1-B(u)) ~. \]
Für $n \rightarrow \infty$ ergibt sich für die Verteilung der restlichen Wartezeit die Dichte
\[f(u)=\frac{1-B(u)}{\E(x)} ~. \]
Schließlich ist
\[W_{0}=\rho \int_{0}^{\infty}uf(u)du = \frac{\rho \E(x^{2})}{2\E(x)}=\frac{\lambda \E(x^{2})}{2} ~. \]
Die Summe der Bedienzeiten der Kunden in der Warteschlange ergibt sich natürlich aus der Summe der gesamten Bedienzeiten der Kunden in den einzelnen Gruppen.
Es sind im Schnitt $N_{i}$ Kunden aus der $i$-ten Gruppe anwesend. Für jeden wird im Schnitt eine Bedienzeit $\E(x_{i})$ ($x_{i}$ soll eine $ZV$ mit Verteilung
$B_{i}$ sein) benötigt. \\
Damit gilt
\[\E(U)=W_{0}+\sum_{i=1}^{p}\E(x_{i})N_{i}=\frac{W_{0}}{1-\rho} ~. \]
Nach Little gilt $N_{i}=\lambda_{i}W_{i}$, also schließlich
\[ \sum_{i=1}^{p}\rho_{i}W_{i}=\frac{\rho W_{0}}{1-\rho}=\frac{\lambda \rho \E(x^{2})}{2(1-\rho)} ~.\]
Dieses Ergebnis zeigt, daß wir eine Gruppe nur bevorzugen können, indem eine andere Gruppe größere Wartezeiten in Kauf nehmen muß.
%----------------------------------------------------
\section{Eine Methode zur Bestimmung der Wartezeit}
%----------------------------------------------------
Wir betrachten einen Kunden aus der Gruppe $i$, der das System betritt: \\
$N_{ij} \dots$ mittlere Anzahl der Kunden aus Gruppe $j$, die unser Kunde im System antrifft, und die vor ihm bedient werden (ausgenommen der Kunde, der eventuell
gerade bedient werden, wenn unser Kunde ankommt). \\
$M_{ij} \dots$ mittlere Anzahl der Kunden aus Gruppe $j$, die während der Wartezeit unseres Kunden ankommen und vor ihm bedient werden. \\
Damit gilt
\[W_{i}=W_{0}+\sum_{j=1}^{p}(N_{ij}+M_{ij})\E(x_{j}) ~. \]
Wir verwenden diesen Zugang für die einfachste Disziplin: \\
Jeder Kunde aus Gruppe $i$ wird vor allen Kunden aus Gruppe $i-1$ bedient, und innerhalb einer Gruppe wird nach $FCFS$ gearbeitet. \\
Dann ist
\begin{eqnarray*}
N_{ij}&=&0 \qquad j<i \\
M_{ij}&=&0 \qquad j \leq i ~.
\end{eqnarray*}
Für $j \geq i$ ist
\[N_{ij}=N_{j}=\lambda _{j}W_{j} ~. \]
Für $j>i$ ist $M_{ij}$ die Anzahl der Kunden aus Gruppe $j$, die im Mittel während $W_{i} = \lambda _{j}W_{i}$ ankommen.
Wir erhalten
\begin{eqnarray*}
W_{i}&=&W_{0}+\sum_{j=i}^{p}\rho _{j}W_{j}+\sum_{j=i+1}^{p}\rho_{j}W_{i} = \\
&=&W_{0} + W_{i}\sum_{j=i}^{p}\rho_{j} + \sum_{j=i+1}^{p}\rho_{j}W_{j}
\end{eqnarray*}
oder
\[W_{i}(1-\sum_{j=i}^{p}\rho_{j})=W_{0}+\sum_{j=i+1}^{p}\rho_{j}W_{j} ~. \]
Wir schreiben
\[\sigma_{j} = \sum_{j=i}^{p}\rho_{j} \]
und erhalten
\[W_{i-1}(1-\sigma_{i-1})=W_{i}(1-\sigma_{i})+\rho_{i}W_{i}=W_{i}(1-\sigma_{i+1}) ~, \]
und schließlich
\[W_{i}=\frac{W_{0}}{(1-\sigma_{i})(1-\sigma_{i+1})} ~. \]
%----------------------------------------------------------------------------
\begin{appendix}
\chapter{Transformationen}
%----------------------------------------------------------------------------
Für unsere Untersuchungen benötigen wir die folgenden Transformationen:
\begin{enumerate}
\item Die erzeugende Funktion oder \index{erzeugende Funktion}$z$ - Transformierte: Falls $p_{n}$, $n
\geq 0$ eine diskrete Verteilung ist, nennen wir
\begin{displaymath}
P^{*}(z) = \sum_{}^{} p_{n} z^{n}
\end{displaymath}
die erzeugende Funktion von $(p_{n})$. Falls $X$ die Verteilung $(p_{n})$
hat, so gilt
\begin{displaymath}
P^{*}(z) = \E (z^{X}) ~.
\end{displaymath}
$P^{*}(z)$ existiert jedenfalls für $|z|<1$. Bekanntlich kann man aus
$P^{*}$ eindeutig $(p_{n})$ bestimmen:
\begin{displaymath}
p_{n} = \frac{1}{n!} P^{*^{n}} (0) ~.
\end{displaymath}
\item Die Laplace - Transformierte: Falls $f(x)$, $x \geq 0$ eine
Dichtefunktion ist, d.h.
\begin{displaymath}
f \geq 0 \qquad \mbox{und} \qquad \int_{0}^{\infty} f(x)\diff x = 1 ~,
\end{displaymath}
heißt
\begin{displaymath}
\hat F(t) = \int_{0}^{\infty} e^{-xt} f(x) \diff x
\end{displaymath}
die \index{Laplace - Transformierte}Laplace - Transformierte von $f$. Dieses Integral ist für $t \geq 0$
endlich, und es gibt auch hier eine eindeutige Beziehung zwischen $\hat F$
und $f$. Falls $X$ mit der Dichte $f$ verteilt ist, ist
\begin{displaymath}
\hat F(t) = \E (e^{-Xt}) ~.
\end{displaymath}
Diese Beziehung kann man auch verwenden, um die Laplace - Transformierte
für nicht stetige Verteilungen zu definieren.
\end{enumerate}
Es bestehen folgende Eigenschaften der Transformationen:
\begin{enumerate}
\item $P^{*}(z)$ ist regulär für $|z| \leq 1$.
\item $ \hat F(z)$ ist regulär für $ \Re (z) \geq 0$. Falls $X$ eine
Verteilung $(p_{n})$ hat, ist
\begin{displaymath}
\E(X) = (P^{*})^{'}(1) ~.
\end{displaymath}
Falls $X$ Dichte $f$ hat, ist
\begin{displaymath}
\E(X) = -\hat F^{'}(0) ~.
\end{displaymath}
\item Falls $X$, $T$ unabhängig sind, ist die Transformierte der Summe
das Produkt der Transformierten.
\item Weiters sei $N_{t}$ ein \index{Poissonprozeß}Poissonprozeß (d.h. eine Folge von
Ereignissen, wobei die Zeit zwischen zwei Ereignissen nach $M_{\lambda}$
verteilt ist. $N_{t}$ ist die Anzahl dieser Ereignisse im Intervall
$[0,t])$. Für eine zufällige Zeit $T$ wollen wir die Anzahl $N_{T}$ von
Ereignissen in $[0,T]$ bestimmen. Falls $T=t$ ist, ist diese Anzahl
Poisson - verteilt mit Parameter $\lambda t$:
\begin{displaymath}
\PP (N_{T} = n | T = t) = \frac{(\lambda t)^{n}}{n!} e^{- \lambda t} ~,
\end{displaymath}
also ist
\begin{displaymath}
\PP (N_{T} = n) = \E \left[ \frac{( \lambda
T)^n}{n!} e^{- \lambda T} \right] ~.
\end{displaymath}
Die erzeugende Funktion ist
\begin{eqnarray*}
\hat \PP(z) &=& \sum_{}^{} \PP(N_{T} = n) z^{n} = \\
&=& \E \left[ \sum_{}^{} e^{-\lambda T} \frac{(\lambda z T)^{n}}{n!}
\right] = \\
&=& \E (e^{- \lambda (1-z)T}) = \\
&=& \tilde F (\lambda(1-z)) ~,
\end{eqnarray*}
falls $T$ mit Dichte $f$ verteilt ist.
\end{enumerate}
%------------------------------------------------------------------------------
\end{appendix}