Projekty z kursu Systemy operacyjne 2 na PWr
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

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.