Pseudocode Kinokarten Verkauf

Diskutiere Pseudocode Kinokarten Verkauf im Hausaufgaben Forum; Das mag sein. Ich stelle mir das so vor, dass in einem Kinosaal 100 Plätze zu vergeben sind. Diese n=100 Karten für die Plätze 1...100 werden von...

  1. AndiE
    AndiE Aktives Mitglied
    Das mag sein. Ich stelle mir das so vor, dass in einem Kinosaal 100 Plätze zu vergeben sind. Diese n=100 Karten für die Plätze 1...100 werden von 2 Schaltern verkauft, in denen zwei Personen P und Q sitzen. Zwischen den beiden Schaltern ist eine, Wand die eine Platte enthält, wo beide die verkauften Plätze abstreichen können( entspricht S[n]). Selbst wenn beide Schalter zeitgleich aufmachen, wird der Käufer bei P einen Augenblick vor dem Käufer bei Q seine Anfrage machen. Da der Käufer bei P aber erst sein Geld suchen muss, kann Q den nächsten Kunden bereits vor P bedienen. Das ergäbe dann: P,Q,Q,P wenn man aufschreibt, wer die Plätze 1 bis 4 verkauft hat.

    Wo liegt nun mein Fehler?
     
  2. httpdigest
    httpdigest Aktives Mitglied
    Der Fehler liegt darin, zu glauben, dass die einzelnen Operationen:
    1. die Abfrage, ob ein Platz bereits besetzt ist; und
    2. das Belegen des Platzes
    eine atomare Operation sowohl für P als auch für Q darstellt.
    Das ist NICHT der Fall. Die einzelnen Operationen können P und Q beliebig verschränkt ausführen.
    Das heißt: Kunde Müller kommt zu P und Kunde Meier kommt zu Q. P und Q schauen, ob Platz 1 belegt ist. Sowohl P und Q kommen zu dem Schluss: Nein, ist noch nicht belegt. Also setzen sowohl P als auch Q bei Platz 1 eine Reservierung. Aus Sicht von P und Q ist die ganze Transaktion jetzt abgeschlossen, obwohl ja jetzt Meier und Müller denselben Platz haben.
     
  3. DerWissende
    DerWissende Bekanntes Mitglied
    Das Du Nebenläufigkeit noch nicht verstanden hast....
    Zwei echte Menschen welche etwas durchstreichen blockieren sich gegenseitig dabei!!
    ( @httpdigest hat es gerade erklärt )
     
  4. AndiE
    AndiE Aktives Mitglied
    @httpdigest: Wann tritt dieser Zustand ein? Wenn beide Prozesse gleichzeitig auf die Ressource S zugreifen. Da ist eben die Frage für mich, wie wahrscheinlich es ist, dass auf die Ressource S beide Prozesse gleichzeitig lesend zugreifen. Wenn man mal genau ist, sind es 3 Prozessor-Schritte: In S an Stelle n den Wert lesen, Wert mit Null vergleichen und an s[n] eine 1 schreiben. Wie groß ist die Wahrscheinlichkeit, dass zwei Zeiträume, die gleichverteilt zufällig von 2 bis 10 s dauern, gleichzeitig beginnen, wobei natürlich die beiden Startwerte unterschiedlich sind, also bei P beginnt der erste Prozess bei t=0 und bei Q beim Zeitpunkt 2<t<10? Wobei man auch die Dauer bedenken muss, die zum Durchsuchen des Arrays gebraucht wird.

    Ansonsten ist natürlich die Frage, wie man das so lösen kann, dass es dennoch funktioniert. Da würde ich nicht erst die Sequenzen p1 bis p5 und dann die Sequenzen q1 bis q5 durchgehen lassen, da ja alleine der Druck meist länger dauert. Das würde ja übertragen bedeuten: Erst verkauft P ein Ticket, dann Q. Wo ist dann der Vorteil des 2. Schalters?
     
  5. httpdigest
    httpdigest Aktives Mitglied
    Vorher nimmst du eigentlich immer diese wilden Analogien und Annahmen her?
    Herrgott, es geht um diesen Programmausschnitt und um nichts anderes. Dass ein möglicher menschlicher Kinobesucher hier erstmal sein Portemonnaie durchsuchen muss oder sonst noch irgendwie mit der Kassiererin ein Pläuderchen abhält ist doch absolut und vollkommen irrelevant... Das ist EIN BEISPIEL!
    Außerdem steht doch nirgends geschrieben, welche Prozessschritte nach welcher Interaktion mit dem Benutzer passieren... vielleicht schreibt sich P und Q ja auch erstmal alles auf und kassiert und DANN lassen sie den beschriebenen Algorithmus laufen. Aber das ist alles komplett irrelevant. Es geht um den Algorithmus und um nichts anderes.

    Hier gibt es mehrere Ansätze. In diesem Beispiel würde es ein einfaches Compare-And-Swap (CAS) bzw. Compare-And-Exchange tun.
     
  6. DerWissende
    DerWissende Bekanntes Mitglied
    Diese Informationen haben wir nicht.... Das ist Hardware, System und Software abhängig....
    Wir haben nur die Annahme dass jederzeit zwischen den zwei Programmausführungen gewechselt werden kann....

    Es geht nicht um Vor- oder Nachteile....
    Es geht einfach um eine von einem gegebene Aufgabe welche bearbeitet werden soll
    Es gibt 2 Verkaufsstellen die gleichzeitig auf derselben Ressource lesen und schreiben.... fertig
    und das führt zu.... ich weiß nicht wie man es richtig nennt.... "zwei Personen auf einem Platz"

    Wie sich diese Personen dann in echt einigen würden ist eine psychologische Fragestellung!!
     
  7. Meniskusschaden
    Meniskusschaden Bekanntes Mitglied
    Wenn der Algorithmus fehlerhaft wäre, bedeutet das ja nicht, dass deswegen die eigentliche Lösungsidee des zweiten Schalters unbrauchbar ist. Man könnte ja auf einen fehlerfreien Algorithmus umstellen.
    Ich stimme dir schon zu, dass das in diesem Szenario eher unwahrscheinlich sein wird, weil das Zeitfenster für einen möglichen Konflikt nur wenige Prozessortakte lang sein dürfte, wogegen die Abwicklung eines Kunden im Verhältnis dazu Ewigkeiten dauert. Aber es könnte ja beispielsweise der Fall eintreten, dass an Schalter P ein Lehrer für seine Schulklasse auf Klassenfahrt 25 Karten auf einmal kauft und gleichzeitig an Schalter Q die Vorsitzende des Landfrauenvereins 25 Karten für den Häkelclub. Dann würden beide Programme die Reservierungsprozedur immerhin 25 Mal in kurzer Abfolge aufrufen. Da könnte die Konfliktwahrscheinlichkeit schon etwas höher sein, falls beide Kassierer gleichzeitig ENTER drücken.;)
    Insgesamt geht es aber vermutlich ohnehin nur darum, solche Parallelisierungprobleme überhaupt zu erkennen. In anderen Szenarien ist das dann eben realistischer.
     
  8. DerWissende
    DerWissende Bekanntes Mitglied
    Wer kauft heute denn 25 Karten auf einmal, dann biste ja gleich 3 Hunnis los....
    Dennoch ein schön gewähltes wenn auch antiquiertes Szenario das es tatsächlich so geben könnte...
    So nochmal um das klarzustellen.... Der Algorithmus funktioniert, er funktioniert aber eben nicht richtig.... (Das wäre auch die Antwort auf die flapsige Frage , Klappt das ? )
    Erkennen - und vermeiden/umgehen....
    In anderen Szenarien wird ganz dabei echtes Geld verbrannt....

    Eine psychologische Fragestellung könnte erstmal sein, wie sich die Probanden die von der Richtigkeit der Reservierungsprozedur überzeugt sind und dabei von auch gar nichts wissen verhalten können. Dann wie sie sich wahrscheinlich verhalten werden. Und dann welche Folgen alle das haben.
    Solche nichtkonfliktfreien Situationen sind nicht absolut weltfremd....
     
Die Seite wird geladen...

Pseudocode Kinokarten Verkauf - Ähnliche Themen

Laufzeitanalyse Pseudocode
Laufzeitanalyse Pseudocode im Forum Allgemeine Java-Themen
Pseudocode Grobalgorithmus erstellen von Aufgabe
Pseudocode Grobalgorithmus erstellen von Aufgabe im Forum Plauderecke
Pseudocode nicht verstanden
Pseudocode nicht verstanden im Forum Plauderecke
TimSort - Sortieralgorithmus - Erklärung und Pseudocode - Implementierung
TimSort - Sortieralgorithmus - Erklärung und Pseudocode - Implementierung im Forum Allgemeine Java-Themen
Pseudocode für Strafurzeichnung
Pseudocode für Strafurzeichnung im Forum AWT, Swing, JavaFX & SWT
Thema: Pseudocode Kinokarten Verkauf