[so] [Tema 3] Pagini curate evacuate

Adrian Stanciu adrian.stanciu.pub at gmail.com
Sat Apr 29 08:00:35 EEST 2017


2017-04-28 10:59 GMT+03:00 Adrian Panaite via so <so at cursuri.cs.pub.ro>:
> Salut,

Salut,

> 1. Daca o pagina dirty ajunge in swap, atunci ea mai este dirty?

Flag-ul dirty indică dacă o pagină a fost modificată în timp ce se
afla în RAM. Este util pentru a ști dacă la swap out se va face o
copiere a paginii din RAM în swap sau nu. Pentru o pagină aflată în
swap flag-ul dirty nu este relevant.

>
> 2. O pagina dirty, care a fost evacuata, este adusa in ram read-only. Daca
> vreau sa evacuez acesta pagina, trebuie sa copiez continutul in swap?

Nu, pentru că atunci când este mapată read-only în RAM flag-ul dirty
nu este setat. Flag-ul dirty este setat la un acces de scriere.

>
> PS: Am obesrvat ca la tetul "30)Test clean page is not swapped out" se
> asteapta ca o pagina dirty sa fie evacuata in swap, adusa in ram read-only
> si apoi sa nu mai fie evacuata in swap, ci doar inlocuita. La testul "32)
> Test page content is not accessed from swap" se asteapta ca o pagina dirty
> sa fie evacuata in swap, adusa in ram read -only si apoi sa fie evacuata in
> swap.
>

Testul 30 verifică ca o pagină curată să nu fie copiată în swap căci
conținutul ei este deja în swap, dar pagina este evacută din RAM.
Testul 32 verifică ca o pagină să nu fie accesată direct din swap ci
mapată în RAM atunci când este nevoie de ea.

În concluzie, la swap out se face copiere din RAM în swap dacă:
* pagina nu a fost niciodată evacuată pe swap (altfel spus, se află la
primul swap out)
* pagina este dirty


Adrian


More information about the so mailing list