[so] nelamurire tema 3

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Sun Apr 10 18:20:51 EEST 2011


On 04/10/2011 04:58 PM, Bogdan Purcareata wrote:
> Salut,
> 
> Am inteles din enunt ca in functia vm_free () trebuie sa facem urmatoarele
> lucruri :
> - sa demapam zona de memorie virtuala a procesului
> - sa inchidem fisierele deschise pentru ram si swap
> 
> Functia vm_free (w_ptr_t start) primeste ca argument un pointer la zona de
> memorie virtuala, dar nu si descriptorii celor doua fisiere.

Da, pentru că nu are nevoie de cei doi descriptori. Trebuie să rețineți
undeva intern maparea dintre adresa de start și cei doi descriptori.
Recomand o listă de structuri vm_map_t.

> E ok daca se retin acesti descriptori in niste variabile statice initalizate
> la apelul functiei vm_alloc ()

Trebuie să permiți apeluri multiple ale vm_alloc în aceeași instanță de
rulare. Dipă cum am descris mai sus, recomand să alocați o listă de
structuri vm_map_t pe care să o actualizați (add/remove) la fiecare apel
vm_alloc și vm_free.

> sau se va modifica semnatura functie vm_free
> () astfel incat sa primeasca argument o structura de tipul vm_map_t cu toate
> informatiile ?

Signatura funcției vm_free nu poate fi modificată. Este ceea ce exportă
biblioteca și ceea ce folosește o aplicație peste aceasta (de exemplu,
testul).

Răzvan


More information about the so mailing list