[OSy] Chovani mutexu

Viktor Masicek cabadaj at gmail.com
Thu Nov 1 16:59:44 CET 2007


Dobry den.

Rovnou k veci. Mam mutex a vlakna A,B,C. Vlakno A zamkne mutex, B,C se
pokusi o zamknuti a zablokuji se. Co se stane, kdyz ted vlakno A umre?

(1) Nic, proste umre a vlakna B,C zustanou uspana naveky. Proste chyba
programatora, ze to tak blbe udelal.

(2) Pri zabijeni vlakna A se zavola 'mutrex_up' na zminovany mutex a
tim se napriklad B odblokuje a zablokovane zustane jen C. To by v
dusledku vyzadovalo drzet si seznam mutexu u kazdeho vlakna nebo
pripadne projit vsechny mutexy a porovnavat id killovaneho vlakna s
vlastnikem mutexu.

Podle me jsou obe reseni mozna. Pro obe varianty si dovedu predstavit
uplatneni z pohledu programatora pouzivajici me mutexy.

Co je tedy spravne?
Dekuji.

Viktor Masicek




More information about the NSWI004 mailing list