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

Raspunde prin e-mail lui