> hai sa-ti zic o kestie ..

:)

> linuxul la un malloc mare (sa zicem cat ram ai tu) .. o sa ti-l aloce
> (daca are loc) in swap .. pentru ca decat acolo va gasi o zona
> continua ..

Nu trebuie sa fie continua, si (in functie de kernel) o sa-ti aloce
chiar mai mult decat RAM + swap. Ideea cu acel for, e sa scrii in
fiecare din paginile de memorie alocate. Asta va produce un page-fault
si il va pune pe kernel sa-mi dea o pagina de memorie (fizica) in care
sa scriu, pe care o va mapa in spatiul procesului meu. Evident,
aceeasi pagina nu poate fi alocata de mai multe ori. La un moment dat,
cand nu mai sunt pagini libere in memorie, kernel-ul va swap-a pagini
mai vechi si mi le va da mie... inclusiv pe alea din buffer-cache (sau
marea lor majoritate).

> mai mult dupa for-ul ala .. programul iese .. insa din swap .. habar n-am
> cand iti va dezalloca kernelul .. ce e pe acolo :)))

Ma rog, programul meu nu e corect, ai dreptate, trebuia sa o si
eliberez. Mi-o dezaloca kernel-ul oricum cand ies :-)

> despre ce buffere e vorba ?

buffer-cache. Bufferele pentru blocuri (disk i/o).

> > int
> > main()
> > {
> >     char *p = (char *) malloc(MEMSIZE);
> >     int i;
> >
> >     for (i = 0; i < MEMSIZE; i += 4096) {
> >         p[i] = 'A';
> >     }
> > }


Matei
---
Pentru dezabonare, trimiteti mail la 
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/


Raspunde prin e-mail lui