Konsumerzy-Producenci (wersja z współpracującymi procesami)

0

Postanowiłem zrobić program przedstawiający problem Producentów-Konsumentów przy użyciu WinAPI. Jedną wersję, z wieloma wątkimi w obrębie jednego procesu, już zrobiłem. Teraz, pozostało mi wykonać wersję programu z wieloma procesami przedstawiającymi konsumentów i producentów. Problem w tym, że nie wiem jak dzielić bufor, który jest tablicą intów, pomiędzy procesami tak aby wszystkie miały do niego dostęp i mogły zmieniać jego zawartość.

0

semafory

0

Chyba źle to ująłem, nie chodzi mi tu o kwestię synchronizacji procesów, bo wiem, że do tego trzeba będzie użyć semaforów. To o co pytam, dotyczy sprawy, jak uczynić bufor widocznym dla innych procesów. W przypadku wersji programu z wieloma wątkami wystarczyło zadeklarować bufor jako zmienną globalną. W tym przypadku mogę wykorzystać pamięć dzieloną, ale nie wiem jak do tego się zabrać w przypadku tablicy intów.

0

Nie zbyt rozumiem, o semaforach znasz o pamięci współdzielonej też, to z czym masz problem? Z rozdzieleniem dostępu?

0

Jak dotąd nie miałem okazji, by wykorzystywać pamięć współdzieloną. Dlatego też nie wiem dokładnie, jak wdrożyć to w kod, by wszystkie procesy "widziały", że jest gdzieś tam jakaś tablica intów.

0

Każdy proces widzi to jako adres bloku pamięci o ustalonym rozmiarze. A jak to każdy proces będzie interpretował to już twoja w tym głowa.
Jedynie czego nie możesz tam wpakować to wskaźników nawet na jakąś część tegoż obszaru, ponieważ każdy proces będzie widział ten obszar tak jakby pod innym adresem.

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