[so] [tema3]Windows

Sebastian Gherman gherman.sebastian at gmail.com
Sat May 2 18:57:52 EEST 2009


Mircea Bardac wrote:
> Salut,
>
> Marius Viorel Grigoras wrote:
>   
>> In linux, la maparea unei pagini in Ram am folosit MAP_FIXED ca sa pun la o
>> adresa data.
>>     
>
> Nu este cea mai indicata metoda. S-ar putea ca zona pe care intentionezi
> sa o mapezi sa nu fie disponibila. Trebuie sa verifici acest lucru.
>
>   
>> Problema e ca in Windows nu am acest mecanism.
>> Pot sa aloc intermediat intr-o zona de memorie si apoi sa copiez cu memcpy
>> in zona de Ram? Dar in felul acest, nu cred ca respect conditia temei, ca
>> datele sa se afle doar in fisierul de Ram si/sau Swap.
>>     
>
> Poti sa faci o mapare de memorie virtuala de dimensiune virt_pages prin
> care sa "rezervi" spatiul respectiv (dupa cum am mentionat si intr-un
> mesaj anterior). Ulterior poti sa remapezi pagini din respectiva zona de
> memorie pentru a obtine efectul dorit.
>
>   
Nu cred ca ne-am inteles...

1 .Avand in vedere ca s-a subliniat faptul ca nu este ok sa avem
trei zone de memorie (MV, RAM, SWAP) si ca apartenenta la RAM este simulata
prin maparea unei pagini (o bucata de fisier) din fisierul RAM peste o 
pagina
(o bucata de memorie) din memoria virtuala, cum mai exact putem facem 
asta in Windows avand
in vedere ca se poate preciza explicit de la ce zona de memorie se face 
maparea (asa cum
se poate face pe Linux folosind primul parametru al functiei mmap) ?

2 .Pe de alta parte, tot intr-un thread anterior Razvan a precizat ca 
orice implementare care trece testele este ok.
Prin asta inteleg ca este valida si o implementare (precum cea expusa de 
Viorel) in care avem trei zone de
memorie si aparteneta la RAM se simuleaza prin copierea din memoria 
vituala in memoria RAM
(ceea ce ar rezolva problematica temei pe Windows).

In concluzie, care e adevarul si ce e de facut in cazul in care varianta 
1 este cea corecta?


More information about the so mailing list