Das ‘Tafelbild’
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.
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.
BS Uebung - Semaphoren
Da ich zum Mitschreiben heute zu faul war und eine DigiCam dabei hatte, und einige Leute glaube ich beim Abschreiben keinen Platz mehr zwischen den schon vorhandenen Zeilen gefunden haben :*) …
Im Anhang das Tafelbild
Attachment:
DSC00909_klein.JPG: https://fsi.cs.fau.de/unb-attachments/post_18728/DSC00909_klein.JPG
das ist doch alles trivial, wozu mitschreiben… :-p
wozu gibts denn das SP1 Skript ;o)
Ja, nur dass in BS der Stempel “bitte nicht versuchen, dies zu verstehen” fehlt
wo is der fehler… (find ihn evtl. eh selbst, und dann lösch ich den code wieder, weil er mir zu peinlich is )
Semaphore mutex(1);
Semaphore read_or_write(1);
Semaphore writer_waiting(1);
int readers=0;
reader()
{
writer_waiting.p();
writer_waiting.v();
mutex.p();
if (!readers)
read_or_write.p();
++readers;
mutex.v();
read();
mutex.p();
--readers;
if (!readers)
read_or_write.v();
mutex.v();
}
writer()
{
writer_waiting.p();
read_or_write.p();
write();
read_or_write.v();
writer_waiting.v();
}
soll ich? wenn ja welchen? (natürlich nur deine eigenen)
Vermutlich den hier drüber, aber besser mal fragen…
hm, ne, jetzt nicht mehr… nachher vllt
Ach, wenn mir das Leser-Schreiber-Problem schon im Forum zum Problem wird…
Ich sollte vielleicht noch anmerken, dass obiger Code nicht unbedingt einen Fehler haben muss, ich find’ nur keinen
Und es is irgendwie zu einfach, um richtig zu sein
Ich haette ihn jetzt auch schon fast geloescht :] - wenn du auch so provozierende Sachen schreiben musst…
OK, ich tu’s nie wieder!
(Außer ich poste mal wieder Code, dann könnt’s schon vorkommen :p)
buoeh, aus irgend einem albernen grund hab ich jetzt ne ami-tastenbelegung… gottes wege sind unergruendlich
was ja glaub ich in besagter uebung noch zur sprache kam, war, dass tafelbildliche loesung des 2. lr-problems wieder bei vielen schreibern und wenigen lesern wiederrum zum problem wird, da naemlich jetzt die leser kaum zum zug kommen.
In meiner “Loesung”, sofern sie denn eine ist, haengen sowohl wartende schreiber als auch leser an der writer_waiting-sache…
wenn also die semaphorwarteschlangen schedulingstrategiekonform funktionieren, bspweise mittels strategy-pattern, und diese aging beruecksichtigt, HRRN oder FB+wartezeitbedingte prioritaetsanhebung, muesste das jetzt hier dann doch eingigermassen fair ablaufen, oder?
wah, ich seh scho, ich sollt mal ins bett… n8
Du meinst nicht zufällig sowas hier?:
http://ivs.cs.uni-magdeburg.de/bs/lehre/sose00/bs1/seminare/seminar10.shtml
PS.: Man schaue sich mal die Mitarbeiterliste (Ehemalige) dieses Lehrstuhls an…
hihi… bei dieser Lösung wird halt dafür gesorgt, dass wartende Schreiber auf jeden Fall vor wartenden Lesern zum Zug kommen (wg. dieser halt/vorhalt-geschichte), bei meinem Code warten Schreiber und Leser gleichberechtigt an writers_waiting… theoretisch