[so] [Tema3][Linux] Test - test_clean_page_is_not_swapped_out

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Sat Apr 23 12:24:37 EEST 2011


On 04/23/2011 11:49 AM, Alexandra Sava wrote:
> Salut!
> 
> Nu imi dau seama cum ar trebui sa se comporte in urmatoarea situatie
> (aparuta in testul indicat la Subject):
>       * pagina X este in RAM, nu este marcata dirty si a mai fost pusa pe swap
>       * RAM-ul are dimensiunea de o pagina
>       * pagina Y este in SWAP si este accesata (se produce astfel un
> pagefault)  si ar trebui adusa in RAM
> 
> Din comentariile testului nu imi este tocmai clar cum ar trebui sa procedez:
>     * `/*  fault second page (read_only) -- first page should not go
> to swap*/` (=> frist page e in RAM si nu se muta in SWAP)

Da. Este în RAM, dar nu se _copiază_ în swap. Nu are flag-ul dirty activ
deci _nu este nevoie_ să se copieze. Ceea ce se găsește în swap este
identic cu ceea ce ce găsește în RAM și nu este nevoie să se copieze. Am
adăugat o clarificare în enunț[1] (bullet-ul aferent flag-ului "dirty").

În urma page-fault-ului rezultă o operație swap in (se copiază pagina
doi din swap în RAM) fără a rezulta o operație swap out efectivă (nu se
copiază pagina unu din RAM în swap) datorită absenței flag-ului dirty.

>    *  `/*  fault first page (read_only) -- second page should not go
> to swap*/` => second page e in RAM. Cum a ajuns acolo daca first page
> era in RAM si nu ar fi trebuit sa ajunga in SWAP?

Vezi mai sus.

Răzvan

[1] http://elf.cs.pub.ro/so/wiki/teme/tema-3#enunt


More information about the so mailing list