-
Notifications
You must be signed in to change notification settings - Fork 0
Mutex
rexina edited this page Oct 24, 2014
·
5 revisions
Przemyślenia dotyczące mutexów:
- trzymamy tablicę bitową oznaczającą stan mutexu (otwarty/zamknięty).
- mutexy numerujemy od 0 do N (konfigurowalne)
-
mutex.give()
ma odblokować wszystkie zadania:- iteracja po zablokowanych zadaniach:
- jeśli zablokowane przez tego mutexa to wrzuć do schedulera
- zaznacz że odblokowany
- iteracja po zablokowanych zadaniach:
-mutex.take()
:
- sprawdzić czy mutex jest wolny, jeśli nie:
- wrzucić zadanie do tablicy zablokowanych oraz wywołać systicka
-mutex.time(timeout)
:
- generujemy timeouta odblokowującego mutexa - po czasie timeout.