[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS] Question système



Dans sa prose du dimanche 12 décembre de l'an de grâce 2004 à 22h54, Baptiste Mathus s'exprimait ainsi:
> 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...

Je confirme (plus ou moins)
 - sous Linux:
$ ./segfault
segfault attrapée : j = 135160

 - sous OpenBSD;
$ ./segfault
segfault attrapée : j = 4048

Donc linux a alloué 33 pages (avec un entête de 8 octets)
OpenBSD a alloué 1 page (avec entête de 48 octets)

Je suppose que Linux "optimise" les requêtes en fonction de la mémoire
disponible et de la gourmandise de l'application (reste à vérifier)
Celà se passe ou au niveau du noyau, ou au niveau de la libc.

JC

Attachment: signature.asc
Description: Digital signature


Reply to: