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

