Francois Cerbelle a �crit :
Le Sun, Dec 12, 2004 at 10:54:57PM +0100, Baptiste Mathus ecrit :

Salut � tous,
Je fais un petit programme cens� tester un point pr�cis de la
gestion de la m�moire sous Linux. J'essaie de d�clencher des
segfault en �crivant ds la m�moire octet par octet � partir d'un
endroit que j'ai allou�.
Comme il me semble qu'une page fait g�n�ralement 4ko sous mon os
pr�f�r�.  Le nombre d'octets au bout duquel j'obtiens une segfault
ne devrait jamais d�passer 4096, non ? (voire 8192 avec des pages de
8ko).
Or le nombre est bcp plus gd que �a : 137400. Soit j'ai fait une
connerie ds les 15 lignes que j'ai �crites (honte sur moi) soit je
comprends plus...

[...]

Y a-t-il un moyen de connaitre la taille des pages que le noyau en
cours d'utilisation va utiliser ? (quelque part dans /proc
j'imagine).

---end quoted text / fin de citation---

Salut,
Je n'ai pas de r�ponse � ta question, juste le r�sultat de ton
programme sur mon systeme :
[EMAIL PROTECTED]:~$ ./test segfault attrap�e : j = 135160

Ce qui confirme tes r�sultats sur un noyau
Linux oceane 2.6.8-1-k7 #1 Thu Oct 7 02:47:47 EDT 2004 i686 GNU/Linux
dans une installation Debian. Je n'ai pas le courage de red�marrer sur
mon LFS en 2.6.8 aussi, mais je suppose que, m�me avec un noyau pur,
le r�sultat sera le m�me.
Merci.
Bon, alors j'ai vraiment pas compris la gestion de la m�moire alors...
Par contre, je me suis pas tromp� :

#include <stdio.h>
#include <unistd.h>
int main(void)
{
        int page_size = getpagesize();
        printf("Taille d'une page du syst�me = %d\n", page_size);
        return 0;
}

�a affiche bien 4096... Alors franchement, les quelques 135000 octets avant d'avoir une erreur me laissent perplexe :/

@++

--
Baptiste <Batmat> Mathus
Baptiste at Mathus point org
http://www.batmat.net
OpenPGP : 0xE8EC628F
---------
Si chacun de nous a une id�e et que nous les partageons, nous repartirons
tous les deux avec deux id�es... C'est �a le Libre.

Attachment: signature.asc
Description: OpenPGP digital signature

Répondre à