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

Re: [HS] gestion mémoire sous Linux



Bonjour,

Je me suis permis de modifier le titre... :-)

georges.mariano@inrets.fr wrote:
> C'est à partir de l'affirmation contenue dans le titre du message
> qu'une grosse discussion s'est lancée ce matin autour du café
> traditionnel...
> Evidemment, il s'agit de déterminer si "mauvaise" est le mot qui convient
> Voici le contexte :
> La personne décrète la gestion mémoire comme "mauvaise" car :
> (je simplifie...)
> a) une personne développe un logiciel de recherche opérationnelle
> manipulant
> de _très grosses_ matrices...
> b) lors de la déclaration de ces matrices (et donc de leur taille), linux
> lui
> "accorde" la mémoire (ou alors, ne vérifie pas qu'elle est/sera
> disponible...?????)
> c) ensuite, lors de l'acquisition des données, il se produit un
> "segmentation
> fault" (à cause d'une saturation mémoire ??)...
> d) développant en ADA (gnat), la personne se plaint que si un contrôle fin
> été fait lors de/juste après  la _déclaration_, une exception ADA serait
> levée, capturée et traitée
> par l'utilisateur qui pourrait donc ainsi déterminer la suite de
> l'exécution.
> Le contrôle n'étant pas fait, l'utilisateur n'a pas les moyens de
> reprendre le contrôle et boum plantage...
 
Ce que tu décris correspond à une sorte d'anticipation de l'allocation
mémoire.
Normalement, le systeme vérifie qu'elle est dispo au moment de la
requete, mais ne l'alloue pas completement pour accelerer la requete. Ce
qui fait qu'au moment de l'écriture effective, s'il n'y a plus de
mémoire... aie!
Cela part du principe que les applis font des allocs dont elles ne se
servent pas, ou pas tout de suite (Cf gcc et sa gestion mémoire), et
cela va plus vite. Bien sur cela parait étrange.
Note: Je ne sais pas si cela est implémenté dans le kernel exactement de
la sorte. En général cela est parametrable si on ne veut pas de cette
"feature".

Remarque: Dans la meme lignée, à des fin d'optimisation de la gestion
mémoire, certains systemes n'effacent pas toujours les blocs mémoire
qu'ils allouent à une appli. Ce qui fait que vous pouvez avec certains
systemes retrouver des données qui étaient sensées etre privées à un
process. Bien sur, c'est du brut.

Donc, une "bonne" runtime lib (lib systeme), ou le programmeur conscient
de la "fonctionalité", peut par exemple permettre/forcer une remise à
zero de la zone allouée dès l'allocation. Elle est ainsi "protégée".
 
> Cette vision de la gestion mémoire Linux n'est qu'une intuition de la
> chose, on n'a pas
> d'expert sur ce sujet ici... Personnellement, je trouve ça "gros".
> Est-ce un "problème" (un choix techno) de compilo, de linux, de ... ???

Je n'ai malheureusement pas de pointeurs sous la main pour donner des
références. Je pense que certains de la liste doivent avoir ça dans leur
bookmarks.

> Si quelqu'un pouvait nous en dire plus, ce serait sympa...
> En privé, si vraiment c'est trop hors-sujet.
C'est pas vraiment debian, pas completement linux, mais c'est un sujet
"d'évangélisation à linux" qui peut etre sensible lors de la pause
café...

-- 
--Laurent



Reply to: