Projekt z Systemów Operacyjnych - Pociąg z rowerami
Na dworcu kolejowym stoi pociąg pasażerski o pojemności P pasażerów, w którym jednocześnie można przewieźć R rowerów. Do pociągu są dwa wejścia (każde może pomieścić jedną osobę): jedno dla pasażerów z bagażem podręcznym i drugie dla pasażerów z rowerami. Pociąg odjeżdża co określoną ilość czasu T (np.: co 10 minut). W momencie odjazdu kierownik pociągu musi dopilnować aby na wejściach nie było żadnego wchodzącego pasażera. Jednocześnie musi dopilnować by liczba wszystkich pasażerów pociągu nie przekroczyła P i liczba pasażerów z rowerami nie była większa niż R. Po odjeździe pociągu na jego miejsce pojawia się natychmiast (jeżeli jest dostępny) nowy skład o takiej samej pojemności jak poprzedni. Łączna liczba składów wynosi N, każdy o pojemności P z R miejscami na rowery. Pociągi przewożą pasażerów do miejsca docelowego i po czasie Ti wracają na dworzec. Na polecenie zawiadowcy stacji (sygnał 1) pociąg, który w danym momencie stoi na dworcu może odjechać z niepełną liczbą pasażerów. Po otrzymaniu od zawiadowcy stacji polecenia (sygnał 2) pasażerowie nie mogą wsiąść do żadnego pociągu - nie mogą wejść na peron. Pociągi kończą pracę po rozwiezieniu wszystkich pasażerów. Napisz programy symulujące działanie zawiadowcy stacji, kierownika pociągu i pasażerów.