Skip to content

Latest commit

 

History

History
24 lines (15 loc) · 1.42 KB

Zestaw09.md

File metadata and controls

24 lines (15 loc) · 1.42 KB

Systemy operacyjne 2015/2016

Zadania - Zestaw 9: Wątki, współbieżność

Zadanie 1

Zaimplementuj wielowątkowy program realizujący poprawne rozwiązanie problemu pięciu filozofów. Należy zastosować rozwiązanie wykorzystujące semafory nienazwane standardu POSIX.

Zadanie 2

Zaimplementuj z wykorzystaniem monitorów poprawne rozwiązanie problemu lotniskowca:

Lotniskowiec ma pokład o pojemności N samolotów oraz pas startowy. Pas startowy jest konieczny do startowania i lądowania samolotów, a może z niego korzystać w danej chwili tylko jeden samolot. Gdy liczba samolotów na lotniskowcu jest mniejsza niż K (0 < K < N), priorytet w dostępie do pasa startowego mają samoloty lądujące, w przeciwnym razie startujące. Napisać należy algorytm samolotu, działającego w pętli według następującego schematu:

  • start
  • lot
  • lądowanie
  • postój

Lot i postój zaimplementować należy jako oczekiwanie przez pewną losową ilość czasu. Samolotów może być więcej niż N, wtedy część z nich zawsze będzie w powietrzu. Priorytet X nad Y oznacza, że dopóki są samoloty oczekujące na X, żaden z tych oczekujących na Y nie zostanie dopuszczony do wykonania pożądanej operacji.

Poprawne algorytmy rozwiązań dla zadania 1 i 2 można znaleźć w książce:

Weiss, T. Gruźlewski "Programowanie współbieżne i rozproszone w przykładach i zadaniach", Wydawnictwo Naukowo-Techniczne, Warszawa 1994.