[so] [tema3] Problema checker

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Mon Apr 11 08:29:48 EEST 2011


On 04/11/2011 12:49 AM, Grigore Silviu Cătălin wrote:
> Salut,
> 
>      Am intalnit o problema la checker la testele
> test_mapping_multiple_writes_fill_ram si
> test_mapping_multiple_writes_do_not_overwrite_ram. Am observat ca checker-ul
> scrie MAGIC in fiecare
> pagina la un offset random si la final numara pentru paginile din RAM
> aparitiile MAGIC pentru toate offset-urile la care s-a scris. In cazul in
> care in doua pagini se scrie la acelasi offset (offset-ul
> fiind random), se vor numara mai multe aparitii si numarul va diferi de
> numarul de pagini fizice.

Nu mă prind. Poți detalia, te rog?

Dacă în două pagini se scrie la același offset sau la offset-uri
diferite se vor număra două apariții, ceea ce este corect (au fost două
locuri în care s-a scris). Dacă aveam offset-ul 0 pentru toate
așteptarea era ca paginile fizice să aibă acolo MAGIC; adică să fie un
număr de offseturi scrise egal cu numărul de pagini.

Ar trebui să existe în RAM fix num_frames octeți marcați cu MAGIC.
Testul verifică asta parcurgând paginile pe offset-urile din offset
array. Paginile din RAM sunt zeroed înainte. Dacă testul găsește mai
mult de num_frames octeți marcați cu MAGIC (sau mai puțin), atunci pică,
ceea ce este corect.

>      De asemenea, consider ca ar fi util ca toate testele sa apeleze la
> sfarsit vmsim_cleanup pentru a putea elibera structurile in care au fost
> retinute informatiile despre zonele alocate, mai ales
> in cazul zonelor pentru care nu s-a apelat vm_free.

Fiecare teste este apelat o dată și procesul este terminat; se creează
un proces pentru fiecare test. Nu este nevoie să se apeleze
vmsim_cleanup pentru "curățare", decât pentru a șterge fișierele.

Din păcate, testele de început nu testează vmsim_cleanup până când nu
verifică funcțiile anterioare (vmsim_init, vmsim_alloc, vmsim_free),
astfel că unele fișiere oricum vor rămâne acolo. Decizia a fost să nu se
apeleze vmsim_cleanup întrucât nu are rol în verificare și pentru că
absența lui nu încurcă (fișiere RAM și swap oricum vor exista de la
primele teste).

Răzvan


More information about the so mailing list