[OSy] Reprezentace mutexu

Martin Decky decky at dsrg.mff.cuni.cz
Mon Jan 1 13:53:35 CET 2007


Hezky den,

> Zajimalo by me, zda struktura struct mutex v zadani treti semestralky je
> stejna jako struct mutex v semestralce prvni.

Zadani urcite nepozaduje, aby se jednalo o stejnou strukturu. Tyto dve 
stejne pojmenovane struktury se totiz nikdy "nepotkaji": jedna je 
definovana v ramci kernelu, druha v uzivatelskem prostoru.

> K dotazu me privedla nasledujici
> uvaha: Pokud bychom v uzivatelskem rezimu pracovali primo s puvodni struktorou
> mutexu, ktera obsahuje seznam cekajicich vlaken, mohl by teoreticky uzivatel
> mutexu do seznamu pridat vlakno ciziho procesu. Nevim, co vse by to pak mohlo
> zpusobit. Napadlo me tedy, ze by vlastni data mutexu byla chranena kdesi
> v jadre (napr. jako soucast datove struktury reprezentujici proces) a uzivatel
> by s mutexy zachazel jen pomoci ciselnych identifikatoru, ktere by predaval
> funkcim ze zadani.

Ta druha varianta je rozhodne lepsi, uzivatelsky proces by nemel mit 
sanci podstrcit kernelu neplatne udaje nebo nejakym jinym zpusobem 
modifikovat citliva data, u kterych kernel predpoklada, ze jsou spravne.

> V zadani treti semestralky ale tyto funkce zachazeji se
> strukturou, coz me privedlo k myslence, ze tento problem jsme mozna nemeli
> resit.  Jak bylo tedy zadani mysleno?

Struktura je to proto, ze je na vas, jak v uzivatelskem prostoru mutexy 
naimplementujete a jake informace si tedy ve strukture mutexu budete 
pamatovat. Muzete napriklad z kernelu do uzivatelskeho prostoru 
vyexportovat pouze rozhrani pro praci s cekacimi frontami.


M.D.



More information about the NSWI004 mailing list