[so] [SO] Intrebare examen
Razvan Deaconescu
razvan.deaconescu at cs.pub.ro
Fri May 25 08:50:11 EEST 2012
Alexandru Dinca <alexandru.dinca at cti.pub.ro> writes:
> Salut,
>
> Ne-a explicat Răzvan mai demult la curs ca *a=5; poate produce TLB flush.
> Poate sa explice cineva din nou de ce se poate intampla acest lucru?
Accesul la adresa indicată de a (a este un pointer) poate produce page
fault. Un page fault se poate întâmpla din cauza prezenței paginii în
cauză în swap. În acel moment pagina trebuie adusă din swap (swap in),
operație de durată care operează cu discul și care blochează procesul
curent.
Blocarea procesului curent înseamnă trecerea sa în starea/coada WAITING
până când este adusă pagina de pe disc. Trecerea procesului în
starea/coada WAITING înseamnă schimbare de context: înlocuirea
procesului curent cu alt proces.
Înlocuirea unui proces cu un alt proces înseamnă înlocuirea spațiului de
adresă al procesului, adică al tabelei de pagini. Schimbarea tabelei de
pagini înseamnă TLB flush – intrările în TLB sunt invalidate (erau
valabile doar în fostul spațiul de adresă, pentru fosta tabelă de pagini).
Răzvan
More information about the so
mailing list