[SO][TEMA 2]
Stefan Dumitrescu
dumitrescu.stefan at gmail.com
Fri Nov 10 13:55:23 EET 2006
Am si eu o intrebare:
Memoria partajata o pot folosi doar pentru printarea arborelui in
formatul dat? Adica serverul sa tina mine doar pentru el arborele, iar
in memoria partajata sa verse un string (rezultatul comenzii p) cand
clientul ii cere comanda de printare, apoi clientul va accesa acea
memorie si va varsa direct output-ul dat de server pe ecran( cu
semafoarele de rigoare ) .
Cu alte cuvinte, este necesara alocarea arborelui in acea memorie, sau e
suficient sa demonstram ca memoria partajata functioneaza intre procese?
Stefan
Alex Badea wrote:
> Catalin Iacob wrote:
> ...
>
>> Structura de arbore binar se tine in memoria partajata, deci impresia
>> mea e ca nu putem aloca nodurile cu malloc sau new (fiindca nu controlam
>> unde se aloca efectiv). E corect?
>>
>
> True.
>
>
>> In cazul in care ce am zis mai sus e corect, eu vad cam 2 variante:
>>
> ...
>
> Eu am implementat varianta cu array liniar, de unde a rezultat si
> complexitatea temei -- partea de IPC era foarte simpla :)
>
> Problema principala care apare cand folosesti pointeri nu e modul de
> alocare a memoriei (varianta simpla, poti sa folosesti succesiv cate un
> bloc din zona de memorie partajata; eventual le refolosesti daca devin
> "free", eventual nu), ci faptul ca zona de memorie poate fi mapata la
> adrese diferite in procese diferite, si deci pointerii vor fi invalizi.
>
> E adevarat ca poti sa rogi kernelul sa-ti mapeze memoria la o adresa
> fixa (parametrul shmaddr de la shmat(2) in Linux, probabil ceva similar
> in geam), insa mie personal mi se pare fragil :)
>
> Cheers.
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
>
More information about the so
mailing list