wtorek, 13 grudnia 2011

Problem pięciu filozofów

Problem ucztujących filozofów jest jednym z klasycznych zagadnień programowania współbieżnego dotyczącego zagadnienia synchronizacji procesów. Został on wymyślony przez E. Dijkstra w 1965 roku. Wymyślił on zadanie dotyczące sytuacji, w której 5 komputerów chce uzyskać dostęp do 5 współdzielonych dysków. Niedługo potem, problem został przedstawiony na nowo przez T. Hoare jako problem ucztujących filozofów.

Pięciu filozofów jest przy stole i wykonują jedną z dwóch czynności – albo jedzą, albo rozmyślają. Stół jest okrągły, przed każdym z filozofów jest się miska ze spaghetti (albo ryżem, albo czymkolwiek), a pomiędzy każdą sąsiadującą parą filozofów leży widelec (ewentualnie pałeczka do ryżu, w zależności od wersji). Także każdy ma przy sobie dwie sztuki - po swojej lewej i prawej stronie. Ponieważ jedzenie potrawy jest trudne przy użyciu jednego widelca, zakłada się, że każdy filozof korzysta z dwóch. 



Zrealizowana aplikacja składa się tak naprawdę z dwóch programów napisanych w języku C. Jeden główny, który inicjuje semafory w pamięci dzielonej oraz uruchamia osobne procesy dla każdego z filozofów. Procesy komunikują się ze sobą za pomocą semaforów w pamięci współdzielonej z wykorzystaniem bibliotek sys/sem.h oraz sys/shm.h



1 komentarz:

  1. TINNAR AT CATINATI TINNAR AT PETITON TINNAR AT PETITON TINNAR
    TINNAR tube supplier AT CATINATI TINNAR AT PETITON TINNAR AT PETITON TINNAR titanium element AT PETITON TINNAR AT PETITON TINNAR AT titanium price per pound PETITON TINNAR AT PETITON titanium easy flux 125 amp welder TINNAR AT titanium 6al4v PETITON TINNAR AT PETITON TINNAR.

    OdpowiedzUsuń