Guest User

Untitled

a guest
Aug 14th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. Auf einer Baustelle gibt es zwei Lagerplätze A und B für Schüttmaterial, die zu Beginn beide leer sind.
  2. Bauarbeiter transportieren Material von einem Lagerplatz zum anderen, wobei die Menge auf einem
  3. Platz weniger am anderen mehr wird. Ggfs. wird ein Loch gegraben (negativer Inhalt).
  4. Zum Transportieren hat jeder Bauarbeiter genau eine
  5. Scheibtruhe (Schubkarre, ...) in seinem Besitz. Jeder Arbeiter transportiert genau eine Einheit
  6. an Schüttmaterial mit seiner Scheibtruhe und macht anschließend eine Pause beliebiger Länge.
  7. Auf der Baustelle arbeiten n>0 Bauarbeiter.
  8.  
  9. Die Gewerkschaft verbietet, dass Scheibtruhen ohne Arbeitshandschuhe befördert werden dürfen.
  10. Der Arbeitgeber besorgt deswegen k>0 Paare von Arbeitshandschuhen. Jeder Bauarbeiter fasst nun
  11. vor dem Transport von Schüttmaterial je einen rechten und einen linken Arbeitshandschuh aus,
  12. die er wieder zurückgibt, sobald der Transport erledigt ist (und seine Pause beginnt).
  13. Unter den Bauarbeitern gibt es Rechts- und Linkshänder. Rechtshänder nehmen zuerst einen rechten
  14. Arbeitshandschuh, dann den linken; Linkshänder genau umgekehrt.
  15.  
  16. Das Anziehen (und das Ausziehen) der bockigen Sicherheitshandschuhe (sowie der eigentliche Transport) benötigen
  17. endliche Zeit, die sie zufällig wählen können.
  18.  
  19. Theoretische Fragen:
  20. (1) Bei welchen Konstellationen kommt es zu einem Deadlock, bei welchen nicht?
  21. (2) Was sind die kleinstmöglichen Konstellationen, bei denen es zu einem Deadlock kommt oder
  22. nicht kommt?
  23.  
  24. Implementieren Sie das obige System!
  25. Dabei sollen Bauarbeiter als Tasks realisiert werden. Außer dem Main-Task sollen sonst keine
  26. Tasks vorkommen. In Abstand von einer Sekunde, soll der Main-Task den Materialstand der Lagerplätze
  27. ausgeben.
  28. Die Bauarbeiter-Tasks (es gibt zwei Arten: Rechts- und Linkshänder) entscheiden zufällig, ob sie
  29. Material von A nach B oder von B nach A transportieren. Jeder Transport soll mittels Ausgabe
  30. (Text_IO.Put_Line) mitprotokolliert werden, nicht zuletzt um Deadlocks erkennen zu können.
  31.  
  32. Beantworten Sie vorab folgende Fragen:
  33. (1) Ist es notwendig, dass Scheibtruhen in der Implementierung explizit vorkommen?
  34. (2) Müssen beide Lagerplätze in der Implementierung vorkommen?
  35.  
  36. Die Parameter n und k sollen als Argumente an das Programm übergeben werden können, ebenso
  37. die Rechts- bzw. Linkshändigkeit der Bauarbeiter in geeigneter Form (z.B.,
  38. indem Sie als Argumente die Anzahl der Paare an vorhandenen Arbeitshandschuhen, die Anzahl der
  39. rechts- bzw. linkshändigen Arbeiter angeben).
  40.  
  41. Überprüfen Sie Ihre Voraussagen betreffend Deadlocks mittels Ihrer Implemdentierung!
  42. Welche Ihrer Voraussagen können Sie an Hand Ihrer Implementierung nachweisen?
Add Comment
Please, Sign In to add comment