Systemy operacyjne 2009:

Lista zadań:
  • (1 IV) 10 pkt zadanie format
  • (15 IV)
    • 1. (6 pkt) Zapoznaj się z tworzeniem nowym potomków w programach w języku C. Przeczytaj o Komunikacji międzyprocesowej Sprawdź jak działają semafory. Przeczytaj o pamięci dzielonej i komunikatach. Napisz program, który komunikuje się z potomkiem za pomocą a) pamięci dzielonej b) poprzez komunikaty. Napisz program, który sortuje ciąg liczb poprzez stworzenie dwóch wątków sortujących połowy ciągów. Główny program powinien scalić uporządkowane połowy. Wskazówki: fork, getpid, execlp, kill, fdopen, semget , semop, semctl, * pthread_create.
    • 2. (4 pkt) Zaimplementuj 2 z 4 algorytmów zastępowania stron: zadanie 2
  • (29 IV)
    • 1. (6 pkt) Napisz program, który tworzy 2 potomki. Pierwszy z potomków ma generować w losowych odstępach czasu (1-5 sekund) losowe liczby naturalne. Drugi potomek ma zwracać sumę dwóch liczb ostatnio wygenerowanych przez pierwszego potomka. Wykorzystaj pamięć dzieloną.
    • 2. (4 pkt) Zmodyfikuj powyższy program tak, aby wykorzystywał komunikaty.
  • (27 V)
    • 1. (8 pkt) Zaimplementuj rozwiązanie zmodyfikowanego problemu filozofów: W poczekalni spacerują filozofowie (parametr - do 100 procesów; losowana ilość początkowa) z poczekalni co pewien czas próbują dostać się do pokoju. w pokoju jest nie więcej niż 10 filozofów. przy stole (pięcioosobowym) nie może usiąść więcej niż 4 filozofów. Rozwiązanie powinno nie dopuszczać do głodzenia. Uwagi: nie implementuj samemu semaforów. Należy wykorzystać bibliotekę libpthread. Zadbaj o komunikaty diagnostyczne. Gdy proces się kończy powinien wypisać ile razy był przy stole i ile razy jadł.
    • 2. (8 pkt) Algorytm Bankiera
  • (10 VI)
    • 1. (4 pkt) Wykorzystując wątki (libthread) i semafory napisz program, który rozwiązuje problem 5 filozofów dla 123 filozofów bez ryzyka blokady.
    • 2. (8 pkt) Zmodyfikuj program z zadania (1) tak, aby mogło dojść do blokady. Przetestuj algorytm bankiera na tej wersji problemu filozofów. Przygotuj wersje z włączonym i wyłączonym algorytmem bankiera, aby można było obserwować blokadę.
    • 3. (4 pkt) Napisz prosty program pokazujący wykorzystanie mechanizmów synchronizacji w systemie windows: semarofy, mutex'y, "Critical Section Objects", "Event Objects"
Wyniki >>>
Symulator oceny końcowej >>>

Zakres ostatniej kartkówki: mogą się pojawić zadania z poprzednich kartkówek, ponadto należy znać pojęcia, które zostały omówione na wykładzie, bądź labolatorium.

Jeżeli masz zamiar nie pojawić się na zajęciach, to a) najprawdopodobniej nie napiszesz kartkówki - nie zdobędziesz punktów; b) nie otrzymasz żadnych punktów za listę zadań. Jeżeli rzeczywiście nie możesz przyjść, to prześlij zadania mailem PRZED rozpoczęciem zajęć i staw się na najbliższe konsultacje (umów się mailem).