Votre navigateur est obsolète. Téléchargez un navigateur moderne, par exemple FireFox.
Léa-Linux : Forum
Le forum de Léa abrite des discussions autour des Logiciels libres.
Syndication
  • RSS ForumForum complet
  • RSS Forum - DéveloppementForum - Développement
  • RSS Forum - Développement - 130260Cette discussion

Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Important : quand vous posez une question, n'oubliez pas de nous donner les indications suffisantes pour que nous puissions répondre. En effet, la divination n'est pas le fort du Linuxien averti. Pour une meilleure compréhension, le bon usage de la grammaire et de l'orthographe est fortement encouragé. En particulier, le langage SMS est à éviter absolument. En cas d'abus, il pourra être censuré sans autre forme de procès.
Les messages dont le contenu est illégal (incitant à la haine - raciale ou autre, diffamant), ou dont le contenu est sans rapport avec le sujet du forum, ou qui sont parfaitement stupides ou hors sujet seront supprimés sans pitié. Il pourra même être fait appel au fournisseur d'accès du coupable pour faire cesser ses agissements.
» Index du forum » Développement » Acces au swap - URGENT
Aller à la discussion: PrécédentSuivante
Action: Nouveau sujetChercherS'authentifier
Acces au swap - URGENT
Auteur: AUBINEAU (IP enregistrée)
Date: le 18 décembre 2003 à 11:42

J'ai developpe une application (C++) sous LINUX qui mange toute la RAM mais quand il n'a plus de place elle ne va pas chercher l'espace dispo dans le swap. Est ce que quelqu'un peut m'aider ????
- options de compil
- commandes LINUX

Re: Acces au swap - URGENT
Auteur: alveric (IP enregistrée)
Date: le 18 décembre 2003 à 13:43

Normalement, c'est le noyau lui-même qui s'occupe de "swapper" des pages mémoires, pas un prog de lui-même. Donc les options de compil n'y font rien.

À moins qu'il existe des commandes particulières pour ça (un binutils évolué ?), ce que tu peux essayer, c'est faire des appels système vers l'unité de gestion de la mémoire pour forcer le swap de certaines pages. Mais ça risque de pas être évident.

Y a un kernel hacker dans la salle ?

Re: Acces au swap - URGENT
Auteur: abgech (IP enregistrée)
Date: le 18 décembre 2003 à 19:03

Pour commencer, une question bête. Si je pars d'une hypthèse d'une RAM 128 Mo (ce qui me paraît normal actuellement), Est-t-il vraiment normal qu'une application mange toute la RAM à disposition ? Ne faudrait-il pas revoir l'algorithme de l'applic ?
pour en revenir au fond de la question, c'est le gestionnaire mémoire de Linux qui se charge de la pagination, et, à ma connaissance, il le fait très bien, le problème ne réside sans doute pas à ce niveau là.
Dans le cadre d'un cours que je dispense sur les système d'exploitaitions, je fais une manip assez spectaculaire pour montrer l'augmentation du taux de pagination au fur et à mesure qu'un processus réclame de la mémoire:
...
char *ptr;

...
while (1)
{if ( ptr = malloc(10000)) == NULL)
break;
putchar('<');

}
printf("Ouf ! fini\n")
...

On lance simultanément, l'exécution du programme et l'exécution de top (ou un quelconque autre outil de visualisation des infos système) pour visualiser le taux de pagination et le taux d'utilisation du CPU. Pour que la démo soit vraiment effective, il est préférable d'utiliser un système avec une grand mémoire RAM (dans mon cas 1 Go). Au début, il n'y a pas de pagination, le CPU est utilisé à pratiquement 100 %, puis, petit à petit, la pagination augmente, les taux d'utilisation du CPU baisse légèrement, jusqu'au point de "trashing" (navré, je ne connais pas l'équivalent en français): le taux d'utilisation du CPU passe brutalement à 1 ou 2 %, le système est en totale contention disque (attente pratiquement permanente d'E/S sur disque), tout se ralentit, on peut même avoir l'impression que le système est "planté", jusqu'au moment où le processus utilise toute la mémoire (RAM + SWAP) et malloc répond NULL. On sort alors de la boucle infernale et le processus se termine.
Linux utilise une technique de taille de buffer dynamique, c'est à dire que, lorsque un processus a besoin de mémoire, le buffer réduit sa taille, jusqu'à une taille minimum incomprésible (tout cela peut se paramétrer). Pour une dizaine de secondes, les temps de réponse sont désastreux, la RAM a été complétement utilisée par ce processus fou, le buffer est minimum et tout doit être rechargé à partir du disque d'où les mauvais temps de réponse.
Alors, même si l'on a des doutes, même si l'on ne va pas voir comment la pagination est implémentée (on a les sources, c'est fait pour ça) cette démo montre que le système de pagination fonctionne très bien sous Linux.

Elle est pas belle la vie ?

Re: Acces au swap - URGENT
Auteur: Weedo41 (IP enregistrée)
Date: le 21 décembre 2003 à 13:17

Slt,
C'est quoi que tu nous développe??
un cathya2?



Laissez brûler la weed et n'oubliez personne
Dans la fumée des dieux s'effondre Babylone



Nom du forum : (antispam) - (en développement:saisir un texte pour le message, rempli cette zone automatiquement)
Votre nom: 
Votre email: 
Sujet: 

 
Ce forum est boosté par Phorum.