Salut, Alex! Găsești răspunsurile mele inline.
On Tue, May 15, 2018 at 8:58 PM Alex Negura via so <so@cursuri.cs.pub.ro> wrote: > > > Salut, > > > > Am ajuns cu implementarea temei la testul 10, unde se creeaza mai multe > threaduri > > si am observat ca threadul creat din scriptul de testare iese imediat din > > so_fork() si apoi apeleaza fara sa astepte terminarea executieie > programului > > functia so_end(). > Nu mi-e clar ce vrei să spui mai sus. Cum ar putea apela so_end() *după* terminarea execuției programului? > > > Ar trebui ca eu sa sincronizez functia so_end() sa astepte terminarea > > executiei tuturor threadurilor? > Da, exact asta scrie și în enunț[1] că trebuie să facă funcția so_end(). > Alta solutie nu gasesc si apparent doar mie mi se intampla > > acest lucru, desi ar trebui sa se intample tuturor. > 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. > Acel thread creat in script nu asteapta > > deloc terminarea executiei in totalitate a programului si sunt nedumerit > de ce se comporta > > in acest fel checkerul….. > 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. [1] https://ocw.cs.pub.ro/courses/so/teme/tema-4#detalii_implementare_instructiuni [2] https://ocw.cs.pub.ro/courses/so/cursuri/curs-08 Numai bine, Răzvan
_______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii