A następnie
będziecie Państwo tworzyć aplikacje działające
współbieżnie przy użyciu mechanizmów systemowych.
Zadania są pretekstem - by Państwo mogli się wykazać znajomością
mechanizmów systemowych.
Zadania możecie Państwo przygotować na dowolny system operacyjny (pod
warunkiem, że będzie to Windows lub taka dystrybucja Linux'a, na
której będziecie mogli zademonstrować działające zadania).
Na zrealizowanie zadania macie Państwo cały semestr.
Oto zadania, które będziecie Państwo realizować w semestrze:
procesy - co to jest, jak stworzyć, jak sprawdzić, jak ubić, funkcje
fork()
oraz exec(),
obsługa plików
sygnały - co to, jak używać i kiedy używać,
potoki nienazwane,
potoki nazwane,
kolejki komunikatów (ang. message queues),
wątki (ang. threads) - tworzenie oraz przekazywanie parametrów do
wątków,
semafory i sposób ich używania,
pamięć wspólna (ang. shared memory),
gniazda (ang. sockets) - czyli jak dwa (lub więcej) komputery mogą się
dogadać.
Zajęcia 1. | Zajęcia organizacyjne. Wprowadzenie w zagadnienia, omówienie literatury, sposobów oceniania etc. Szkolenie BHP. | |
Zajęcia 2. | Programowanie w środowisku Linux. Kompilator gcc. Pierwsze programy. Program a proces. Rodzaje procesów. Komendy shella: ps oraz kill. | |
Zajęcia 3. | Procedura systemowa fork(). | Sprawdzenie zadania z procesów. |
Zajęcia 4. | Procedury systemowe exec(). | Sprawdzenie zadania z sygnałów. |
Zajęcia 5. | Obsługa plików. |
Sprawdzenie zadania z procesów i z wywołania innego procesu (fork() i exec() ). |
Zajęcia 6. | Potoki nazwane i nienazwane. Działanie i obsługa. | Sprawdzenie zadania z plików. |
Zajęcia 7. | Obsługa sygnałów. | Sprawdzenie zadań z potoków nienazwanych i nazwanych. |
Zajęcia 8. | Kolejki komunikatów - wprowadzenie w mechanizmy IPC, schemat działania oraz funkcje systemowe do obsługi. | Sprawdzenie zadań z sygnałów. |
Zajęcia 9. | Semafory - schemat działania, rodzaje oraz funkcje systemowe do obsługi. | Sprawdzenie zadania z kolejki komunikatów. |
Zajęcia 10. | Pamięć wspólna - schemat działania oraz funkcje systemowe do obsługi pamięci. | Sprawdzenie zadania z semaforów. |
Zajęcia 11. | Gniazda - protokół TCP, działanie i funkcje systemowe. | Sprawdzenie zadania z pamięci wspólnej. |
Zajęcia 12. | Realizowanie wybranego zadania (samodzielnie) | Sprawdzenie zadania z gniazd. |
Zajęcia 13. | ||
Zajęcia 14. | Omówienie zastosowanych mechanizmów, ocena zadania. | |
Zajęcia 15. | Oceny końcowe. |
Pomocne materiały:
UWAGA! Plik z funkcjami dot.
sematofów
zawiera celowo umieszczone błędy - literówki!
Po co? Abyście przynajmniej raz dokładnie go przeczytali...
ncurses
prof. J. Sadecki
mgr inż. A.Zatwarnicka