[so] clarificari mmap

Cosmin Arad so@atlantis.cs.pub.ro
Tue, 16 Dec 2003 19:22:14 -0800 (PST)


--- Cosmin Arad <cosminarad@yahoo.com> wrote:
> Daca o gaseste, face translatarea
> dar daca nu genereaza o exceptie (page fault) care
> este tratata de sistemul de operare
> prin intermediul unui page fault handler. Procesorul
> genereaza un page fault in 
> mai multe situatii, nu doar aceasta, insa in acest
> caz
> handlerul se va ocupa de
> gasirea paginii respective in tabela de pagini,
> verificarea protectiei, si daca totul
> e ok, "introducerea" ei in TLB.

Dupa tratarea exceptiei, deci dupa rularea page fault
handler-ului, executia se reia cu instructiunea care a
generat exceptia, pentru ca acum pagina ceruta este in
TLB si totul continua la fel ca si cum nimic nu s-ar
fi intamplat. Ar fi fost absurd sa se reia executia cu
urmatoarea instructiune pentru ca s-ar fi pierdut
efectul instructiunii care a generat faultul.

Asa se explica si faptul ca daca executam o
instructiune faulty si tratam semnalul SIGSEGV fara sa
modificam bitii de protectie ai paginii, semnalul
venea la nesfarsit. Venea pentru ca instructiunea
faulty se executa din nou, exceptia aparea iar, page
fault handlerul se executa din nou si trimitea SIGSEGV
procesului. Dupa executia page fault handlerului
instructiunea faulty era executata din nou si asa mai
departe.

Din nou Sarbatori fericite!
Cosmin

__________________________________
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard
http://antispam.yahoo.com/whatsnewfree