-
Data: 2013-07-01 00:26:42
Temat: Re: pytanie z mutexów
Od: Michoo <m...@v...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 28.06.2013 22:12, A.L. wrote:
> On Fri, 28 Jun 2013 15:36:11 +0200, Michoo<m...@v...pl> wrote:
>>> P.S. Zadam to samo zadanko co kiedys: procesy a, b, c, d, e, f
>>>
>>> Wzajemne wykluczanie: (a,c), (c,f), (a,b), (b,e), (b,d), (c,d), (e,f)
>>>
>>> Zaprojeltowac rozwiazanie bez deadlocku i starvation free
>>
>> Ale już Ci na nie odpowiadałem:
>> - tworzysz 6 muteksów (A-F)
>> - sporządzasz dla każdego procesu listę z którymi się wyklucza
>> - sortujesz te listy w kolejności a-f
>>
>> Każdy proces wchodząc do sekcji krytycznej pobiera potrzebne mu blokady
>> w kolejności A-F. Rozwiązuje to problem wzajemnego wykluczania([*]).
>> Problem zagłodzenia nie wystąpi na pewno gdy muteksy budzą w kolejności
>> FIFO, przy braku tej gwarancji do zagłodzenia może dojść[**] więc
>> najlepiej chyba ją zapewnić przez kombinację mutex+lista+condition
>> variable (dopóki !pierwszy na liście).
>>
>>
>> [*] Czyim imieniem nazywamy ten algorytm - nie pamiętam. Jest to daleka
>> wariacja Lamporta.
>> [**] Choćby a i b "wymieniające się" muteksem A mogą zagłodzić c.
>
> Niezupelnie o to chodzi, bo wejscie w proces a powinno blokowac
> procesy b i c ale nie powinno blokowac procesow d, e, f
Nie znam (a przynajmniej nie przypominam sobie) innego "standardowego"
algorytmu rozwiązującego ten problem w sposób przejrzysty a jednocześnie
optymalny pod względem wydajnościowym.
Jakbym miał to zrealizować i powyższe rozwiązanie byłoby
niewystarczające zrobił bym to za pomocą monitora z porównaniem maski
aktualnie działających procesów z wymaganą maską jako warunkiem.
Kwestie zagłodzenia w takim wypadku trzeba rozwiązywać osobno już
zależnie od tego co rozumiemy przez "zagłodzenie"[*] i jakie są schematy
współpracy między wątkami.
Być może statyczny przydział, być może wstrzymywanie procesów które
wybijają się poza zakładany histogram - za mało danych aby odpowiedzieć.
[*] Czy mamy ograniczenia typu "minimum 1 wywołanie na k jednostek
czasu", czy raczej "od a1 do a2 % czasu wykonania w k jednostkach", czy
też kombinację z ewentualnymi dodatkowymi warunkami. Ogólnie wchodzimy
opuszczamy już tutaj problem synchronizacji a wchodzimy w sferę
szeregowania zadań.
--
Pozdrawiam
Michoo
Następne wpisy z tego wątku
- 01.07.13 01:47 Edek
- 01.07.13 02:31 A.L.
- 01.07.13 11:32 Michoo
- 01.07.13 12:05 Michoo
- 01.07.13 13:02 Edek
- 01.07.13 13:54 Edek
- 01.07.13 14:14 Edek
- 01.07.13 15:10 Edek
- 01.07.13 15:53 A.L.
- 01.07.13 18:24 Michoo
- 01.07.13 18:30 Michoo
- 01.07.13 18:36 Michoo
- 01.07.13 19:08 Edek
- 01.07.13 21:47 Edek
- 01.07.13 22:01 Edek
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-13 Gdańsk => Application Security Engineer <=
- 2025-01-13 Białystok => System Architect (Java background) <=
- 2025-01-13 Warszawa => Konsultant ds. sprzedaży <=
- 2025-01-13 Warszawa => Key Account Manager <=
- 2025-01-13 Szczecin => Senior Field Sales (system ERP) <=
- 2025-01-13 Rzeszów => International Freight Forwarder <=
- 2025-01-13 Bydgoszcz => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-01-13 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-13 Warszawa => Staż w dziale Sprzedaży B2B <=
- 2025-01-13 Wydajność klimy w obecnych temperaturach
- 2025-01-13 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2025-01-13 Kraków => UX Designer <=
- 2025-01-13 Katowice => Key Account Manager (ERP) <=
- 2025-01-13 Mińsk Mazowiecki => Spedytor Międzynarodowy <=
- 2025-01-12 USB3.x->HDMI/DP ze sterownikami w win11