Zadania IPC
Transkrypt
Zadania IPC
SYNCHRONIZACJA PROCESÓW (IPC) - PROJEKTY Problemy: P-K - Producent-Konsument C-P – Czytający-Piszący 5-F – 5 Filozofów Mechanizmy synchronizacji: kk – kolejka komunikatów pd – pamięć dzielona sem – semafory W każdym zadaniu trzeba zastosować pamięć dzieloną. Dla problemu PK – będzie to bufor dla procesów producenckich i konsumenckich Dla problemu 5-F - będzie to tablica widelców, której elementy przyjmują wartości całkowite <0;5>, gdzie 0 – oznacza wolny widelec, 1-5 – oznacza numer filozofa, który używa danego widelca. Program główny powinien wypisywać stan tablicy widelców. Dla problemu C-P – będzie to bufor przeznaczony do pisania/czytania Projekty: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. P-K – sem C-P – sem (priorytet dla czytających) C-P – sem (priorytet dla piszących) C-P – kk (priorytet dla czytających) C-P – kk (priorytet dla piszących) C-P – sem Agerwali C-P – uogólnione operacje semaforowe (priorytet dla czytających) 5-F – kk (rozwiązanie 1) 5-F – sem (rozwiązanie 1) 5-F – kk (rozwiązanie 1) / C-P – uogólnione operacje semaforowe (priorytet dla piszących) 5-F – sem (rozwiązanie 2 – stany) 5-F – kk (rozwiązanie 2 stany) 5-F – sem (rozwiązanie 3 – jadalnia) 5-F – kk (rozwiązanie 3 – jadalnia) 5-F – sem (rozwiązanie 4 – asymetryczne) 5-F – kk (rozwiązanie 4 – asymetryczne) 5-F – jednoczesne operacje semaforowe Tematy projektów (szczegóły rozwiązania) odnoszą się do materiałów z wykładów i skryptu do SO. Każdy projekt powinien się składać z głównego programu, który tworzy i inicjuje mechanizmy synchronizacji procesów, następnie tworzy procesy potomne zgodnie z tematem zadania, czeka na ich zakończenie i zamyka mechanizmy synchronizacji. W przypadku problemu P-K należy uruchomić po min. 20 procesów producenta i konsumenta. Producent dodaje jeden rekord do puli buforów, a konsument pobiera 1 rekord z puli buforów. W przypadku problemu C-P należy uruchomić po 20 procesów czytających i piszących. Procesy piszące zapisują jeden rekord, procesy czytające czytają jeden lub więcej rekordów. W przypadku problemu 5-F należy uruchomić 5 procesów filozofów, każdy z nich wykonuje pętlę, w której realizuje swoje zadania – myślenie i jedzenie.