semafory, monitory

0

Mam problem z pewnym zagadnieniem z programowania współbieżnego, część zadania nad którym się zastanawiam to:

**Przedstaw pseudokod emulujący protokół wstępny i końcowy metod monitora z wykorzystaniem semaforów.
**
Ktoś ma jakieś pomysły i może coś podpowiedzieć?

1

A jaki masz problem i na czym on polega? Na jakim etapie się zatrzymałeś?

Wejście do metody monitora można w dużym uproszczeniu zapisać tak:

1. oczekuj na zwolnienie semafora - powiedzmy że oczekuj dopóki S > 0
2. ustaw S = 1 // w tym momencie każdy inny proces będzie musiał czekać

Wyjście z metody jest w sumie jeszcze prostsze:

1. ustaw S = 0 // jakiś inny proces będzie mógł wejść do metody

W każdym razie zakładając, że procesy czekają aktywnie tzn. ciągle odpytują o stan semafora. No i że dostęp do semafora jest thread safe tzn. semafor jest zabezpieczony np. przed zmianą wartości przez dwa procesy jednocześnie, np. dzięki operacjom atomowym.

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