Razvan Crainea <razvan.crainea@...> writes: > > > Salut, Radu! > 1. Într-adevăr, după fiecare operație ar trebui apelat scheduler-ul. Dacă acesta determină că trebuie preemptat, ar trebui să renunțe la procesor și să treacă în coada READY. > > 2. Da, ideea ta este bună. so_fork ar trebui să fie un fel de wrapper peste pthread_create, unde poți stoca ce variabile vrei. so_fork este considerată și ea o instrucțiune, deci poate fi preemptată. Totuși regulile planificatorului trebuie să fie repectate. > > 3. Ești pe drumul cel bun :). > 4. Da. > > Spor! > > > 2013/5/4 Radu Stancu <stancumradu <at> gmail.com>Salut, > Am si eu mai multe nelamuriri la tema 4. > 1. Din cate observ, trebuie sa facem re-schedule la fiecare final de > functie, just in case se termina cuanta de timp.Este corect asa? > 2. Cum fac un thread abia creat sa astepte randul sau? Ma gandeam sa fac > similar cu wait, sa am o variabila de conditie care sa blocheze threadul, > dar ideea e unde o pun? Fac o functie separata care sa fie apelata de > pthread_create si in ea pun variabila? Daca fac asa, se blocheaza so_fork si > voi avea probleme la testare, de exemplu de la testul 4 in sus. Cel putin > asa banuiesc ca se intampla. > 3. Dupa trezirea din wait, daca threadul trebuie sa mai astepte sa ii vina > randul, unde fac asta? Pun in wait sa astepte iar dupa o variabila de > conditie globala si ramane blocat in wait? (practic cand este planificat, > iese din wait si executa in continuare) > 4.Pot face broadcast in signal si sa blochez threadurile ca in punctul 3? > Momentan doar atat. Daca cineva are idei sau intrebari, feel free to contribute > ___ Salut, Revin cu 2 intrebari: 1. Daca am un vector de variabile de conditie, dupa ce le initializez cu pthread_cond_init(&v[i], NULL), v[i] va fi diferita de v[j]? Adica daca dau signal(&v[i]), se trezeste doar v[i] sau ambele? 2. Ai vreo referinta pentru a rezolva bucata aceasta din exemplu? start_thread(params) -> asteaptă să fie planificat -> call handler(prio) -> iesire thread Planificarea si iesirea stiu s-o fac, dar nu prea gasesc partea cu call handler.
Multumesc. _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
