[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