[pso] Corectare tema 1, depunctari?!

Andrei Ismail iandrei85 at yahoo.com
Tue Apr 1 17:13:45 EEST 2008


Salut Dragos,

Nu se poate sa scapi de race-uri atunci cand
implementezi un apel de sistem intr-un modul. Pentru
ca orice locking ai pune tu in module_exit si in
apelul tau de sistem my_syscall, inainte sa ajunga
sa-l ruleze, procesul respectiv va trece prin
dispecerul sistemului de operare (ala care se uita la
nr. syscall-ului si-i copiaza pe stiva kernel
parametrii). Ideea e ca procesul poate fi preemptat
exact inainte sa se apuce sa execute codul tau (care
contine si un lock printre altele). Asa ca lock-ul ala
va putea fi luat linistit de catre module_exit, lasand
in continuare kernel-ul intr-o stare invalida. 

L-am intrebat si pe d-l Purdila joia trecuta la curs,
si mi-a confirmat banuiala. In plus, s-a discutat si
in anii trecuti pe lista de discutii. Prin acest post
nu vreau sa promovez ideea ca trebuie ca temele care
nu au facut sincronizare cu atentie (e destul de
posibil sa se numere si a mea printre ele :D) sa
primeasca note mari.

Morala povestii:
1) (citat din Linus Torvalds) The proper thing to do
(and what we _have_ done) is to say "unloading of
modules is not supported". It's a debugging feature,
and you literally shouldn't do it unless you are
actively developing that module.
(http://lwn.net/Articles/68182/)

2) Nu e bine sa adaugam syscall-uri noi prin
intermediul unor module de kernel (motiv pt care nu se
poate face clean asta nici in Linux versiunile noi -
nu se mai exporta sys_call_table, si nici in Windows -
vezi hack-ul din sci_win.h pentru a afla adresa lui
ShadowTable)

3) Chiar daca e doar o tema in scop didactic, parerea
mea este ca observatia lui Mircea nu e valida (nu
trebuie sa scriem tema doar pt sisteme care nu sunt
SMP). 

Andrei Ismail
342 C3


      ____________________________________________________________________________________
You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost.  
http://tc.deals.yahoo.com/tc/blockbuster/text5.com


More information about the pso mailing list