Repository navigation
Beehive
Directory actions
More options
Directory actions
More options
Beehive
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
PRZYJĘTA KONWENCJA: Cały kod napisany jest w języku angielskim. Program został napisany w ANSI C, z użyciem mechanizmów IPC Struktury oraz definicje typów nazywane są UpperCamelCase-m, jestem świadomy, że konwecja nazewnictwa struktur w C, to lower_case, jednak uważam, to za mało czytelne. Cała reszta napisana jest w lower_casie, oczywiście z wyjątkiem stałych. W przypadku pszczoły robotnicy, w treści zadania brak specyfikacji, czy wchodzenie do magazynu w celu pobrania jedzenia zeruje produkowanie miodu. Założyłem, że nie, tzn odbywa się to niezależnie, ale w ramach jednego wątku. SEKCJA KRYTYCZNA: Wchodzenie do sekcji krytycznej, obywa się w następujący sposób: 1.Sprawdź czy niedźwieć atakuje 2.Jeżeli tak, to czekaj 3.Opuść semafor magazynu 4.Ponownie sprawdź, czy niedźwiedź atakuje 4.1.Jeżeli tak, to zwolnij semafor i czekaj, aż niedźwiedź zajmie miejsca w magazynie 4.2.Ponownie opuść semafor 5.Jedz odkładaj, itd... Krok czwarty gwarantuje priorytet niedźwiedziowi w sytuacji w której, pszczoły przeszły pierwsze sprawdzenie ataku niedźwiedzia i czekają na semaforze. Czyli kiedy niedźwiedź, zaczął atakować, w momencie w którym pszczoły wykonują trzeci krok. INTERFEJS: Interfejs wykonany został w jednej konsoli. Odświeżać statystyki można dowolną liczbą większą od 2. Nie odświeża się sam ponieważ jest to irytujące, przy dużej ilości pszczół. KRÓLOWA: Królowa jest procesem, jednak tak naprawdę nic nie robi. Przy ataku niedźwiedzia królowa nie jest traktowana jak pszczoła, (nie można jej zabić). Wszystkie stałe znajdują się w pliku "constants.h" Reszta komenatrzy znajduje się w kodzie URUCHAMIANIE: Folder zawiera Makefile: make build_and_run - kompiluj i uruchom make build - kompiluje, program znajduje się w w folderze out make clean - usuwa folder out