[so] Deadlocks
Alexandru Tudorica
tudalex at gmail.com
Thu May 23 12:00:06 EEST 2013
Am o nelamurire legata de definitia unui deadlock.
Pe wiki[0] am gasit ca un deadlock trebuie sa respecte 4 conditii
1. Mutual exclusion
2. Hold and wait
3. No preemption
4. Circular wait
In testul 2 de curs a fost o intrebare:
În ce situație este posibilă apariția unui deadlock pe o singură
resursă critică?
Răspuns Fie procesul P1 care a acaparat resursa critică și procesele
P2, P3, … , Pn care așteaptă eliberarea resursei respective. Un
deadlock pe resursa respectivă va apărea dacă procesul P1 nu va
elibera resursa critică, fie datorită codului său (nu există
instrucțiunea de release/unlock, intră într-un ciclu infinit, etc.),
fie deoarece a fost terminat prin semnal SIGKILL.
Dupa parerea mea atunci cand P1 acapareaza resursa si nu o mai
releasuie nu se respecta conditia de Circular Wait (P1 nu wait-uie
dupa nimic), iar atunci cand este omorat prin SIGKILL nu s-ar invalida
conditia de no preemption?
[0] - https://en.wikipedia.org/wiki/Deadlock#Necessary_condition
--
Tudorică Constantin Alexandru
http://tudalex.com
More information about the so
mailing list