Bounded Buffers

reloaded

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Bounded Buffers
D100 sagt das beim bounded buffer der zugriff auf den puffer exklusiv sein soll, insofern is die mutex okay. aber:

wie kann es zu einem inkonsistenten zustand kommen wenn ich die kutex weglasse?
P(empty) blockerit genau dann wenn kein zeichen lesbar ist, also wenn inslot und outslot auf den gleichen speicherbereich zeigen. so. zeigen sie NICHT auf den gleichen speicher machts ja nix wenn der schreiber bei seinem versuch in den puffer zu schreiben unterbrochen wird, da der leser (laser: :gun: ) ja eh von ganz woanders ließt.

seh ich das richtig?


was soll uns diese werbesendung sagen ? :vogel: :vogel: :vogel:


Herrje, Doktore!
So wird das nie was. :finger:
Das Script, ist in Kapitel unterteilt, es finden sich sogar Seitanangaben!
Die Angabe dieser Seiten kann hiflreich sein, wenn man nicht im Stande ist sich anderen durch eigene Worte verständlich zu machen. :smiley:


d100 ist jedenfalls nicht der name meines schlafenden friseurs


das wiederum wuerde eem’s frisur erklaeren ggggggggg :gun:


um die egtl frage nochmal aufzugreifen … braucht man die mutex wirklich um das bounded buffers problem wie im skript zu realisieren? können sich leser und schreiber in die quere kommen?

ich bin ja geneigt nein zu sagen, d.h. man braucht mutex nicht. überholen können sie sich nicht , da das mit dem semaphoren full und empty sichergestellt wird. es gibt ja auch keine gemeinsames variablen, die man durch mutex schützen müsste.

was meinen die fachleute? ich lass mich gerne eines besseren belehren.

jo

P.S.: das skript und die seitennummern haben sich meiner meinung nach an dieser stelle während der vorlesung mehrmals geändert. wie gesagt, so ca. d-100 bis d-107 sollte es sein :wink:


Ich finde den Mutex auch albern.
Lass mern weg.


vielleicht ist der mutex nur ein mittel gegen mehrere leser und mehrere schreiberlinge…?
macht nicht so derb viel sinn, da mehrere lesen/schreiben zu lassen, aber theoretisch wäre es denkbar und das mutex sichert ja das rumgezähle auf inslot und outslot


stimmt natürlich. wenn du mehrere einer sorte hast, brauchst den mutex auf jeden fall.

jo


was soll denn diese signatur? damit du dir die zeile besser merken kannst :]?


Vielleicht will er damit auch nur ausdrücken, dass er gerne tote Kinder aufsammelt,…
oder so…


ich fands nur sehr elegant, wie man mit einer zeile alle vorhanden zombies aufsammelt. in den filmen brauchen die immer so große gewehre und so. in c macht man das mit zen-artiger ruhe, indem man einfach hinsetzt, auf die zombies ‘wartet’ und sie dann ‘abholt’. wahrscheinlich begleitet sie dann ein void-zeiger in die ewigen shared libraries…


hm, da hast auch wieder recht
Wär n toller Film, so zuerst mit schießen und metzeln und viel zu viele Zombies aua aua, schlacht, baller, die Lage scheint aussichtslos.
Dann kommtn Informatiker und sammelt alle Zombies ein, und der Film is aus.


lol, stimmt schon.
ueberhaupt ist die ganze nomenklatur so geil:

  • muss mal schnell ein kind zeugen
  • ploetzlicher kindstod kann auftreten
  • zombiekinder muessen aufgesammelt werden
  • vater killt kinder

ich denke auch, dass die mutex nur bei mehreren lesern bzw. schreibern benötigt wird.
im beispiel D69 traten ja auch nur unregelmässigkeiten auf, weil [font=courier]cnt[/font] gemeinsam benutzt wurde.
das trifft in diesem fall auf (in|out)slot nicht zu.


Ja, damit muss man in der Öffentlichkeit aufpassen, sonst stehen gleich die Bullen vor der Haustüre. :wink:


nicht zu vergessen dass man einem prozess den wunsch ueberbringen kann , doch bitte so net zu sein und bei naechster gelegenheit selbstmord zu begehen


So ganz nachvollziehen warum das da so steht kann ich auch nicht mehr.
Aber Ihr habt recht - so wie die Loesung im Skript beschrieben ist kann
man auf den Mutex verzichten.
Der Mutex kommt wohl daher, dass bei der „klassischen Beschreibung“
des Erzeuger/Verbraucher-Problems nicht davon ausgegangen
wurde, dass man an den beiden Enden des Puffers eigentlich problemlos
nebenlaeufig einfuegen/auslesen kann, sondern dass der Puffer als
Ganzes vor gleichzeitigem Zugriff geschuetzt werden muss.

Freut mich aber trotzdem - wenn sowas so diskutiert wird, ist’s zumindest
ein Zeichen dafuer dass das Problem echt kapiert wurde.