<div dir="auto"><div>Looks like significant misunderstandings here.</div><div dir="auto"><br></div><div dir="auto">1. Vezi 3; ID-ul este dintr-un vector de cozi I/O.</div><div dir="auto">2. Fiecare thread este ori running, ori ready (în coadă), ori blocked (într-o coadă I/O). Fiecare funcție manipulează în general propriul thread, cu excepția lui fork (care crează un thread nou) și signal (care scoate alte threaduri dintr-o coadă de I/O și le pune în ready, în coada de priorități)</div><div dir="auto">3. <span style="font-family:sans-serif">Primul parametru e dimensiunea unei cuante de timp iar al doilea este nr de cozi I/O. Numărul de thread-uri nu este limitat.</span></div><div dir="auto"><font face="sans-serif">4. Funcția dată lui fork va apela ea so_exec, sau so_fork, sau so_wait, sau so_signal. Nu le apelezi tu. Te folosești de apelurile ăstea ca oportunitate pt a face schedulingul.</font></div><div dir="auto"><font face="sans-serif">5. Funcția apelează so_exec; deci ai posibilitatea în acest moment.</font></div><div dir="auto"><font face="sans-serif"><br></font></div><div dir="auto"><font face="sans-serif">P.S: cuanta de timp este de fapt nr de apeluri fork/exec/signal maxim permis până când forțezi o anume preempție.</font></div><div dir="auto"><font face="sans-serif"><br></font></div><div dir="auto"><font face="sans-serif">P.P.S: Va trebui tu să ai grijă intern ca numai un thread să se poată rula la un moment dat.<br></font><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Thu, May 2, 2019, 7:38 PM Tuculina Gabriel 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">Buna ziua,<br>
<br>
Am si eu o serie de nelamuriri legate de functiile pe care trebuie sa le implementam:<br>
<br>
1. Wait si Signal primesc amandoua cate un parametru IO. Acel eveniment ar trebui sa fie un id ce trebuie comparat cu id-ul threadurilor din lista de prioritati?<br>
<br>
2. Cand se va scoate un element din lista de prioritati? Cand starea lui ajunge in Terminated?<br>
<br>
3. Ce se intampla daca se incearca crearea mai multor procese decat a fost initial setat in init? Se ignora?<br>
<br>
4. Din cate inteleg, se va executa functia pasata la fork, iar apoi threadurile ar trebui sa intre in starea Terminated. Cum ar trebui sa fie folosit so_exec? Care mai este rolul lui daca "work is done" si nu mai pot face nimic in privinta asta?<br>
<br>
5. Cum ar trebui sa decrementam time_quantum-ul daca nu avem control asupra executiei work-ului?<br>
<br>
<br>
<br>
Multumesc anticipat!<br>
<br>
Gabriel<br>
_______________________________________________<br>
<a href="http://ocw.cs.pub.ro/courses/so/info/lista-discutii" rel="noreferrer noreferrer" target="_blank">http://ocw.cs.pub.ro/courses/so/info/lista-discutii</a></blockquote></div></div></div>