<div dir="ltr">Salut, Alex!<div><br></div><div>Găsești răspunsurile mele inline.<br><br><div class="gmail_quote"><div dir="ltr">On Tue, May 15, 2018 at 8:58 PM Alex Negura via so <<a href="mailto:so@cursuri.cs.pub.ro">so@cursuri.cs.pub.ro</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US"><div class="m_4320878599784889705WordSection1"><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Salut,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Am ajuns cu implementarea temei la testul 10, unde se creeaza mai multe threaduri<u></u><u></u></p><p class="MsoNormal"> si am observat ca threadul creat din scriptul de testare iese imediat din<u></u><u></u></p><p class="MsoNormal">so_fork() si apoi apeleaza fara sa astepte terminarea executieie programului <u></u><u></u></p><p class="MsoNormal">functia so_end().</p></div></div></blockquote><div>Nu mi-e clar ce vrei să spui mai sus. Cum ar putea apela so_end() *după* terminarea execuției programului? </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US"><div class="m_4320878599784889705WordSection1"><p class="MsoNormal"><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Ar trebui ca eu sa sincronizez functia so_end() sa astepte terminarea<u></u><u></u></p><p class="MsoNormal">executiei tuturor threadurilor?</p></div></div></blockquote><div>Da, exact asta scrie și în enunț[1] că trebuie să facă funcția so_end().</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US"><div class="m_4320878599784889705WordSection1"><p class="MsoNormal"> Alta solutie nu gasesc si apparent doar mie mi se intampla<u></u><u></u></p><p class="MsoNormal">acest lucru, desi ar trebui sa se intample tuturor.</p></div></div></blockquote><div>De ce zici că ți se întâmplă doar ție? Ăsta este un comportament normal, sunt convins că se întâmplă la toate implementările.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US"><div class="m_4320878599784889705WordSection1"><p class="MsoNormal"> Acel thread creat in script nu asteapta <u></u><u></u></p><p class="MsoNormal">deloc terminarea executiei in totalitate a programului si sunt nedumerit de ce se comporta<u></u><u></u></p><p class="MsoNormal">in acest fel checkerul…..</p></div></div></blockquote><div> </div><div>Un thread face parte dintr-un proces (program în execuție) - dacă un proces se termină, atunci toate thread-urile acelui proces se termină, indiferent ce fac ele. Cred că tu confunzi modul în care rulează thread-urile cu cel al proceselor. Îți recomand să mai arunci o privire pe cursul de fire de execuție[2] și capitolele aferente din Operating Systems Concepts Essentials și Modern Operating Systems.<br></div><div><br></div><div>[1] <a href="https://ocw.cs.pub.ro/courses/so/teme/tema-4#detalii_implementare_instructiuni">https://ocw.cs.pub.ro/courses/so/teme/tema-4#detalii_implementare_instructiuni</a></div><div>[2] <a href="https://ocw.cs.pub.ro/courses/so/cursuri/curs-08">https://ocw.cs.pub.ro/courses/so/cursuri/curs-08</a></div><div><br></div><div>Numai bine,<br>Răzvan</div></div></div></div>