On 25 Jan 2003 03:01:08 +0100
Peix Fabrice <[EMAIL PROTECTED]> wrote:

> On Fri, 2003-01-24 at 14:09, Fran�ois Boisson wrote:
> > On Fri, 24 Jan 2003 09:59:05 +0100
> > [EMAIL PROTECTED] wrote:
> > 
> > > Salut la liste.
> > > 
> > > En d�marrant mon syst�me (sarge, noyau 2.4.18, enlightement, ni
> > > gnome, ni kde), un
...
> > exemple utilis�es seulement � l'initialisation restent sur le swap. Il
> > faut se m�fier des interpr�tations de l'occupation m�moire,
> > rapidement, toute la m�moire est utilis�e mais une partie souvent
> > importante sert en fait de cache pour les entr�es/sorties. Bref, faire
> > confiance au noyau sur ce point et penser que ce syst�me de m�moire
> > virtuelle, source de pol�mique d'ailleurs pour le noyau 2.4, commence
> > � �tre s�rieusement au point.
> Plus precisement le noyau cache aussi le swap.

Je ne comprends pas ce que cela peut vouloir dire: le swap est constitu�
de plages m�moires provisoirement �crites sur le disque afin de lib�rer de
la RAM, cacher le swap signifierait

1) conserver en m�moire une image disque d'une plage m�moire que  l'on
veut r�cup�rer la place: d�marche idiote...

ou bien

2) Le m�canisme du swap pr�voirait syst�matiquement de mettre sur disque
une plage m�moire o� il n'a a pas eu d'acc�s depuis un certain temps (ce
n'est pas le cas � mon avis mais bon), cacher le swap signifierait dans ce
cas conserver qd m�me cette plage tant qu'il y a de la place. D�marche
compliqu�e...

Peux tu m'expliquer?

> >  Par contre, j'aimerai savoir comment le noyau proc�de en cas de
> > grosse demande d'un seul coup: G�le-t-il des processus et bascule
> > l'ensemble sur Swap? et bien s�r, il reste la question sempiternelle:
> Les pages ne sont pas alloue a la demande mais lorsque l'on ecrit
> dedans.

Oui, c'est ce que j'entendais par "demande" mais l'�criture n'est pas
obligatoire: Lorsqu'on fait un malloc, la m�moire est syst�matiquement
initialis�e � 0 (voir source du noyau, c'est pour �viter de pouvoir lire
indirectement le contenu de la m�moire vive), donc si on fait

tab = (char *) malloc(10000000);
c = tab[3141592];

la simple consultation de la plage m�moire demand�e commence par une
initialisation � 0 et donc par une �criture par le noyau; la page est cr�e
bien qu'il n'y ait pas eu d'�criture � proprement parler.

> > pourquoi le swap doit-il faite deux fois la taille de la m�moire vive?
> > (beaucoup de r�ponses mais aucune claires, il semble effectivement que
> > en cas de grosse demande, le swap soit sollicit� tr�s brusquement et
> > que �a bloque pour un swap trop petit (c'est le cas chez moi) mais
> > c'est juste une constatation).

Francois Boisson

Répondre à