[OSy] Proc struct mutex v user mutexech?

Martin Decky decky at dsrg.mff.cuni.cz
Fri Jan 4 12:58:08 CET 2008


Hezky den,

> mel bych takovy dotaz: v zadani treti semestralky jsou pro operace s
> user mutexy pouzivany typy "struct mutex". V jednom z predchozich
> mailu v konferenci ovsem stoji, ze 'je velmi nevhodne poskytovat
> uzivatelum primo strukturu mutexu.
> To si vykladame tak, ze je vhodne pouzit nejake handly (tzn. nejake
> id, podle kterych si "vevnitr" najdu strukturu pro dany mutex).

Ano, to chapete spravne.

> Ted - je mi jasne, ze je mozne pouzit typ struktura a dovnitr dat
> handle...neni ovsem elegantnejsi pouzit misto struktury nejaky
> uzivatelsky typ mutex_t (podobne, jako to maji treba vlakna)?

Mozna mate pravdu, v uzivatelskem prostoru implementace mutexu skryva 
pred uzivatelem vice detailu nez v kernelu (struktura mutexu typicky 
neobsahuje samotny binarni zamek, ale jen handly na kernelove zdroje).

Na druhou stranu stale plati, ze mutexy maji staticky charakter (jen 
vyjimecne se alokuji dynamicky) a za vznik a zanik zodpovida uzivatel 
(jinymi slovy v rozhrani neni funkce mutex_create(), ale mutex_init()). 
Aby si toho uzivatel byl explicitne vedom, je vhodnejsi predavat do 
funkci ukazatel na strukturu, ne samotnou strukturu.

Dalsi motivace je, aby rozhrani kernelovych a uzivatelskych mutexu bylo 
co nejpodobnejsi, protoze se i chova velmi podobne.


M.D.




More information about the NSWI004 mailing list