Simple concurrent programming project using ncurses lib made during my studies. A producer prints "50 Shades of Grey" books, which are delievered to bookstores. These bookstores are visited by readers who infinitely demand more copies.
You can find a description of this project in Polish below – it was used as a base of what I was supposed to do.
Systemy Operacyjne 2 // Opis projektu – dystrybucja książek
Producent drukuje kolejne egzemplarze książek „50 Twarzy Greya”, które rozchodzą się natychmiastowo. Książki przewożone są przez dostawców do księgarń, w których to z kolei ustawiają się kolejki klientów, oczekujących na kolejne dostawy. Sekcjami krytycznymi w tym wypadku są punkty, w których stykają się poszczególne ogniwa: tylko jeden dostawca może znajdować się w danej chwili u producenta i ładować książki, również maksymalnie jeden dostawca może rozładowywać książki do sklepu. Oprócz tego, tylko jeden klient w danej chwili może dokonywać zakupu książki. Interfejs użytkownika zrealizowany będzie przy użyciu biblioteki ncurses. Na ekranie wyświetlane będą informacje o liczbie dostawców, księgarni i klientów. Oprócz tego producent opisany będzie liczbą aktualnie posiadanych druków i prędkości produkcji, przy każdym z dostawców będzie informacja o jego aktualnym zadaniu (podróż z albo do drukarni, rozładunek, załadunek), a każdy sklep opisany będzie informacją o liczbie aktualnie posiadanych książek i liczbie klientów w kolejce.