[so] Tema 3 - de inceput

Lucian Adrian Grijincu lucian.grijincu at gmail.com
Sun May 4 23:25:35 EEST 2008


2008/5/4 George Dita <george.dita at gmail.com>:
> Am o problema cu "startul" de la tema 3. Nu imi dau seama cum pot sa simulez
> memoria ram si memoria swap prin 2 fisiere. Cum pot face corespondenta intre
> pagini din memoria virtuala in swap; Eu voi avea un singur fisier de
> swap/ram. Inteleg ca mapez fisierul in memorie si lucrez direct cu adrese
> dar pot sa imi creez un header in fisier? Care sa retina maparile/alocarile?

Mapările și toate meta-informațiile le ții într-un buffer separat de
partea pe care o simulează tema.
Sistemele de operare țin datele astea în RAM și le accesează prin
mecanisme speciale implementate hardware în MMU. În cadrul temei poți
considera că ai un procesor special care are o unitate de memorie
dedicată pentru mapările astea (în realitate există cache-uri care țin
mapări de acest tip - TLB, dar acestea mențin doar o parte a
mapărilor).

O implementare validă ar rezerva (mmap) o zonă din spațiul de adrese
al procesului curent pentru a reprezenta "memoria virtuală simulată".
Pentru fiecare pagină din memoria ar ține în memoria specială drepturi
de acces, page-dirtyness, etc.



-- 
Lucian


More information about the so mailing list