[SOS] Probl èmes avec émulateur VmWare.

LfvrChris at aol.com LfvrChris at aol.com
Ven 5 Aou 14:26:43 CEST 2005


Bonjour,

Thomas, je renvoie le message sans les images, me dire si tu es OK ?


Je tiens à préciser que depuis plusieurs semaines, je rencontre le même type de problème que celui rencontré par Edouard KAISER.
En effet, j'ai repris l'exemple de l'article concernant la gestion des pages physiques. Lorsque j'ai utilisé l'émulateur VmWare, j'ai rencontré des problèmes en fonction de la taille mémoire paramétrée.
J'ai cherché à comprendre ce qui pouvait bien se passer. Pas d'erreur dans le code de gestion des listes, pas d'erreur dans l'initialisation de la liste des pages libres et de la liste des pages occupées.

Le problème survient toujours pour la même page, c'est à dire la page 259. Les 2 tableaux before[] et after[] sont bien remplis avec l'adresse de la page physique (adresse: 11522048)et l'ajout de cette page à la liste se passe bien également. Le problème est lorsque l'on fait le test de vérification d'écriture des adresses dans les 2 tableaux before[) et after[]. En effet, J'ai un défaut "Page overwritten" à la page 259, au niveau du tableau before[] et pour l'indexe 1. Au lieu d'avoir before[1]=11522048, j'ai before[1]=8507392. Cette erreur apparaît au moment de la réservation d'une nouvelle page, de son remplissage et de l'ajout à la liste. Il m'a été impossible de définir l'endroit exact et donc l'instruction exacte qui posait problème. J'ai même cru un moment donné que cela pouvait venir de la taille du kernel. Pour ceux que cela intéressent, j'ai réalisé 2 captures d'image. Une avec une taille mémoire de 168 Mo et là pas de problème et l'autre avec une taille de 28 Mo. Enfin, pour finir, j'ai réalisé divers tests en fonction des tailles mémoires et les problèmes sont apparus pour des tailles mémoires suivantes : 12 Mo et 16 Mo, 28 Mo et 32 Mo, 44 Mo et 48 Mo, 60 Mo et 64 Mo. J'en ai déduit la règle suivante : Les adresses pour lesquels j'ai un problème sont [(12 Mo + (16 Mo * i))] et [(12 Mo + (16 Mo * i) + 4 Mo)]. Il me reste à tester cela sur une machine dans des conditions réelles, c'est à dire sans passer par un émulateur.

Merci de me faire vos commentaires. Pour ceux que cela interressent, je peux fournir le code.

Cordialement,

Krys


Plus d'informations sur la liste de diffusion Sos