2. Zadania,
punktacja i ocenianie
Z kolejnych etapów rozliczacie
się w
terminach
podanych
na zajęciach.
W przypadku, gdy zrealizowane zadanie nie zostało przez Państwa
zaliczone w terminie, za każdy tydzień spóźnienia naliczane
są
punkty karne. Punkty karne za każdy tydzień przekładają się na
obniżenie oceny za zaliczenie o pół oceny. Od tego ew.
odejmujemy jeszcze cos za złe wykonanie zadania!
Jeżeli zrealizujecie Państwo w terminie i poprawnie zadania,
otrzymujecie ocenę równą 4,5 (słownie: dobry
plus).
Zadanie, które będziecie Państwo realizować w semestrze
LOSUJECIE i wykonujecie je na dwa sposoby:
A wersja "lokalna" | wszystkie
procesy znajdują się
na jednym komputerze, |
B wersja z użyciem gniazd | część procesów może być uruchamiane na różnych komputerach. |
Każdą z wersji wykonujecie Państwo w kilku etapach. Oto plan, wg. którego będziecie Państwo realizować zadania:
kolejny etap pracy | co będziecie Państwo robić na zajęciach | co sprawdzam | |
Zajęcia 1. | zajęcia organizacyjne | Zajęcia organizacyjne, omówienie literatury, materiałów, zagadnień, sposobów oceniani itp, szkolenie BHP. | - |
Zajęcia 2. | Proces serwera wizualizacji |
Omówienie schematu działania kolejek
komunikatów w QNX-ie. Omówienie bilblioteki ncurses. Pierwszy program
na 'okienkach' pod Linux'a ;) Program wizualizacji, który uruchomiony rysuje na ekranie skrzyżowanie. |
- |
Zajęcia 3. |
Proces
klienta (pojazd) |
Dokładacie Państwo program pojazdu, który komunikuje się z wizją i przesyła do niej komunikaty (co powoduje narysowanie 'jadącego' autka na ekranie, wszystko jedno, czy po torach, czy po szlabanie). Komunikacja z procesem wizualizacji poprzez kolejki komunikatów. | sprawdzenie programu wizualizacji |
Zajęcia 4. | Wdrożenie procesu klienta (pojazd) | Doskonalicie Państwo program klienta, pojazdy mają jechać po wyznaczonych trasach, proszę już rozróżniać, czy pojazdem jest auto, czy pociąg. Program pojazdów uruchamiany jest z odpowiednimi parametrami! Być może trzeba będzie uzupełnić program wizualizacji! |
sprawdzenie programu pojazdów w wersji beta (oglądam) |
Zajęcia 5. | Proces serwera zasobów | Piszecie Państwo program serwera zasobów, który 'nadzoruje' stan skrzyżowania, m.in. zajętość poszczególnych 'kratek' drogi, zajętość mostu, stan świateł i szlabanów. Proces ma gwarantować, że poszczególne pojazdy nie będą na siebie najeżdżały! |
sprawdzenie programu pojazdów w wersji
ostatecznej (na ocenę) |
Zajęcia 6. | Wdrożenie procesu serwera zasobów | Doskonalicie Państwo program zarządcy, wersja ostateczna zawiera m.in. sprawdzenie zajętości poszczególnych elementów drogi, oraz ma przygotowane struktury pamiętające stan świateł (włączone/wyłączone), stan szlabanów (włączone/wyłączone), zajętość mostu (czy wszyscy, którzy wjechali na most zdążyli już wyjechać). Z tych struktur będzie korzystać proces zarządzający mostem. |
sprawdzenie programu zasobów w wersji beta (oglądam) |
Zajęcia 7. | Proces zarządcy | Piszecie Państwo program zarządzający mostem (zarządca? dróżnik?). Proces ten umożliwia sterowanie mostem, szlabanami i światłami. Komunikacja z procesem zasobów oraz procesem wizualizacji poprzez kolejki komunikatów. Być może trzeba będzie uzupełnić program wizualizacji! |
sprawdzenie programu zasobów w wersji
ostatecznej (na ocenę) |
Zajęcia 8. | Wdrożenie procesu zarządcy | Doskonalicie Państwo program zarządcy, wersja ostateczna zawiera m.in. sprawdzenie zajętości poszczególnych elementów drogi, oraz umożliwia udostępnienie drogi dla pojazdów z pierwszeństwem (łącznie z wykryciem nadjeżdżającego pojazdu, ze zmianą świateł, podnoszeniem/opuszczeniem szlabanów, sprawdzeniem, czy żaden pojazd nie jest na skrzyżowaniu etc.) |
sprawdzenie programu zarządcy mostu w wersji
beta (oglądam) |
Zajęcia 9. | Dopracowywanie szczegółów | Sprawdzacie Państwo, czy zasady działania Waszego programu są zgodne z wytycznymi. |
sprawdzenie programu zarządcy mostu w wersji
ostatecznej (na ocenę) |
Zajęcia 10. | zadania numeryczne |
Omówienie działania procesów równoległych w QNX'ie. Przydział zadań matematycznych (numerycznych) |
sprawdzenie całości zadania A (na ocenę) |
Zajęcia 11. | opracowanie zadania B 'globalnego' | Przekształcenie zadania A na wersję 'globalną' - w której każdy proces może być uruchomiony na osobnym węźle sieci qnet. | sprawdzenie zadań numerycznych |
Zajęcia 12. | j/w | cd. zadania B | - |
Zajęcia 13. | j/w | zadanie B - dopracowywanie szczegółów | - |
Zajęcia 14. | Prezentacja i zaliczenie zadania B (w wersji równoległej, tzw. globalnej) |
sprawdzenie całości zadania B (na ocenę) |
|
Zajęcia 15. | Wpisy ocen końcowych. |
2. Forma zaliczenia
Zaliczenie zadania A, zadania B oraz zadnia numerycznego polega na:
- zaprezentowaniu efektów działania napisanego programu,
- wyjaśnienie zasady działania programu,
- omówienie kodu programu,
- przedstawieniu
stosownego sprawozdania w postaci papierowej (zawierającego w/w),
oraz
przesłaniu treści sprawozdania w formie pliku pdf mailem do prowadzącego.
3.
Szczegółowe wytyczne
W swoich programach nie możecie Państwo używać funcji spawn().
Treść
zadania A (działającego 'lokalnie') - dostępna |
tutaj |
Treść zadania B (działającego 'globalnie' - na
kliku węzłach sieci qnet) dostępna |tutaj
|
Treść zadań numerycznych - dostępna wkrótce.
4. Literatura
Książki:
QNX - instalowanie i dokumentacja
Materiały dotyczące programowania w QNX-ie:
UWAGA! Plik z funkcjami dot.
semaforów
zawiera celowo umieszczone błędy - literówki!
Po co? Abyście przynajmniej raz dokładnie go przeczytali...