FR2888016A1 - Systeme et procede d'optimisation automatique de la memoire virtuelle disponible - Google Patents

Systeme et procede d'optimisation automatique de la memoire virtuelle disponible Download PDF

Info

Publication number
FR2888016A1
FR2888016A1 FR0605047A FR0605047A FR2888016A1 FR 2888016 A1 FR2888016 A1 FR 2888016A1 FR 0605047 A FR0605047 A FR 0605047A FR 0605047 A FR0605047 A FR 0605047A FR 2888016 A1 FR2888016 A1 FR 2888016A1
Authority
FR
France
Prior art keywords
bit
address management
application
long address
bit application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0605047A
Other languages
English (en)
Other versions
FR2888016B1 (fr
Inventor
Ramesh Radhakrishnan
Ranjith Purushothaman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dell Products LP
Original Assignee
Dell Products LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dell Products LP filed Critical Dell Products LP
Publication of FR2888016A1 publication Critical patent/FR2888016A1/fr
Application granted granted Critical
Publication of FR2888016B1 publication Critical patent/FR2888016B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

La présente invention concerne un système de traitement d'informations (100) incluant un processeur (110) apte à supporter un système d'exploitation 64 bits (122). Le système (100) inclut une ressource de mémorisation (120) communiquant avec le processeur (110) pour gérer la ressource de mémorisation (120) comme une mémoire virtuelle (200) pour des applications (124) exécutées par celui-ci. Le système (100) inclut une application 32 bits (124) pouvant être exécutée par le processeur (110) et un encapsuleur (126) pour déterminer automatiquement si l'application 32 bits (124) a une Gestion des Adresses Longues. Si l'encapsuleur (126) détermine que l'application 32 bits (124) n'a pas de Gestion d'Adresses Longues, l'encapsuleur (126) modifie automatiquement un indicateur de Gestion d'Adresses Longues (554) associé à l'application 32 bits (124) sélectionnée pour permettre à celle-ci d'exploiter la capacité d'adressage virtuel supplémentaire du système d'exploitation 64 bits (122).

Description

La présente invention concerne le domaine des systèmes informatiques et de
manière plus spécifique un système et un procédé pour optimiser automatiquement la mémoire virtuelle disponible.
Du fait de la valeur et de l'utilisation croissantes des informations, les utilisateurs et les entreprises cherchent des moyens supplémentaires pour traiter et mémoriser les informations. L'un des choix mis à la disposition des utilisateurs concerne les systèmes de traitement d'informations. Un système de traitement d'informations, d'une manière générale, traite, compile, mémorise, et/ou communique des informations ou des données à des fins commerciales, personnelles, ou autres, permettant ainsi aux utilisateurs d'exploiter la valeur des informations.
Du fait que les besoins et impératifs en termes de technologie et traitement d'informations varient entre différents utilisateurs ou différentes applications, les systèmes de traitement d'informations peuvent également varier en fonction du type d'informations traitées, de la manière par laquelle les informations sont traitées, de la quantité d'informations qui sont traitées, mémorisées, ou communiquées, et du degré de rapidité et d'efficacité avec lequel les informations peuvent être traitées, mémo-risées, ou communiquées. Les variations des systèmes de traitement d'informations permettent aux systèmes de traitement d'informations d'être généraux ou configurés pour un utilisateur spécifique ou une utilisation spécifique, telle que le traitement de transactions financières, les réservations de vols, la mémorisation de données d'entreprise, ou les communications globales. De plus, les systèmes de traitement d'informations peuvent inclure une variété de composants matériels et logiciels qui peu-vent être configurés pour traiter, mémoriser, et communiquer des informations et peuvent inclure un ou plusieurs systèmes informatiques, systèmes de mémorisation de don-
F
nées, et systèmes de gestion de réseau.
Certains systèmes de traitement d'informations incluent un système d'exploitation qui est capable d'exécuter des applications qui ont été conçues à l'origine pour être utilisées avec un système d'exploitation différent. Par exemple, certains systèmes de traitement d'informations utilisent un système d'exploitation 64 bits qui peut également exécuter des applications existantes conçues pour être utilisées avec un système d'exploitation 32 bits.
Par exemple, le système d'exploitation Windows [marque déposée] 64 bits assure le chargement, l'exécution et la gestion d'applications 32 bits via un sous-système appelé Windows-32-sur-Windows-64 (WOW64).
Un avantage de l'exécution d'une application 32 bits sur un sous-système WOW64 est que le sous-système WOW64 peut accroître la mémoire virtuelle disponible accessible par certaines applications 32 bits. En particulier, on sait que les applications 32 bits qui ont une "Gestion des Adresses Longues" peuvent tirer avantage de capacités d'adressage virtuel supplémentaires qui sont rendues disponibles par les systèmes d'exploitation 64 bits. En particulier, les applications 32 bits qui ont une Gestion des Adresses Longues et exécutées par un système d'exploitation 64 bits peuvent avoir une utilisation complète de quatre (4) Go d'espace d'adressage virtuel par opposition aux deux (2) Go typiques d'espace d'adressage virtuel disponible dans les applications 32 bits.
Cependant, afin qu'une application 32 bits exploite la capacité d'adressage virtuel accrue sur des plateformes de système d'exploitation 64 bits, l'application doit être codée à l'aide d'un commutateur de Gestion d'Adresses Longues ou l'utilisateur doit définir un indicateur de Gestion d'Adresses Longues pour chaque application 32 bits particulière en utilisant des outils de modification d'en-tête d'image. En résultat, l'augmentation de l'es- pace d'adresses virtuel requiert une quantité importante de temps, d'effort et d'expertise de l'administrateur. En résultat, très souvent, les applications 32 bits n'utilisent pas l'augmentation de l'espace d'adresses virtuel qui peut être disponible dans des applications 32 bits s'exécutant dans un environnement de système d'exploitation 64 bits.
Par conséquent, il est nécessaire de disposer d'un système et d'un procédé pour optimiser automatiquement la mémoire virtuelle disponible à des applications 32 bits s'exécutant dans un environnement de système d'exploitation 64 bits.
Dans un aspect, un système de traitement d'informations est décrit comme incluant un processeur apte à supporter un système d'exploitation 64 bits. Le système de traite-ment d'informations inclut également une ressource de mémorisation en communication avec le processeur qui est capable de gérer la ressource de mémorisation comme une mémoire virtuelle pour des applications exécutées par le processeur. Le système de traitement d'informations inclut également au moins une application 32 bits qui peut être exécutée par le processeur et un encapsuleur capable de déterminer automatiquement si une application 32 bits sélectionnée a une Gestion d'Adresses Longues. Si l'en- capsuleur déterminer que l'application 32 bits n'a pas de Gestion d'Adresses Longues, l'encapsuleur modifie un indicateur de Gestion d'Adresses Longues associé à l'application 32 bits sélectionnée.
Dans un autre aspect, on décrit un procédé qui inclut un encapsuleur destiné à être utilisé avec un système de traitement d'informations qui est capable d'exécuter un système d'exploitation 64 bits et ayant au moins une application 32 bits qui peut être exécutée par le système d'exploitation 64 bits. Le procédé inclut également la détermination automatique, avec l'encapsuleur, indiquant si une application 32 bits sélectionnée a une Gestion d'Adresses Longues. De plus, en réponse à la détermination indiquant si l'application 32 bits sélectionnée n'a pas de Gestion d'Adresses Longues, le procédé inclut la modification d'un indicateur de Gestion d'Adresses Longues associé à l'application 32 bits sélectionnée.
Dans encore un autre aspect, on décrit une application d'encapsuleur pour optimiser une mémoire virtuelle rendue disponible à une application 32 bits sur un système de traitement d'informations qui a un système d'exploitation 64 bits. L'encapsuleur peut déterminer automatiquement si une application 32 bits sélectionnée a une Gestion d'Adresses Longues et, en réponse à la détermination indiquant que l'application 32 bits sélectionnée n'a pas de Gestion d'Adresses Longues, modifier un indicateur de Gestion d'Adresses Longues associé à l'application 32 bits.
En d'autres termes, la présente invention porte sur un système de traitement d'informations comportant: un processeur apte à supporter un système d'exploitation 64 bits; une ressource de mémorisation en communication avec le processeur, le processeur étant apte à gérer la ressource de mémorisation en tant que mémoire virtuelle pour des applications exécutées par le processeur; au moins une application 32 bits opérationnelle pour être exécutée par le processeur; et un encapsuleur apte à dé-terminer automatiquement si une application 32 bits sélectionnée a une Gestion d'Adresses Longues et pour modi- fier un indicateur de Gestion d'Adresses Longues associé à l'application 32 bits sélectionnée en réponse à la détermination que l'application 32 bits sélectionnée n'a pas de Gestion d'Adresses Longues.
Selon diverses formes de réalisation subsidiaires avanta- geuses: le système d'exploitation 64 bits comporte un sous-système Windows-32-surWindows-64 apte à exécuter des applications 32 bits; l'encapsuleur est de plus apte à déterminer l'état de gestion d'adresses longues de la au moins une applica- tion 32 bits durant son utilisation initiale; le système comporte de plus une pluralité d'applications 32 bits, notamment avec un encapsuleur qui est de plus apte à déterminer si chaque application 32 bits a une Gestion d'Adresses Longues et, en réponse à la détermination qu'au moins une application 32 bits n'a pas de gestion d'adresses longues, modifier un indicateur de gestion d'adresses longues associé à la au moins une application 32 bits; la au moins une application 32 bits est mémorisée dans une ressource de mémorisation en communication avec le processeur; Dans ce dernier cas: la ressource de mémorisation peut constituer une unité de disque dur; le système peut comporter de plus une table de pages dans la mémoire opérationnelle pour mémoriser des pages récupérées à partir de la ressource de mémorisation; et l'encapsuleur peut être mémorisé dans la ressource de mémorisation; l'encapsuleur est apte à interroger le sixième bit d'un en-tête PE associé à l'application 32 bits sélectionnée pour déterminer l'état de gestion d'adresses longues de l'application 32 bits.
La présente invention vise également un procédé compor- tant les étapes consistant à : fournir un encapsuleur utilisable dans un système de traitement d'informations apte à exécuter un système d'exploitation 64 bits et ayant au moins une application 32 bits opérationnelle pour être exécutée par le système d'exploitation 64 bits; déterminer automatiquement, à l'aide de l'encapsu- leur, si une application 32 bits sélectionnée a une gestion d'adresses longues; et, en réponse à la détermination que l'application 32 bits sélectionnée n'a pas de gestion d'adresses longues, modifier un indicateur de gestion d'adresses longues associé à l'application 32 bits sélectionnée.
Selon diverses formes de mise en oeuvre subsidiaires avantageuses, le procédé comporte de plus les étapes consistant à : fournir l'encapsuleur pour l'utiliser dans un système de traitement d'informations apte à exécuter un sous-système Windows-32-sur-Windows-64 associé au système d'exploitation 64 bits; déterminer l'état de gestion d'adresses longues de l'application 32 bits sélectionnée durant son utilisation initiale; déterminer automatiquement à l'aide de l'encapsuleur si l'une quelconque d'une pluralité d'applications 32 bits a une gestion d'adresses longues et, en réponse à la détermination qu'au moins une application 32 bits n'a pas de gestion d'adresses longues, modifier un indicateur de gestion d'adresses longues associé à au moins une application 32 bits; mémoriser la au moins une application 32 bits sur une ressource de mémorisation associée au système de traitement d'informations, et mémoriser l'encapsuleur sur la ressource de mémorisation; dans ce dernier cas, la détermination que la au moins une application 32 bits n'a pas une gestion d'adresses longues comporte de plus l'interrogation du sixième bit d'un en-tête PE associé à l'application 32 bits sélectionnée.
L'invention a également pour objet une application d'en- capsuleur pour optimiser une mémoire virtuelle disponible pour une application 32 bits sur un système de traitement d'informations ayant un système d'exploitation 64 bits, où l'encapsuleur est apte à déterminer automatiquement si une application 32 bits sélectionnée a une gestion d'adresses longues et, en réponse à la détermination que l'application 32 bits sélectionnée n'a pas une gestion d'adresses longues, modifier un indicateur de gestion d'adresses longues associé à l'application 32 bits sélectionnée.
Selon diverses formes de mise en oeuvre subsidiaires avantageuses de cet encapsuleur: la détermination du point de savoir si une application 32 bits sélectionnée a une gestion d'adresses longues comporte l'interrogation du sixième bit d'un en-tête PE associé à l'application 32 bits sélectionnée; - l'encapsuleur est de plus apte à déterminer l'état de gestion d'adresses longues de la au moins une applica- tion 32 bits durant son utilisation initiale; - l'encapsuleur est de plus apte à déterminer l'état de gestion d'adresses longues d'une pluralité d'applications 32 bits associé à un système de traitement d'in- formations sélectionné.
La présente invention offre de nombreux avantages techniques importants. Un avantage technique consiste à fournir un encapsuleur dans un système de traitement d'informa- tions utilisant un système d'exploitation 64 bits pour déterminer si oui ou non une application 32 bits a une Gestion d'Adresses Longues. Cette détermination permet à chaque application 32 bits exécutée sur un système de traitement d'informations utilisant un système d'exploi- tation 64 bits d'être codée ou désignée en tant que Gestion d'Adresses Longues et de fournir une utilisation complète de l'espace d'adresses virtuel disponible. Des avantages supplémentaires vont mieux apparaître à l'homme du métier à partir des figures, de la description et des
revendications fournies ici.
Une compréhension plus complète et entière des présents modes de réalisation et leurs avantages peut être acquise en faisant référence à la description qui va suivre faite conjointement avec les dessins annexés, sur lesquels des références numériques analogues indiquent des caractéristiques analogues, et sur lesquels: - la figure 1 représente un système de traitement d'in-formations selon des enseignements de la présente des- cription, - la figure 2 représente un processeur et une mémoire virtuelle selon un mode de réalisation de la présente description, - la figure 3 montre un autre mode de réalisation d'un processeur d'un système de traitement d'informations et une mémoire selon un mode de réalisation de la présente description, - la figure 4 montre un ordinogramme d'un procédé selon des enseignements de la présente description, - la figure 5 montre une image de l'intérieur de la mémoire selon des enseignements de la présente description, et - la figure 6 montre une image d'Exécutable Portable (PE) selon des enseignements de la présente description. 25 Des modes de réalisation préférés de l'invention et ses avantages sont mieux compris en faisant référence aux figures 1 à 6 sur lesquelles des références numériques analogues font référence à des parties analogues et corres- pondantes et des noms d'éléments analogues à des éléments analogues et correspondants.
Dans le but de cette description, un système de traite-ment d'informations peut inclure tout dispositif ou en-semble de dispositifs opérationnels pour calculer, clas- ser, traiter, transmettre, recevoir, récupérer, émettre, commuter, mémoriser, afficher, manifester, détecter, en-registrer, reproduire, traiter, ou utiliser toute forme d'informations, d'intelligence, ou données à des fins commerciales, scientifiques, de commande ou autres. Par exemple, un système de traitement d'informations peut être un ordinateur individuel, un dispositif de mémorisation de réseau, ou tout autre dispositif adapté et peut varier en taille, forme, performance, fonctionnalité, et prix. Le système de traitement d'informations peut in- clure une mémoire à accès direct (RAM), une ou plusieurs ressources de traitement telles qu'une unité centrale de traitement (CPU) ou une logique de commande matérielle ou logicielle, une mémoire à lecture seule (ROM) et/ou d'autres types de mémoire non volatile. Des composants sup- plémentaires du système de traitement d'informations peu-vent inclure une ou plusieurs unités de disque, un ou plusieurs ports réseau pour communiquer avec des dispositifs externes ainsi que divers périphériques d'entrée/sortie (E/S), tels qu'un clavier, une souris, et un afficheur vidéo. Le système de traitement d'informations peut également inclure un ou plusieurs bus opérationnels pour transmettre des communications entre les divers composants matériels.
En faisant référence maintenant à la figure 1, on repré- sente un système de traitement d'informations selon la présente description, indiqué d'une manière générale par la référence numérique 100. Le système de traitement d'informations 100 inclut un processeur 110, un jeu de puces 112, un système d'entrée/sortie de base (BIOS) 114, une mémoire 116 et une unité de disque 120. Le jeu de pu-ces 112 est couplé au processeur 110, à l'unité de disque 120, au BIOS 114 et à la mémoire 116.
Le système 100 peut fonctionner en exécutant le système BIOS 114 d'un micrologiciel système (non expressément re-35 présenté) en réponse à une mise sous tension ou réinitia- lisation. Le système BIOS 114 identifie et initialise les composants du système 100 et amène un système d'exploitation 122 à s'amorcer. Le système d'exploitation 122 peut permettre à l'utilisateur du système 100 de lancer et d'exécuter une ou plusieurs applications 124 sur le système 100. Les applications 124 peuvent être mémorisées sur l'unité de disque dur 120 ou peuvent être mémorisées sur une ressource de mémorisation à distance couplée par voie de communication au système 100. Le système 100 peut être relié via un réseau à un système de traitement d'in-formations ou à des composants supplémentaires.
Dans le présent mode de réalisation, l'unité de disque dur 120 inclut le système d'exploitation 122, les applications 124 et un encapsuleur 126. Le système d'exploita- tion 122 est de préférence un système d'exploitation 64 bits qui peut également exécuter une ou plusieurs applications 32 bits. Le système d'exploitation 64 bits 122 peut être, par exemple, une Technologie Mémoire Etendue 64 (EM64T). Dans le mode de réalisation particulier, le système d'exploitation 122 comporte un soussystème Windows-32-sur-Windows-64 (WOW64) pour exécuter des applications 32 bits. L'encapsuleur 126 peut inclure de préférence un ensemble d'instructions exécutables qui peuvent être exécutées par le processeur 110 pour déterminer les caractéristiques de Gestion d'Adresses Longues d'une ou plusieurs applications 124. Dans un mode de réalisation préféré, l'encapsuleur 126 peut être intégré dans l'image en usine du système 100. L'encapsuleur 126 peut être appliqué à de multiples applications 124. Dans un autre mode de réalisation, de multiples encapsuleurs 126 peu-vent être fournis de manière à ce qu'un ou plusieurs encapsuleurs puissent être dédiés à une ou plusieurs applications particulières.
Les applications 124 incluent au moins une application 32 bits qui peut être exécutée par le système d'exploita- tion 122. Dans certains modes de réalisation, les applications 124 peuvent inclure une pluralité d'applications 32 bits qui peuvent être exécutées par le système d'exploitation 122. Les applications 124 peuvent également inclure des applications 64 bits qui peuvent être exécutées par le système d'exploitation 122. Une application de Windows 32 bits d'elle-même ne sera pas typiquement attentive à la présence du sous-système WOW64 et ne sait pas si elle s'exécute sur un système d'exploitation 32 bits, ou en mode de compatibilité sur un système d'exploitation 64 bits en utilisant un sous-système WOW64 ou un autre environnement similaire.
En faisant maintenant référence à la figure 2, un schéma représentant une CPU 110 en communication avec une mé- moire virtuelle 200 est représenté. La mémoire virtuelle 200 est une partie de mémoire 116. Dans le présent mode de réalisation, la mémoire 116 est une partie du disque dur 120. La mémoire virtuelle 200 inclut des pages 220, 230, et 240 mémorisées dans celle-ci. La mémoire vir- tuelle 200 peut recevoir des stocks de données 250 depuis la CPU 110 et peut également envoyer des charges de don-nées et des lots d'instructions 260 à la CPU 110. Dans certains modes de réalisation, la mémoire virtuelle 200 est gérée par le système d'exploitation 122.
En faisant maintenant référence à la figure 3, on représente un dessin représentant la CPU envoyant des stocks de données 250 et recevant des charges de données et des lots d'instructions 260 depuis la mémoire virtuelle 200. La mémoire virtuelle 200 est en communication avec une table de pages 210, qui à son tour est en communication avec une ressource de mémorisation 120. Dans le présent mode de réalisation, la ressource de mémorisation 120 peut être un disque dur. La table de pages 210 est opérationnelle pour envoyer des pages depuis l'unité de disque dur 120, les mémoriser dans la table de pages 210 et les transférer à la mémoire virtuelle 200. Des programmes mémorisés sur le disque dur 120 sont typiquement divisés en pages de taille fixe. Ces pages représentent la mémoire virtuelle pour ce programme. Seules les pages qui sont nécessaires sont mémorisées dans la mémoire physique. La table de pages 210 (qui peut être formée dans une mémoire, une mémoire cache ou un disque en fonction de l'implémentation) mémorise de préférence la liste de pages qui sont dans la mémoire physique et le mappage à partir de pages virtuelles en pages physiques.
En faisant maintenant référence à la figure 4, un ordinogramme représentant un procédé 300 selon les enseignements de la présente description est représenté. De préférence, le procédé 300 a lieu automatiquement sans au- cune implication d'un utilisateur ou d'un administrateur système et l'encapsuleur 126 effectue l'analyse de Gestion d'Adresses Longues durant l'utilisation initiale d'une application 32 bits sur le système 100. Le procédé 300 commence lorsque l'encapsuleur 126 est installé 310.
Dans le présent mode de réalisation, l'encapsuleur 126 est installé comme une partie des outils prévus pour être utilisés avec le système d'exploitation 64 bits. Ensuite, une application 124 est appelée par l'utilisateur 312. L'encapsuleur détermine tout d'abord si le système d'ex- ploitation est un système d'exploitation 64 bits qui peut également exécuter des applications 32 bits. Dans le pré-sent mode de réalisation, dans l'étape 314, l'encapsuleur détermine si le système d'exploitation 122 du système 100 incorpore un sous-système WOW64. Si l'application n'inclut pas de système d'exploitation WOW64, le procédé revient alors à l'étape 312 et attend que l'application suivante soit appelée.
Si le système d'exploitation est un système WOW64 316, alors les informations d'en-tête d'image de l'application exécutable 32 bits sont lues 320. Ensuite, le procédé dé- termine si l'application sélectionnée a une Gestion d'Adresses Longues 322. Si l'application a une Gestion d'Adresses Longues 326, alors le procédé revient à l'étape 312. Cependant, si l'application 32 bits sélec- tionnée n'est pas de Gestion d'Adresses Longues 324, le procédé procède à la modification de l'en-tête d'image pour établir un indicateur de Gestion d'Adresses Longues 328. Le procédé revient ensuite à l'étape 312 et attend la sélection d'une application par un utilisateur.
Dans le présent mode de réalisation préféré, des interrogations de l'encapsuleur 126 vérifieront le fichier d'image de Gestion d'Adresses Longues 554 pour déterminer si un indicateur de Gestion d'Adresses Longues a été établi pour une application sélectionnée.
En faisant maintenant référence à la figure 5, une image de Mémoire Interne est représentée et fait l'objet d'une référence généralement par la référence numérique 400. L'image de Mémoire Interne 400 est typiquement placée sur le disque dur 120 et peut être dans un Format d'Exécuta- ble Portable ou Format de Fichier d'Objet Commun (COFF). L'image de Mémoire Interne 400 inclut généralement un en-tête DOS 410, un en-tête d'exécutable portable (PE) 420, une table de section 430, une section de texte en points 440, une section de données en points 450 et d'au- tres sections 460. Dans le présent mode de réalisation, l'encapsuleur 126 détermine de préférence si une application 32 bits particulière est établie comme ayant une Gestion d'Adresses Longues en interrogeant six (6) bits de l'en-tête PE 420.
En faisant maintenant référence à la figure 6, une image d'exécutable portable standard est représentée d'une manière générale par la référence 500. L'image d'exécutable portable inclut un en-tête 512.EXE compatible MS-DOS 2.0, un identificateur OEM/informations OEM/Décalage de section d'en-tête PE 514, une table de programme de rem- placement & réallocation MS-DOS 2.0 514, un en-tête PE 516 (qui peut correspondre à l'en-tête PE 420 représenté sur la figure 5), des en-têtes de section 518 et des pages d'images 520. Les pages d'image 520 incluent des in-formations d'importation, des informations d'exportation, des informations de correction, des informations de ressource et des informations de débogage.
L'en-tête PE est représenté dans une forme étendue et inclut une machine 522, un nombre de sections 524, une es- tampille de date et heure 526, un pointeur vers une table de symboles 528, un nombre de symboles 530, une taille d'en-tête facultatif 540 et des caractéristiques 542. De plus, la section de caractéristiques 542 est étendue de manière à inclure les fichiers d'image suivants: 25 Le champ IMAGE_FILE_LARGE_ADDRESS_AWARE 554 (qui peut être également appelé l'indicateur de Gestion d'Adresses Longues) correspond au bits 6 de la section de caractéristiques 542 sous l'en-tête PE 516. Comme décrit ci-dessus, l'encapsuleur 126 peut de préférence modifier l'indicateur de Gestion d'Adresses Longues 554 d'une ap- IMAGE FILE RELOCS STRIPPED 544 IMAGE FILE EXECUTABLE IMAGE 546 IMAGE FILE LINE NUMS STRIPPED 548 IMAGE FILE LOCAL SYMS STRIPPED 550 IMAGE FILE AGGRESSIVE WS TRIM 552 IMAGE FILE LARGE ADDRESS AWARE 554 IMAGE FILE 16BIT MACHINE 556 IMAGE FILE BYTES REVERSED LO 558 IMAGE FILE 32BIT MACHINE 560 IMAGE FILE DEBUG STRIPPED 562 IMAGE FILE REMOVABLE RUN FROM SWAP 564 IMAGE FILE SYSTEM 566 IMAGE FILE DLL 568 IMAGE FILE UR SYSTEM ONLY 570 IMAGE FILE BYTES REVERSED HI 572 plication 32 bits en réponse à la détermination qu'une application 32 bits n'a pas de gestion d'adresses longues. Cette modification de l'indicateur de gestion d'adresses longues 554 améliore la performance de l'ap- plication 32 bits en tirant avantage de la capacité d'adressage virtuel supplémentaire.

Claims (20)

REVENDICATIONS
1. Système de traitement d'informations (100), caractérisé en ce qu'il comporte: un processeur (110) apte à supporter un système d'ex-ploitation 64 bits (122), - une ressource de mémorisation (120) en communication avec le processeur (110), le processeur (110) étant apte à gérer la ressource de mémorisation (120) en tant que mémoire virtuelle pour des applications (124) exécutées par le processeur (110), au moins une application 32 bits (124) opérationnelle pour être exécutée par le processeur (110), et un encapsuleur (126) apte à déterminer automatiquement si une application 32 bits {124) sélectionnée a une Gestion d'Adresses Longues et pour modifier un indicateur de Gestion d'Adresses Longues (554) associé à l'application 32 bits (124) sélectionnée en réponse à la détermination que l'application 32 bits (124) sé- lectionnée n'a pas de Gestion d'Adresses Longues.
2. Système de traitement d'informations (100) selon la revendication 1, caractérisé en ce que le système d'exploitation 64 bits (122) comporte un sous-système Win- dows-32-sur-Windows-64 (WOW64) apte à exécuter des appli- cations 32 bits (124).
3. Système de traitement d'informations (100) selon la revendication 1, caractérisé en ce que l'encapsuleur {126) est de plus apte à déterminer l'état de gestion d'adresses longues de la au moins une application 32 bits (124) durant son utilisation initiale.
4. Système de traitement d'informations (100) selon la revendication 1, caractérisé en ce qu'il comporte de plus une pluralité d'applications 32 bits (124).
5. Système de traitement d'informations (100) selon la revendication 4, caractérisé en ce que l'encapsuleur (126) est de plus apte à : déterminer si chaque application 32 bits (124) a une Gestion d'Adresses Longues, et en réponse à la détermination qu'au moins une application 32 bits (124) n'a pas de gestion d'adresses ion- gues, modifier un indicateur de gestion d'adresses longues (554) associé à la au moins une application 32 bits (124).
6. Système de traitement d'informations (100) selon la revendication 1, caractérisé en ce que la au moins une application 32 bits (124) est mémorisée dans une ressource de mémorisation (120) en communication avec le processeur (110).
7. Système de traitement d'informations (100) selon la revendication 6, caractérisé en ce que la ressource de mémorisation (120) constitue une unité de disque dur (120).
8. Système de traitement d'informations (100) selon la revendication 6, caractérisé en ce qu'il comporte de plus une table de pages (210) dans la mémoire (116) opérationnelle pour mémoriser des pages (220, 230, 240) récupérées à partir de la ressource de mémorisation (120).
9. Système de traitement d'informations (100) selon la revendication 6, caractérisé en ce que l'encapsuleur (126) est mémorisé dans la ressource de mémorisation (120).
10. Système de traitement d'informations (100) selon la revendication 1, caractérisé en ce que l'encapsuleur (126) est apte à interroger le sixième bit d'un en-tête PE (420) associé à l'application 32 bits (124) sélectionnée pour déterminer l'état de gestion d'adresses longues de l'application 32 bits (124).
11. Procédé caractérisé en ce qu'il comporte les étapes consistant à : fournir un encapsuleur (126) utilisable dans un système de traitement d'informations (100) apte à exécuter un système d'exploitation 64 bits (122) et ayant au moins une application 32 bits (124) opérationnelle pour être exécutée par le système d'exploitation 64 bits (122), - déterminer automatiquement, à l'aide de l'encapsuleur, si une application 32 bits (124) sélectionnée a une gestion d'adresses longues, et - en réponse à la détermination que l'application 32 bits (124) sélectionnée n'a pas de gestion d'adresses longues, modifier un indicateur de gestion d'adresses longues (554) associé à l'application 32 bits (124) sélectionnée.
12. Procédé selon la revendication 11, caractérisé en ce qu'il comporte de plus la fourniture de l'encapsuleur (126) pour l'utiliser dans un système de traitement d'in-formations (100) apte à exécuter un sous- système Windows-32-sur-Windows-64 associé au système d'exploitation 64 bits (122).
13. Procédé selon la revendication 11, caractérisé en ce qu'il comporte de plus la détermination de l'état de gestion d'adresses longues de l'application 32 bits (124) sélectionnée durant son utilisation initiale.
14. Procédé selon la revendication 11, caractérisé en ce qu'il comporte de plus les étapes consistant à : déterminer automatiquement, à l'aide de l'encapsuleur (126), si l'une quelconque d'une pluralité d'applica- tions 32 bits (124) a une gestion d'adresses longues, et en réponse à la détermination qu'au moins une application 32 bits (124) n'a pas de gestion d'adresses ion- gues, modifier un indicateur de gestion d'adresses longues (554) associé à au moins une application 32 bits (124).
15. Procédé selon la revendication 11, caractérisé en ce qu'il comporte de plus les étapes consistant à : mémoriser la au moins une application 32 bits (124) sur une ressource de mémorisation (120) associée au système de traitement d'informations (100), et mémoriser l'encapsuleur (126) sur la ressource de mé- morisation (120).
16. Procédé selon la revendication 11, caractérisé en ce que la détermination que la au moins une application 32 bits {124) n'a pas une gestion d'adresses longues corn- porte de plus l'interrogation du sixième bit d'un en-tête PE (420) associé à l'application 32 bits (124) sélectionnée.
17. Application d'encapsuleur pour optimiser une mémoire virtuelle (200) disponible pour une application 32 bits (124) sur un système de traitement d'informations (100) ayant un système d'exploitation 64 bits (122), caractéri- sée en ce qu'elle comporte l'encapsuleur (126) apte à : déterminer automatiquement si une application 32 bits (124) sélectionnée a une gestion d'adresses longues, et en réponse à la détermination que l'application 32 bits (124) sélectionnée n'a pas une gestion d'adresses longues, modifier un indicateur de gestion d'adresses longues (554) associé à l'application 32 bits (124) sélectionnée.
18. Encapsuleur (126) selon la revendication 17, caractérisé en ce que la détermination du point de savoir si une application 32 bits (124) sélectionnée a une gestion d'adresses longues comporte l'interrogation du sixième bit d'un en-tête PE (420) associé à l'application 32 bits (124) sélectionnée.
19. Encapsuleur (126) selon la revendication 17, caractérisé en ce qu'il est de plus apte à déterminer l'état de gestion d'adresses longues de la au moins une application 32 bits (124) durant son utilisation initiale.
20. Encapsuleur (126) selon la revendication 17, caractérisé en ce qu'il est de plus apte à déterminer l'état de gestion d'adresses longues d'une pluralité d'applications 32 bits {124) associé à un système de traitement d'informations (100) sélectionné.
FR0605047A 2005-06-08 2006-06-07 Systeme et procede d'optimisation automatique de la memoire virtuelle disponible Active FR2888016B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/147,565 US20060282606A1 (en) 2005-06-08 2005-06-08 System and method for automatically optimizing available virtual memory

Publications (2)

Publication Number Publication Date
FR2888016A1 true FR2888016A1 (fr) 2007-01-05
FR2888016B1 FR2888016B1 (fr) 2009-09-25

Family

ID=36745412

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0605047A Active FR2888016B1 (fr) 2005-06-08 2006-06-07 Systeme et procede d'optimisation automatique de la memoire virtuelle disponible

Country Status (9)

Country Link
US (1) US20060282606A1 (fr)
CN (1) CN100444132C (fr)
DE (1) DE102006026474A1 (fr)
FR (1) FR2888016B1 (fr)
GB (1) GB2427050A (fr)
HK (1) HK1101720A1 (fr)
IE (1) IE20060421A1 (fr)
SG (1) SG128570A1 (fr)
TW (1) TW200710735A (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8413136B2 (en) 2009-05-08 2013-04-02 Microsoft Corporation Application virtualization
US8788739B2 (en) * 2009-06-29 2014-07-22 Hewlett-Packard Development Company, L.P. Hypervisor-based management of local and remote virtual memory pages
US10242182B2 (en) * 2009-10-23 2019-03-26 Secure Vector, Llc Computer security system and method
US9454652B2 (en) * 2009-10-23 2016-09-27 Secure Vector, Llc Computer security system and method
US8775802B1 (en) 2009-10-23 2014-07-08 Secure Vector Computer security system and method
US8429429B1 (en) * 2009-10-23 2013-04-23 Secure Vector, Inc. Computer security system and method
CN105630599B (zh) * 2014-10-28 2019-02-15 龙芯中科技术有限公司 基于32/64位混合操作系统的显存分配方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5826074A (en) * 1996-11-22 1998-10-20 S3 Incorporated Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
US6681239B1 (en) * 1996-12-23 2004-01-20 International Business Machines Corporation Computer system having shared address space among multiple virtual address spaces
US5899994A (en) * 1997-06-26 1999-05-04 Sun Microsystems, Inc. Flexible translation storage buffers for virtual address translation
US6330709B1 (en) * 1998-03-30 2001-12-11 International Business Machines Corporation Virtual machine implementation for shared persistent objects
US6301582B1 (en) * 1998-03-30 2001-10-09 International Business Machines Corporation System and method for storage of shared persistent objects
US6493816B1 (en) * 1998-03-30 2002-12-10 International Business Machines Corporation Method and apparatus for encapsulating address translation for shared persistent virtual storage
US6973562B1 (en) * 2000-01-14 2005-12-06 Advanced Micro Devices, Inc. Establishing an operating mode in a processor
US7574346B2 (en) * 2000-10-30 2009-08-11 Microsoft Corporation Kernel emulator for non-native program modules
US6845404B2 (en) * 2002-02-21 2005-01-18 Dell Products, L.P. System, method and computer program product for selecting a mode of operation of a device in an information handling system

Also Published As

Publication number Publication date
FR2888016B1 (fr) 2009-09-25
TW200710735A (en) 2007-03-16
DE102006026474A1 (de) 2007-01-25
GB0611224D0 (en) 2006-07-19
CN100444132C (zh) 2008-12-17
GB2427050A (en) 2006-12-13
CN1881187A (zh) 2006-12-20
IE20060421A1 (en) 2007-01-24
HK1101720A1 (en) 2007-10-26
US20060282606A1 (en) 2006-12-14
SG128570A1 (en) 2007-01-30

Similar Documents

Publication Publication Date Title
FR2888016A1 (fr) Systeme et procede d'optimisation automatique de la memoire virtuelle disponible
US20180287897A1 (en) Application awareness for virtual infrastructure environments
US20070033322A1 (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
US8024433B2 (en) Managing application resources
EP2791787B1 (fr) Diffusion en mode continu de réseau autonome
FR2911411A1 (fr) Systeme et procede de gestion d'objets suivant le modele cim d'informations communes
RU2006107184A (ru) Способ и система для создания, хранения, управления и потребления специфичных культуре данных
CA2568747A1 (fr) Acces a une memoire dans une partition logique
US20040109017A1 (en) Decoupled hardware configuration manager
FR2860894A1 (fr) Procede pour utiliser des indicateurs de fonction afin de determiner la compatibilite entre des revisions du bios et du materiel installe pendant une mise a jour de la memoire flash
FR2908002A1 (fr) Systeme et procede de changement dynamique d'adaptateurs de protocole
US20200356400A1 (en) Scalable and Secure Containers
US20090064189A1 (en) Ontology driven contextual mediation
EP2124153A1 (fr) Procédés et dispositif de mise en oeuvre de périphériques multifonction avec un gestionnaire de périphérique standard unique
EP1949228B1 (fr) Compilation a la volee asynchrone
FR2873466A1 (fr) Procede de programmation d'un controleur de dma dans un systeme sur puce et systeme sur puce associe
US20120284478A1 (en) Managing storage extents and the obtaining of storage blocks within the extents
US11036431B2 (en) Accessing persistent memory via load and store
Gkikopoulos et al. Analysis and improvement of heterogeneous hardware support in docker images
KR20030037125A (ko) 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법
EP3791274B1 (fr) Procédé et noeud de gestion d'une demande d'accélération de matériel au moyen d'un dispositif accélérateur.
US10372516B2 (en) Message processing
CN117009308B (zh) 基于兼容层的可执行文件加载方法及系统
US11500747B2 (en) Computer initialization debug message display system
US20070094001A1 (en) Method and system for non-intrusive code coverage

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 15

PLFP Fee payment

Year of fee payment: 16

PLFP Fee payment

Year of fee payment: 17

PLFP Fee payment

Year of fee payment: 18