[so] [Tema 4] Nelamuriri functii

Tuculina Gabriel gtuculina at yahoo.com
Thu May 2 20:02:44 EEST 2019


 Multumesc frumos, asta explica multe!
De ce ar trebui sa avem un vector de cozi de prioritati? Dupa ce criteriu stabilim pe ce coada de prioritati se duce un thread?
    On Thursday, May 2, 2019, 7:46:26 PM GMT+3, Paul Olaru <olarupaulstelian97 at gmail.com> wrote:  
 
 Looks like significant misunderstandings here.
1. Vezi 3; ID-ul este dintr-un vector de cozi I/O.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)3. 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.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.5. Funcția apelează so_exec; deci ai posibilitatea în acest moment.
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.
P.P.S: Va trebui tu să ai grijă intern ca numai un thread să se poată rula la un moment dat.

On Thu, May 2, 2019, 7:38 PM Tuculina Gabriel via so <so at cursuri.cs.pub.ro> wrote:

Buna ziua,

Am si eu o serie de nelamuriri legate de functiile pe care trebuie sa le implementam:

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?

2. Cand se va scoate un element din lista de prioritati? Cand starea lui ajunge in Terminated?

3. Ce se intampla daca se incearca crearea mai multor procese decat a fost initial setat in init? Se ignora?

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?

5. Cum ar trebui sa decrementam time_quantum-ul daca nu avem control asupra executiei work-ului?



Multumesc anticipat!

Gabriel
_______________________________________________
http://ocw.cs.pub.ro/courses/so/info/lista-discutii
  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20190502/55552955/attachment-0001.html>


More information about the so mailing list