# PWr - Sytemy operacyjne 2 P Moje projekty z SO2 u doktora Dariusza Cabana - obsługa wątków w C++. UWAGA: przed kompilacją trzeba zainstalować pliki nagłówkowe ncurses (Debian, Ubuntu i pochodne - pakiet libncurses5-dev) __Projekt 1: BRIcks Caban Kernel-thread System (_so2-bricks_)__ Rysowanie spadających cegieł z wykorzystaniem ncurses. Założenia: - implementacja cegły jako klasa Brick - 1 cegła = 1 wątek - 1 dodatkowy wątek jako monitor (rysowanie wszystkich cegieł) - przerysowanie ekranu co 10 ms - automatyczne dopasowywanie liczby cegieł i długość drogi do rozmiarów terminala - wątki zrealizowane za pomocą klasy std::thread z C++11 __Projekt 2: SYncsys Next Caban SYStem (_so2-center_)__ Centrum obsługi zgłoszeń. Założenia: - co jakiś czas na ekranie pojawia się nowe zgłoszenie (jako znak) i przesuwa się do centrum obsługi - w systemie zgłoszenie jest obsługiwane przez określony (stały) czas - jeżeli centrum obsługi jest zajęte, kolejne zgłoszenia czekają w kolejce o ograniczonej długości - jeżeli cała kolejka jest pełna, kolejne zgłoszenia okrążają centrum i próbują dostać się do kolejki jeszcze raz - 1 zgłoszenie przez cały czas ma być 1 (i tym samym) wątkiem - wykorzystanie synchronizacji, sekcji krytycznych, itp. __Projekt 3: BRIcks-ng Caban Kernel-thread System Next Generation (_so2-game_)__ Prosta gra, napisana z wykorzystaniem mechanizmów poznanych na projektach 1 i 2. Zasady rozgrywki: - czas rozgrywki – 120 sekund - sterowanie – klawisze A i D - zadanie – łapanie na platformę spadających cegieł w kolorze takim samym, jak kolor platformy - co 15 sekund platforma zmienia kolor - za każdą złapaną cegłę odpowiedniego koloru przydzielane jest 5 punktów - za każdą złapaną cegłę innego koloru odejmowany jest jeden punkt i za karę rozgrywka jest blokowana na 10 sekund - przy zliczanym wciąż czasie Projekty z założenia były pisane na platformy Unix-like - wszystko, gdzie są dostępne ncurses.h i unistd.h.