Systemy operacyjne

Transkrypt

Systemy operacyjne
Systemy operacyjne
Pracownia 1
Z poniższej listy proszę wybrać co najwyżej trzy zadania, rozwiązać je używając semaforów, spisać
rozwiązanie w postaci krótkiego raportu wraz z dowodem poprawności ( rozwiązanie powinno spełniać
warunki: wzajemnego wykluczania, postępu i ograniczonego czekania) i zaimplementować w
dowolnym, wspierającym wątki i synchronizację, imperatywnym języku programowania ( np. w C +
biblioteka Pthread ). Każde zadanie zostanie ocenione w skali 0-10 punktów. Zadania te należy
zaliczyć osobiście, np. w czasie konsultacji, w nieprzekraczalnym terminie 22.12.2008.
1. (problem spiskowców) Grupę wątków tworzy dowolna liczba wątków-spiskowców i co
najwyżej jeden wątek-milicjant. Zasobu zwanego lokalem konspiracyjnym może używać
jednocześnie dowolnie wielu spiskowców. Milicjant może „wejść” do lokalu, jeśli nie ma w
nim spiskowców (przeprowadza wtedy przeszukanie) lub gdy jest w nim ich przynajmniej 44
(rozpędza ich). Gdy milicjant jest w środku to żaden spiskowiec już nie wejdzie ( w oknie
znajduje się doniczka sygnalizująca wsypę).
2. (problem stołówki studenckiej) Student przebywając w stołówce wywołuje kolejno dwie
procedury: 'jedz' i 'wyjdź' (zjada obiad i wychodzi). Po wywołaniu 'jedz' a przed wywołaniem
'wyjdź' student jest w stanie gotowym do wyjścia. By zapewnić studentowi komfort psychiczny
nie może on obiadować w samotności. Taki stan ma miejsce, gdy każdy inny student, który
wywołał 'jedz', wywołał też 'wyjdź' zanim rozważany student zakończył procedurę 'jedz'.
3. (problem orangutanów) Nad głębokim kanionem, gdzieś w Ameryce Południowej, rozpięta jest
lina. Używają jej orangutany by przekroczyć kanion. Lina wytrzymuje ciężar pięciu małp a dwa
orangutany nie mogą jednocześnie przechodzić po niej z przeciwnych stron kanionu. Po
wejściu na linę nie można zawrócić z drogi. Każda małpa oczekująca na przejście musi kiedyś
zostać obsłużona.
4. (problem miejsca w barze) Dany jest pięciomiejscowy bar. Jeśli jest jakieś wolne miejsce to
klient może je zająć, lecz jeśli wszystkie są zajęte to znaczy, że ci goście obiadują wspólnie i
klient musi zaczekać, aż ostatni z nich opuści bar.
5. (problem przedszkola)
W przedszkolu na każdą trójkę dzieci musi przypadać jeden dorosły opiekun. Dzieci i
opiekunowie to dwa rodzaje wątków. Dzieci chcą wejść do przedszkola, lecz mogą to uczynić
jeśli nie naruszają powyższego warunku. Po pewnym czasie zarówno dzieci jak i dorośli
opuszczają przedszkole, znów w taki sposób, by nie naruszyć warunku.
6. (problem łazienki) W pewnym budynku jest toaleta użytkowana wspólnie przez panie i panów.
Toaleta ta mieści trzy osoby, z oczywistych względów mogą być to albo same panie albo sami
panowie. Proszę zamodelować ten problem w postaci programu wspóbieżnego.
7. (problem obiadujących kanibali)
Plemię kanibali spożywa wspólny posiłek z kotła mieszczącego M misjonarzy. Kanibal ustala
liczbę m niewiększą niż M misjonarzy, których chce zjeść i jeśli jest ich tylu w kotle to
przystępuje do konsumpcji. W przeciwnym wypadku budzi wioskowego kucharza, który
napełnia kocioł kolejnymi misjonarzami.
Piotr Witkowski

Podobne dokumenty