Semafory - synchronizacja korzystania z pamięci współdzielonej

Odpowiedz Nowy wątek
2015-01-06 00:58
0

Mam jeden segment pamięci współdzielonej składający się z czterech (bloków) tablic znaków char buf[MAX_SIZE].
Moim zadaniem jest napisanie dwóch programów (co istotne mam dopuścić współpracę kilku producentów i kilku konsumentów).

Producent po prostu czyta ze standardowego wejścia i zapisuje dane do pamięci współdzielonej, natomiast konsument odczytuje z pamięci i wypisuje na standardowe wyjście. Pojedynczy odczyt i zapis powinien ograniczać się do jednego bloku.

Do synchronizacji muszę użyć semaforów. Mam jednak problem z ich zaplanowaniem. Powinienem użyć czterech semaforów binarnych? W jaki sposób je opuszczać i podnosić tak, aby nie blokowały same siebie?

Z góry dzięki za pomoc ;)

Pozostało 580 znaków

2015-01-06 01:09
0

To zależy od logiki przetwarzania. Jak to ma działać? Producent/konsument wybiera blok i czeka aż będzie wolny? Czy może ma dostać pierwszy wolny z tej puli 4?


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2015-01-06 01:31
0

Wydaje mi się, że lepszym rozwiązaniem byłoby dostanie pierwszego wolnego. Chociaż to wydaje się być trudniejsze do implementacji. Jak można by zaprojektować semafory przy takim rozwiązaniu?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0