(EN) A virtualization based system comprises a host and a plurality of virtual machines that may each comprises a guest memory. A virtual machine monitor (VMM) has access to underlying platform hardware in the system and may control physical resources in the platform. The platform hardware comprises a processor and a memory coupled to the processor. Further, the VMM may manage guest software including guest operating systems running on the virtual machines. A binary translation logic may replace guest memory writing instructions corresponding to a hot spot in guest application with translated codes to generate a mirrored content for the guest memory. The binary translation logic may combine one or more of the guest memory writing instructions in a region and keep the region atomic. The processor may execute the translated codes in an atomic region together to write a content in the guest memory and a mirrored content in a mirroring memory. The VMM may allocate a memory region in the host memory for the mirroring memory. The guest memory comprises one or more guest memory pages and the mirroring memory may comprise one or more mirroring memory pages. The VMM may add an offset to a virtual address of a guest memory page to obtain a virtual address of a mirroring memory page. The VMM may manage or emulate a guest page table comprising a mapping of virtual addresses to guest physical addresses for the guest memory. The VMM may synchronize a shadow page table with the mapping in the guest page table. The shadow page table comprises a mapping of virtual addresses to host physical addresses for the guest memory and a mapping of virtual addresses to host physical addresses for the mirroring page. Upon a memory failure in the guest memory page, the VMM may restore the content of the corrupted guest memory page from the mirroring memory page.
(FR) Un système de virtualisation comprend un hôte et une pluralité de machines virtuelles pouvant comporter chacune une mémoire hôte. Un moniteur de machine virtuelle (VMM) a un accès à une plateforme matérielle sous-jacente du système et peut commander les ressources physiques de la plateforme. La plateforme matérielle comprend un processeur et une mémoire couplée au processeur. En outre, le VMM peut gérer le logiciel hôte, notamment les systèmes d'exploitation hôtes s'exécutant sur les machines virtuelles. Une logique de traduction binaire peut remplacer des instructions d'écriture mémoire hôte correspondant à un point sensible dans une application hôte par des codes traduits, afin de générer un contenu répliqué pour la mémoire hôte. La logique de traduction binaire peut combiner une ou plusieurs des instructions d'écriture mémoire hôte dans une région et conserver la région atomique. Le processeur peut exécuter les codes traduits dans une région atomique et écrire simultanément un contenu dans la mémoire hôte et un contenu répliqué dans une mémoire miroir. Le VMM peut allouer une région de mémoire de la mémoire hôte pour la mémoire miroir. La mémoire hôte contient une ou plusieurs pages de mémoire hôte et la mémoire miroir peut inclure une ou plusieurs pages de mémoire miroir. Le VMM peut ajouter un décalage à une adresse virtuelle d'une page de mémoire hôte pour obtenir une adresse virtuelle d'une page de mémoire miroir. Le VMM peut gérer ou émuler une table de pages hôte comportant un mappage entre les adresses virtuelles et les adresses physiques hôtes pour la mémoire hôte. Le VMM peut synchroniser une table de pages fictive avec le mappage dans la table de pages hôte. La table de pages fictive comprend un mappage des adresses virtuelles vers les adresses physiques hôte pour la mémoire hôte et un mappage des adresses virtuelles vers les adresses physiques hôtes pour la page miroir. Lors d'une défaillance mémoire dans la page de mémoire hôte, le VMM peut restaurer le contenu de la page de mémoire hôte corrompue à partir de la page de mémoire miroir.