Daca sysconf(_SC_PAGESIZE) intoarce dimensiunea paginii de memorie fizica
iar sysconf(_SC_AVPHYS_PAGES) numarul de pagini de memorie fizica disponibila
sysconf(_SC_AVPHYS_PAGES)*sysconf(_SC_PAGESIZE) ar trebui sa dea memoria fizica
disponibila
la un moment dat?
$cat mem.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
/* Urmatorul program ar trebui sa afiseze memoria totala disponibila ?*/
void *t[1024];
int
main(int argc, char **argv)
{
int i;
printf("Dimensiune pagina fizica %ld\n",sysconf(_SC_PAGESIZE));
printf("Numarul de pagini de memorie fizica %ld\n",sysconf(_SC_PHYS_PAGES));
printf("Memorie diponibila %ld\n",sysconf(_SC_AVPHYS_PAGES)*sysconf(_SC_PAGESIZE));
for(i=0;i<10;i++){
t[i]=malloc(1024*1024);
printf("Numarul de pagini de memorie fizica disponibila
%ld\n",sysconf(_SC_AVPHYS_PAGES));
printf("Memorie diponibila %ld \n",sysconf(_SC_AVPHYS_PAGES)*sysconf(_SC_PAGESIZE));
}
for(i=0;i<10;i++)free(t[i]);
return 0;
}
$ gcc -Wall -g3 mem.c -o mem
$ ./mem
Dimensiune pagina fizica 4096
Numarul de pagini de memorie fizica 63882
Memorie diponibila 14192640
Numarul de pagini de memorie fizica disponibila 3464
Memorie diponibila 14188544
Numarul de pagini de memorie fizica disponibila 3463
Memorie diponibila 14184448
Numarul de pagini de memorie fizica disponibila 3462
Memorie diponibila 14180352
Numarul de pagini de memorie fizica disponibila 3461
Memorie diponibila 14176256
Numarul de pagini de memorie fizica disponibila 3460
Memorie diponibila 14172160
Numarul de pagini de memorie fizica disponibila 3459
Memorie diponibila 14168064
Numarul de pagini de memorie fizica disponibila 3458
Memorie diponibila 14163968
Numarul de pagini de memorie fizica disponibila 3457
Memorie diponibila 14159872
Numarul de pagini de memorie fizica disponibila 3456
Memorie diponibila 14155776
Numarul de pagini de memorie fizica disponibila 3455
Memorie diponibila 14151680
$
*Prin ce alte metode ,un progam , mai poate afla cata
memorie fizica si virtuala are la dispozitie ?
*Extragand /proc/self/status ?
Exista vre-o interfata, ex API pt acces mai direct la fisierele din /proc/self/
fara sa fie nevoie de conversie din sir de caractere in intreg ?
*Alta metoda ar fi prin /dev/mem?
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
---
Detalii despre listele noastre de mail: http://www.lug.ro/