Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
--- Erzeuger-Verbraucher-Problem (http://www.informatikerboard.de/board/thread.php?threadid=2292)
Geschrieben von Chris2293 am 16.05.2015 um 17:26:
Erzeuger-Verbraucher-Problem
Meine Frage:
Das Erzeuger-Verbraucher-Problem ist eine abstrakt formulierte Problemdarstellung der Prozessorsynchronisation in Betriebssystemenen, welche eine Regelung der Zugriffreihenfolge durch elementerzeugende (schreibende ) und elementverbrauchende (lesende) Prozesse darstellt. Folgende Aufgabe ist zu bearbeiten. Gegeben sei das bekannte Erzeuger-Verbraucher-Problem mit dem Puffer W ( Kapazität n Elemente ). Um wechselseitigen Ausschluss zu erreichen, sei folgender Lösungsversuch mit dem Semaphor wa gegeben(Pseudocode)
01 Deklaration ;
02 wa(1) ;
03
04 Erzeuger E;
05 while (true) {
06 produziere Element;
07 wa.P();
08 schreibe Element nach W;
09 wa.V()
10 }
11
12 Verbraucher V;
13 while (true) {
14 wa.P();
15 entnehme Element aus W falls Element
vorhanden, sonst warte ;
16 wa.V();
17 verarbeite Element;
18 }
19
20
a) Laufen beide Prozesse verklemmungsfrei? Welche Probleme können auftreten?
b) Geben Sie eine verbesserte Version an, in der keine Probleme mehr auftreten, indem Sie
zwei weitere Semaphore geeignet deklarieren und Aufrufe von P() und V() einfügen.
Meine Ideen:
Hallo erstmal, ich bin zur Zeit Student und habe als Teilgebiet meines Studiums die Grundlagen der Informatik ( wirklich nur Grundlagen! ).
Jetzt habe ich folgende Aufgabe in meiner Aufgabensammlung, die ich nicht lösen kann. Wirklich eigene Ideen dazu habe ich leider auch nicht. Bei meinem Erstversuch bin ich schon durchgefallen und in ein paar Wochen steht der Zweitversuch an. Bitte um Hilfe!!
Geschrieben von ed209 am 17.05.2015 um 18:30:
a.) Ich bin mit der Syntax die Ihr da benutzt nicht vertraut. Kannst du erläutern was "wa.P();" und "wa.V();" genau bedeuten?
b.) Wie habt ihr "verklemmungsfrei" definiert?
Geschrieben von Chris2293 am 17.05.2015 um 23:10:
Hey also das kann ich leider auch nicht genau sagen. Wir arbeiten eigentlich mit Java und diese Aufgabe stand so zur Übung auf den Laufwerk des Dozenten. Ich frag mal einen Kommilitonen und schreibe dann nochmal!
Forensoftware: Burning Board, entwickelt von WoltLab GmbH