Selon Eric Van Honacker <[EMAIL PROTECTED]>: > Le mardi, 18 f�v 2003, � 15:09 Europe/Brussels, David Remacle a �crit : > > Salut, > > La question va peut �tre vous para�tre bizarre, mais voil� je la pose.
Mais non, ce n'est pas une question bizarre. Disons simplement qu'elle montre combien l'habitude de travailler avec des OS (DOS, Windows, Mac OS Classique) franchement mal foutu � ce niveau transforme un "bug" de ces OS en un r�flexe "anormal" pour quiconque travaille avec un syst�me plus s�rieux � ce niveau. Mais tr�ve de plaisanterie... > > Comment os X g�re t-il sa m�moire ? Le principe de base d'un syst�me bas� sur un noyau Unix est que tout programme souhaitant utiliser ne serait-ce qu'un octet en m�moire doit demander son "allocation" (malloc) au noyau qui en garde trace. Dans le cas o� le noyau doit "liquider" une t�che parce qu'elle fait une r�f�rence � un espace m�moire qu'elle n'a pas re�u, car pas demand� � l'OS, le noyau dispose de la liste compl�te des espaces m�moires allou�s et peut donc lib�rer la totalit� de la m�moire allou�e � ce processus. Il existe 2 exceptions � cette r�gle : - les zones de m�moire partag�es (Shared Memory) qui, r�clam�es par un processus, ne sont pas obligatoirement d�truites par ce m�me processus. En effet, le principe d'une zone de m�moire partag�e est qu'elle est susceptible d'�tre "r�cup�r�e" par un autre processus, et les donn�es qu'elle contient sont �videmment sens�es �tre pouvoir relues par le second processus. - certaines allocation m�moire qui, r�alis�e pour un processus utilisateur, se retrouvent en fait allou�es par des devices drivers ou des modules du noyau, lesquels ne sont pas obligatoirement avertis que le processus pour lequel ils ont r�alis� cette allocation m�moire est termin�. Un exemple qui me vient � la t�te : l'allocation de buffers lors d'une gravure d'un CD. Cette derni�re situation dans laquelle la m�moire du syst�me s'�puise petit � petit est ce qu'on appelle un ph�nom�ne de "memory leak". Il est plus particuli�rement fr�quent quand on a des cycles entres diff�rents processus a- >b->c->a qui doivent chacun faire une allocation m�moire pour le pr�c�dent. Le fil des allocations m�moire devient parfois extr�mement difficile � retrouver, � moins de fusiller l'ensemble des processus concern�s. Dans le premier cas, il est normalement toujours possible � l'administrateur d'identifier les zones de m�moire partag�es (commande ipcs sur les syst�me UNIX) et de les supprimer manuellement. Dans le cas d'une allocation dans un module, le d�chargement/rechargement du module r�soud � 99.99% le probl�me... Encore faut-il pouvoir le faire *sans* red�marrer le syst�me. C'�tait la th�orie. Pour l'approche pragmatique : qu'au bout de 300 jours d'uptime un syst�me se retrouve en renon de m�moire, c'est relativement normal. L'essentiel est de jeter un coup d'oeil (par exemple, directement apr�s chaque ouverture de session) sur la liste des processus et la m�moire allou�e. Si la liste est stable, normalement il ne devrait pas y avoir moins de m�moire libre � chaque ouverture de session. et s'il y a effectivement un probl�me, il faut identifier le processus qui "bouffe" la m�moire (le plus souvent par une boucle sur un malloc), le fusiller, et faire rapport au programmeur en indiquant le bug... > > Est-ce que quand une application quitte (volontairement ou pas) elle > > lib�re par la m�me la place en m�moire qu'elle occupais pour les > > autres ? > > Normalement c un des avantages du X avec le fait qu'elle soit > r�ellement prot�g�e mais d'autres technos plus pointus te > l'expliquerons ds le d�tail... Hein les gars ;-)))) > > > > Ou bien faut-il de temps en temps rebooter (comme sous os 9) pour > > lib�rer plus de m�moire. > > X est fait pour rester en fonctionnement pdt de longues p�riodes donc > ce serait un peu emb�tant... Perso, je lance et quitte bcp (la machine > ne red�marre pas souvent) et je n'ai jamais eu de probl�mes similaires > � ceux qui se produisaient sous le 9. Je quitte les apps par habitude > sinon je pense que ce n'est m�me pas n�c�ssaire (une app ne consomme > que ce qu'elle a besoin et donc si elle ne fait rien elle ne consomme > presque rien en m�moire). Si l'application est correctement programm�e, c'est tout � fait exact. Mais des bugs dans les applications, �a existe :-) > vh -- Didier Belhomme FUNDP - SIU Unix Systems Manager -- Avec i-mode, vivez une toute nouvelle experience de la communication et des services en ligne. Plus d�info sur http://www.imode.be CyberCafe 2.0 <http://www.cybercafe.tv> Chaque Mardi 19h15 sur La 2! Desabonnement par email : <mailto:[EMAIL PROTECTED]>
