[so] Nelamuriri teste tema4
Alin Radulescu
radulescualin93 at gmail.com
Sun May 17 21:59:34 EEST 2015
Testul 15 are urmatorul flow:
Create thread initial ( 0 ): cuanta 1
so_end()
In paralel cu so_end (care ramane blocat pana cand termina toate
threadurile):
Threadul 0 este creat. (cuanta 1)
Threadul 0 creaza threadul 1 cu prioritate 4, care il preempteaza pe t0.
Threadul 1 creaza threadul 2 (cu prioritate 3, este plasat in 'ready')
Threadul 1 observa ca i-a ajuns la cuanta 0 si cedeaza CPU threadului
2.
Threadul 2 verifica ca inaintea sa a fost threadul 1, si
noteaza faptul ca si el a prins timp pe procesor (folosind define-ul
SO_FAIL_IF_NOT_PRIO). Aceasta actiune nu consuma cuanta, asa ca merge mai
departe. (cuanta = 1)
Threadul 2 creaza threadul 3 (cu prioritate 1, este plasat in
'ready')
Threadul 2 observa ca i-a ajuns cuanta la 0 si cedeaza CPU
threadului 1
Threadul 1 acum verifica ca ultima prioritate setata a fost 4, dar
threadul 2 a prins timp pe procesor si astfel a setat prioritatea '3'.
Acest comportament nu s-ar fi reprodus daca threadurile ar fi avut cuanta
cel putin 2, sau daca un thread ar continua sa incerce sa execute sarcini
care nu consuma cuanta atunci cand are cuanta 0.
Aici este de vina checkerul, sau trebuie sa modific programul atfel:
- un thread sa execute sarcini in continu, inclusiv cand are cuanta 0
- daca o sarcina de executat este consumatoare de cuanta, iar threadul are
0, atunci cedeaza CPU
Testul 17:
Se face fork primului thread
Handler: asteapta dupa evenimentul X, signal evenimentul X
(cum va reusi sa dea el signal cand defapt asteapta evenimentul, si astfel
nu mai prinde timp pe procesor)
Testul 19:
Se face fork primului thread,
Handler: asteapta evenimentul SO_DEV3, dupa care face fork unor threaduri
care se presupune ca eventual ii vor da signal pe acest eveniment. Threadul
sta blocat in wait.
Alin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20150517/b8128269/attachment.html>
More information about the so
mailing list