[so2] [Tema 3] Probleme de sincronizare
Razvan Deaconescu
razvan.deaconescu at cs.pub.ro
Mon Apr 13 11:34:51 EEST 2015
Valentina-Camelia BOJAN via so2 <so2 at cursuri.cs.pub.ro> writes:
> Buna!
>
> Am o intrebare legata de o precizare din tema 3: "Exista riscul
> unor conditii de cursa in cazul bio-urile submise noi. Pentru a
> evita acest lucru lucrati cu un bio secvential (creare, populare,
> transmitere, asteptare) inainte de a lucra cu alt bio."
>
> Acest lucru presupune folosirea unui mecanism de sincronizare?
> Intreb acest lucru pentru ca am incercat fara un astfel de
> mecanism, insa desi in handlerul inregistrat cu
> blk_queue_make_request() primesc numarul corect de bio-uri, dupa
> ce planific sarcina, in handlerul asociat workqueue-ului ajunge un
> numar mai mic de bio-uri. Acest lucru ma duce cu gandul ca apare o
> problema de sincronizare atunci atunci cand am secventa de
> operatii:
>
> dev.bio = bio;
> schedule_work(&dev.bio_work);
> flush_scheduled_work();
>
> Aceasta situatie apare la testul 41 din suita de _test-ng, test in
> care incearca sa se scrie 1MB de date; in testele normale nu apar
> probleme de acest gen.
Suita test-ng va fi, de fapt, suita de test folosită pentru evaluarea
temei. O să facem actualizare și în vmchecker și în enunț.
> Am rezolvat problema folosind un mutex pentru operatiile de mai
> sus, insa nu imi este clar daca este corect, intrucat am tot citit
> pe lista de discutii intrebarile din anii trecuti legate de tema 3
> si in cateva raspunsuri s-a mentionat ca nu ar exista probleme de
> sincronizare in tema.
E OK așa. Am mai clarificat și pe wiki, în enunț[1].
[1] http://ocw.cs.pub.ro/courses/so2/teme/tema3#precizari_linux
Răzvan
More information about the so2
mailing list