[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