Powrót na stronę UNIX

Tematyka zadania: system V
Rodzaj sprawdzania: na zajęciach
Czas pisania: 70 minut
Sprawdzający: Marcin Borkowski i Paweł Rzążewski
Autor Zadania: Katarzyna Sawicka
Oddanie zadania: osobiście
Autobus:

Napisz program, który będzie symulował jazdę autobusem.

Wywołanie: ./autobus p b - p liczba pasażerów, b ilość przystanków.

Proces główny tworzy p pasażerów, a następnie przejmuje rolę kierowcy. Po dojechaniu na i-ty przystanek, informuje o tym pasażerów(oraz oczekujących na przystanku) wypisując na standardowe wyjście "Kierowca: przystanek numer i. Otwieram drzwi", od tego momentu czeka aż wszyscy chętni wsiądą/wysiądą z autobusu, następnie zamyka drzwi ("Kierowca: przystanek numer i. Zamykam drzwi") i udaje się na kolejny przystanek(podróż zajmuje mu 1 sekundę), z wyjątkiem ostatniego przystanku, kiedy informuje o zakończeniu podróży i udaje sie, żeby posprzątać.

Pasażer na początku planuje swoją podróż (losowo wybiera przystanek z i do którego będzie jechał, z<do). Udaje się na odpowiedni przystanek i czeka aż podjedzie autobus. W momencie otwarcia drzwi stara się wsiąść do autobusu. Gdy uda mu się dopchnąć do drzwi głośno oznajmia to innym oczekującym ("[nr pasażera]: wsiadam. Przystanek [z], będę wysiadać na [do])") wsiadanie zajmuje 1 sekundę, gdy wsiądzie, informuje o tym innych ("[nr pasażera]: wsiadłem.") i zwalnia wejście dla innych wsiadających/wysiadających. Po dojechaniu na przystanek do którego zmierzał, wysiada(analogiczne jak wsiadanie).

Uwagi:
Podpowiedź/propozycja do synchronizacji:
Miłej podróży.
Powrót na stronę UNIX