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 ;)