[so] malloc examen
Codrin Alexandru Grajdeanu
grcodal at gmail.com
Sat Feb 17 02:57:30 EET 2007
Super ciudat :)
Am descoperit si eu in seara asta ca mallocul ala n-are nici un sens
pe linux :). Pai daca eu aloc vreun 1G de mem si cand accesez si eu
cateva adrese din spatiul asta imi face segmentation fault pe la 300 M
:( wtf?
si se scadea 0.1 pc ca nu verifcam ca malloc intoarce null pe linux.
inca o chestie, daca am proc pe 64 de biti e posibil sa aloc cam vreo
4 tera de mem cu malloc si sa nu-mi returneze null? se pare ca da :)
(TODO) oare mai are sens sa mai pierd instructiuni verificand fiecare
malloc?
pe windows nu prea mai e asa, acolo sta sa-mi aloce si in swap daca
vrea, daca n-are swap sare cu null la malloc.
in concluzie:
bill gates rulz! :D
ps. or sucks, sa stai nush cate minute (am apasat restart ca imi
pierdusem rabdarea) sa-ti scrie in swap vreun 1G e nasol
Oricum sub ala de exam era ciudat
pe linux scoate 0 0 0
pe win scoate 0 0 1 sau cum vrea el in func de ce mem si swap are disponibil
On 2/17/07, Gringo Croco <gringocroco at gmail.com> wrote:
> discalimer: spun urmatoarele doar din principiu, daca primesc sau nu
> punctaj la problema asta nota nu mi se schimba.
>
> that being said, din textul problemei 6 de la examen:
>
> fie un sistem pe 32 biti cu 1GB de RAM si urm. secv de cod:
> printf("eroare: %d\n", malloc(512*1024*1024)==NULL?1:0);
> printf("eroare: %d\n", malloc(512*1024*1024)==NULL?1:0);
> printf("eroare: %d\n", malloc(512*1024*1024)==NULL?1:0);
> ce se afiseaza?
>
>
> din man malloc(3) (pe ubuntu 6.6) sectiunea BUGS:
> By default, Linux follows an optimistic memory allocation strategy.
> This means that when malloc() returns non-NULL there is no guarantee
> that the memory really is available. This is a really bad bug. In case
> it turns out that the system is out of memory, one or more processes
> will be killed by the infamous OOM killer.
>
> acum, ce contest eu este faptul ca problema nu specifica nicaieri ca e
> vorba de un linux care are bugul asta.
>
> sincer pana in seara asta nu stiam ca referentiind un pointer aflat in
> rangeul alocat de malloc(3) pot avea un segmentation fault.
>
>
> acum ce zic eu ca ar fi corect:
> a) sa se anuleze penalizarea pentru subiectul in cazul celor care au
> mentionat diferente de output in cazul in care exista swap sau nu si
> au zis ca e posibil sa se aloce cei 1.5GiB RAM
> b) sa nu se scada nicaieri in teme daca nu se verifica daca malloc(3)
> intoarece sau nu NULL (desigur doar pe linux) intrucat mallocul de pe
> linucsi returneaza NULL doar cand primeste un parametru mai mare sau
> egal cu 4GiB sau 0.
>
>
>
> --
> Lucian Adrian Grijincu, 346CA
> _______________________________________________
> 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