Salut!

Nu am înțeles ciclul de viață al unui thread. Am următoarele nelămuriri:

1. Conform modelului de implementare, creez thread-ul, aștept să fie planificat 
(să intre în starea READY/RUN), îl planific în start_thread(), îî apelez 
handler-ul, anunț că a fost planificat și îi întorc id-ul?

2. La pasul 3 din modelul de implementare, funcția so_fork(), "să intre în 
starea READY/RUN”, o să poată intra în RUNNING vreodată, din moment ce va 
trebui să treacă întotdeauna prin READY și va trebui să declanșăm incheierea 
funcției sau va trebui ca atunci când planific un thread ar trebui să îl trec 
direct în RUNNING dacă are prioritate, sărind peste READY ca să nu se întâmple 
această problemă?

3. În start_thread(), “așteaptă să fie planificat” înseamnă “planifică-l” sau 
trebuie să aștept după o condiție?

4. Pasul din start_thread(), “încheiere thread” se referă la sițuatia când 
thread-ul a ajuns să nu mai aibă instrucțiuni de executat?

5. Contorizând în fiecare funcție timpul virtual consumat de thread pe 
procesor, trebuie să verific în fiecare dintre acestea dacă i-a expirat cuanta 
sau pot creea cumva un mecanism de tip “trigger” când a depășit timpul maxim 
alocat?

Mulțumesc!

Teodor Ciuraru








_______________________________________________
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Raspunde prin e-mail lui