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 _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
