[so2] [SO2] [Tema 3] Nelamurire teste

Stefan Ciotec stefan.ciotec at gmail.com
Sun Apr 19 15:32:22 EEST 2015


În data de 19 aprilie 2015, 00:18, Razvan Deaconescu via so2
<so2 at cursuri.cs.pub.ro> a scris:
> Stefan Ciotec <stefan.ciotec at gmail.com> writes:
>> În data de 18 aprilie 2015, 23:44, Razvan Deaconescu via so2 <so2 at cursuri.cs.pub.ro> a scris:
>>> Stefan Ciotec via so2 <so2 at cursuri.cs.pub.ro> writes:
>>>> Salut,
>>>>
>>>> Imi pica toate testele de read corrected si imi trec toate de recover,
>>>> pentru ambele discuri.
>>>> Din ce am inteles, testele fac urmatoarele (in cazul prezentat de mine
>>>> testele corepunzatoare primului disc):
>>>> 1. read corrected
>>>> - se scriu date corupte pe primul disc si date corecte pe al doilea
>>>> - se citesc date de pe logical disc si se citesc date de pe discul 2
>>>> si se compara
>>>>
>>>> 2. recover
>>>> - scrie date corupte pe primul disc si date corecte pe al doilea
>>>> - se citesc date de pe logical disc si se citesc date de pe discul 1
>>>> si se compara
>>>>
>>>> Cum este posbil sa imi pice testele de read corrected si sa imi treaca
>>>> cele de recover, avand in vedere ca la testele de recover ceea ce se
>>>> citeste de pe discul 1 sunt corectate cu cele de pe discul 2?
>>>> Daca datele de pe discul 2 nu ar fi corecte, atunci nici testul de
>>>> recover nu ar fi trebuit sa treaca, avand in vedere ca ceea ce este pe
>>>> primul disc este copiat de pe al doilea, pentru ca primul disc era
>>>> corupt initial.
>>>
>>> Hai să simplificăm. Dacă lași în array-ul test_array doar două elemente,
>>> pentru testele corrupt_read_correct_one_sector_disk1 și
>>> recover_one_sector_disk1, atunci primul pică și al doilea trece?
>>
>> Da
>
> O să răspund mâine, că acum e cam târziu. La vârstea mea, creierul nu
> mai funcționează cum trebuie după ora 22:30.
>
> Răzvan
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so2/resurse/lista-discutii

Salut,

Am rezolvat.
La operatia de read faceam bio_clone la bio-ul original, submiteam
bio-ul clonat pentru primul disc, faceam din nou bio_clone la bio-ul
original si submiteam pentru al doilea disc. Problema e ca bio_clone
nu aloca pagini fizice noi, ci mapazeaza vectorul bi_io_vec peste
aceleasi pagini fizice ca in bio-ul original, astfel incat paginile
din cele doua bio-uri clonate reprezentau de fapt aceeasi zona fizica,
iar in urma operatiei de read de pe al doilea disc imi erau
suprascrise datele din primul bio clonat.
Ca sa rezolv, nu am mai folosit bio_clone, ci am alocat pagini fizice
pentru fiecare bio.

Stefan


More information about the so2 mailing list