SoSe 0 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung (Musterlösung) 0-06-0 bis 0-06-06 Aufgabe : Erzeuger/Verbraucher-Pattern Ein Getränkemarkt hat ein Lager für seine Getränke. Unter anderem werden dort Wasser und Bier gelagert. Davon bekommt der Markt täglich jeweils 0 Kisten geliefert. Das Lager hat eine Kapazität von insgesamt 0 Kisten für Wasser und Bier und ist zu Beginn noch leer. Außerdem bietet der Getränkemarkt einen Lieferservice, bei dem jeweils ein Ausfahrer Wasser bzw. Bier zu den Kunden bringt. Der tägliche Gesamtbedarf an Wasser w und an Bier b ist variabel. Der Getränkemarkt hat allerdings nur eine Umladestelle, bei der Getränke ab- und aufgeladen werden können. Diese wird sowohl vom Lieferanten L als auch von dem Wasser- Ausfahrer W und dem Bier-Ausfahrer B benutzt. Es kann immer nur einer die Umladestelle benutzen. (a) Wer ist hier Erzeuger und wer Verbraucher? Der Lieferant ist Erzeuger und der Wasser- und der Bier-Ausfahrer sind die Verbraucher. (b) Stellen Sie sinnvolle Bedingungen auf, die bei den späteren Sperrphasen berücksichtigt werden müssen. Sie sollen sicherstellen, dass z.b. das Lager nicht überfüllt wird und niemand die Umladestelle blockiert. Sinnvolle Bedingungen: Es kann maximal ein Prozess die Umladestelle benutzen. Der Lieferant darf nur zur Umladestelle fahren und die Getränke abladen, wenn noch genug Platz im Lager ist. Der Wasser-Ausfahrer darf nur zur Umladestelle fahren und Wasser aufladen, wenn noch mindestens w Kisten Wasser im Lager sind. Der Bier-Ausfahrer darf nur zur Umladestelle fahren und Bier aufladen, wenn noch mindestens b Kisten Bier im Lager sind. (c) Deklarieren Sie alle benötigten Semaphoren mit Namen und Startwert und erklären Sie kurz ihren Zweck. Semaphore lager(0); Freie Plätze im Lager. Semaphore wasser(0); Wasser-Kisten im Lager. Semaphore bier(0); Bier-Kisten im Lager. Semaphore mutex(); Mutex-Semaphor zum wechselseitigen Ausschluss an der Umladestelle. (d) Schreiben Sie Pseudocode für die drei Prozesse L, W und B, die in Endlosschleifen Getränke anliefern bzw. Wasser und Bier ausliefern. Benutzen Sie dabei die Semaphoren. Prozess L: KMS SoSe räsenzübung (Musterlösung) /
while ( t r u e ) { for ( i n t i =0; i <0; i ++) l a g e r. P ( ) ; mutex. P ( ) ; entladewasser ( ) ; for ( i n t i =0; i <0; i ++) wasser. V ( ) ; e n t l a d e B i e r ( ) ; 0 for ( i n t i =0; i <0; i ++) b i e r. V ( ) ; mutex. V ( ) ; Prozess W: while ( t r u e ) { for ( i n t i =0; i <w; i ++) wasser. P ( ) ; mutex. P ( ) ; beladewasser ( ) ; for ( i n t i =0; i <w; i ++) l a g e r. V ( ) ; 0 mutex. V ( ) ; Prozess B: while ( t r u e ) { for ( i n t i =0; i <b ; i ++) b i e r. P ( ) ; mutex. P ( ) ; beladebier ( ) ; for ( i n t i =0; i <b ; i ++) l a g e r. V ( ) ; 0 mutex. V ( ) ; KMS SoSe räsenzübung (Musterlösung) /
Aufgabe : Betriebsmittelverwaltung - Einführung, Definition (a) Grenzen Sie die drei Optionen zur Betriebsmittelverwaltung (Betriebsmittelverwalter, Koordination, unkoordinierte Nutzung) voneinander ab. Betriebsmittelverwalter: Es gibt einen Verwalter, der die Zuteilung der Betriebsmittel zu den Prozessen bestimmt. Die Prozesse selbst müssen die Benutzung eines Betriebsmittels beantragen und dann auf eine Entscheidung warten. Koordination: Es gibt keinen einzelnen Verwalter mehr, sondern die Prozesse stimmen sich untereinander ab. Unkoordinierte Nutzung: Es gibt keine Abstimmung unter den Prozessen. Es kann passieren, dass zwei Prozesse gleichzeitig auf ein Betriebsmittel zugreifen und belegen wollen, sodass es zur Kollision kommt. Diese Art der Nutzung kann sinnvoll sein, wenn der Reparaturaufwand einer Kollision gering ist. (b) Erklären Sie die Auswahlstrategien First-In-First-Out (FIFO), First-Fit-Request und Best- Fit-Request. Nennen Sie auch Vor- und Nachteile. FIFO: Die erste Anforderung in der Warteschlange wird erfüllt. Falls dies aktuell nicht möglich ist, wird gewartet. Vorteil: Kein Suchaufwand. Nachteil: Schlechte Auslastung, weil auf große Anforderungen gewartet werden muss. First-Fit-Request: Die erste erfüllbare Anforderung in der Warteschlange wird erfüllt. Vorteil: Bessere Auslastung. Nachteile: Etwas mehr Aufwand, Verhungern von großen Anfragen. Best-Fit-Request: Die Warteschlange wird vollständig durchsucht und die größte erfüllbare Anforderung wird ausgewählt. Vorteil: Beste Auslastung. Nachteile: Hoher Suchaufwand, Verhungern von großen Anfragen. (c) Erklären Sie die Benutzung von Fenstern bei iterativen Auswahlstrategien. Warum sind Fenster mit dynamischer Größe sinnvoll? Fenster grenzen die Suche nach dem besten Element ein, indem sie die Iteration auf einen Teil der Elemente beschränken. So kann zwar nicht immer das beste Element gefunden werden, dafür wird der Suchaufwand reduziert. Dynamische Fenster beginnen immer bei einer festen Größe L. Diese wird in jeder Iteration um eins verringert, wenn nicht das erste Element im Fenster gewählt wird. Sobald das erste Element genommen wird, wird die ursprüngliche Größe L des Fensters wiederhergestellt. Fenster mit dynamischer Größe sind sinnvoll, weil sie verhindern, dass große Anfragen verhungern, obwohl sie am Anfang der Warteschlange stehen. KMS SoSe räsenzübung (Musterlösung) /
Aufgabe : Betriebsmittelverwaltung - Beispiel In dieser Aufgabe sollen Sie die Auswahlstrategien First-In-First-Out, First-Fit-Request und Best-Fit-Request anwenden. Gegeben sind Prozesse mit unterschiedlichen Anforderungen an ein Mehrexemplarbetriebsmittel. Die Anfragen müssen als Ganzes erfüllt werden. Es sind n= Einheiten des Betriebsmittels verfügbar. Falls es bei Best-Fit-Request mehrere gleich große Anforderungen gibt, die in Frage kommen, wählen Sie zuerst die Anfrage des Prozesses mit kleinster Prozessnummer. Prozessnr. 6 0 Anforderung n(i) Zeiteinheiten (a) Zeichnen Sie für alle drei Auswahlstrategie die Belegung der Betriebsmitteleinheiten in Abhängigkeit von der Zeit (Zeit auf der x-achse, Betriebsmittel auf der y-achse). Ausführungszeit FIFO: 0 Zeitscheiben Alle anderen Verfahren: Zeitscheiben First-In-First-Out: 6 0 First-Fit-Request: 6 0 Best-Fit-Request: 6 0 (b) Warum ist für FIFO die Benutzung von Fenstern sinnlos? Bei FIFO wird sowieso immer die erste Anfrage genommen. Die Ausführung mit Fenstern wäre genau identisch zu der Ausführung ohne Fenster. (c) Gehen Sie jetzt davon aus, dass bei den Auswahlstrategien ein statisches Fenster der Breite benutzt wird und zeichnen Sie für First-Fit und Best-Fit neue Diagramme. First-Fit-Request: 6 0 KMS SoSe räsenzübung (Musterlösung) /
Best-Fit-Request: 6 0 (d) Das Fenster ist nun dynamisch und nicht mehr statisch. Zeichnen Sie die neuen Diagramme. First-Fit-Request (unverändert): 6 0 Best-Fit-Request: 6 0 (e) Geben Sie zu allen Auswahlstrategien die Gesamtbelegungsdauer und den Verschnitt an. Verfahren Gesamtbelegungsdauer Verschnitt FIFO 0 Einheiten 0 - = 6 Rest Einheiten 0 - = 6 (f) Vergleichen Sie die Verfahren hinsichtlich Belegungsdauer, Verschnitt, Aufwand und Fairness. Von der Belegungsdauer und dem Verschnitt ist FIFO deutlich schlechter als alle anderen Strategien. Der Suchaufwand bei FIFO ist in allen Fällen mit O() minimal. Bei First-Fit beträgt die Laufzeit O(n), falls das erste mögliche Element ganz am Ende steht. Bei Best-Fit wird immer die ganze Warteschlange durchsucht, deshalb ist dort die Laufzeit mit genau n Schritten am schlechtesten. Falls ein Fenster der Breite L benutzt wird, ändert sich die Laufzeit für First-Fit und Best-Fit zur O(L). Die FIFO-Auswahlstrategie ist am fairsten, da sie immer das erste Element nimmt. Ohne die Benutzung von Fenstern können Prozesse bei First-Fit und Best-Fit verhungern (nicht fair). Erst durch die Benutzung von dynamischen Fenstern kann die Fairness verbessert werden, da jede Anforderung nach spätestens L- Zugriffen berücksichtigt wird. KMS SoSe räsenzübung (Musterlösung) /