WO2013121148A1 - Procédé et dispositif de gestion d'exécution de processus dans un système informatique - Google Patents

Procédé et dispositif de gestion d'exécution de processus dans un système informatique Download PDF

Info

Publication number
WO2013121148A1
WO2013121148A1 PCT/FR2013/050297 FR2013050297W WO2013121148A1 WO 2013121148 A1 WO2013121148 A1 WO 2013121148A1 FR 2013050297 W FR2013050297 W FR 2013050297W WO 2013121148 A1 WO2013121148 A1 WO 2013121148A1
Authority
WO
WIPO (PCT)
Prior art keywords
sparse
file
execution
memory
virtual memory
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.)
Ceased
Application number
PCT/FR2013/050297
Other languages
English (en)
Inventor
Xavier Bru
Simon Derr
Zoltan Menyhart
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.)
Bull SAS
Original Assignee
Bull SAS
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 Bull SAS filed Critical Bull SAS
Publication of WO2013121148A1 publication Critical patent/WO2013121148A1/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3698Environments for analysis, debugging or testing of software

Definitions

  • the present invention relates to the execution of computer code and more particularly to a method and a device for managing the execution of processes in a computer system.
  • intermediate software layers are generally used between the hardware layer and the software application layer.
  • Such intermediate layers make it possible to perform tasks as generic as possible, such as data transfers and processing.
  • the use of such tasks often makes it possible to decorrelate the application and hardware layers, thus allowing a software application to be executed by several different hardware layers.
  • intermediate layers can also be used for particular functions, including memory functions of working memory states (or RAM) of a computer system when stopping and resuming execution of computer processes. These functions are implemented, in particular, for the development and development of these processes.
  • checkpoint type function consists of copying the entire process data to a mass memory (storage devices) when the function is called.
  • the virtual memory consists in using part of the mass memory as working memory by using an exchange mechanism (called swap in English terminology) to load in real working memory data present in mass memory when transactions use them.
  • swap in English terminology an exchange mechanism
  • suspends There are functions for suspending execution of processes and resuming execution, called suspends and summarizes in English terminology, whose purpose is to temporarily stop the execution of a process at a given moment. given and allow recovery later to the point where it was stopped, using data stored at the stop.
  • These functions are typically used to temporarily terminate the execution of a process, such as when multiple processes are to be executed by a computer system and there are priority levels associated with these processes.
  • these functions allow you to temporarily suspend the execution of IT processes and let other processes take advantage of the resources of the IT equipment and then restore the suspended processes and restart them as if they were continuing from the point of suspension, as if nothing had happened.
  • core dump in English terminology, which consists of storing the state of a working memory at a given moment, typically when a process ends abnormally. This function is generally used to analyze the execution of a process a posteriori and to try to understand the reasons that led to its abnormal termination.
  • the invention thus relates to a method for managing the execution of at least one process in a computer comprising a working memory and a mass memory, said computer comprising an operating system configured to manage working memory.
  • this method comprising the following steps when launching said at least one process,
  • the invention makes it possible to manage the executable code of the processes and the data created and modified by these processes for functions of interruption and recovery, suspension of execution and saving of the working memory because
  • a new virtual memory space can be created at the time of the restoration of a potentially faulty process, by associating the corresponding sparse file with a mechanism for managing files mapped in memory.
  • the method further comprises a step of executing said at least one process, according to which, during said step of executing said at least one process, said operating system copies data associated with said at least one process a process and stored in said at least one sparse virtual memory region created to said at least one sparse file created.
  • the method further comprises, following the validation of a modification of a data item associated with said at least one process and stored in said at least one sparse virtual memory region created and copied into said at least one less a sparse file created, a step of creating a new version of said at least one sparse file created.
  • the method according to the invention thus makes it possible to keep a history of the evolution of the process and to use memory blocks of the storage devices only for the modified data.
  • the method according to the invention can in particular be implemented to perform a step of resuming the execution of said at least one process following an interruption of execution thereof.
  • said step of resuming execution of said at least one process comprises the following steps,
  • At least one of the steps of creating at least one sparse virtual memory region, creating at least one sparse file and establishing a correspondence link between a region of sparse virtual memory and a sparse file is a function of said operating system.
  • the method according to the invention can in particular be used in a tool for debugging at least one process.
  • the invention also relates to a computer program comprising instructions adapted to the implementation of each of the steps of the method described above when said program is executed on a computer and a device comprising means adapted to the implementation of each of the steps of the method described above.
  • a computer program comprising instructions adapted to the implementation of each of the steps of the method described above when said program is executed on a computer
  • a device comprising means adapted to the implementation of each of the steps of the method described above.
  • FIG. 1 illustrates an exemplary information processing device adapted to implement the invention
  • FIG. 2 schematically illustrates an example of a code loading mechanism of a process from a mass memory to a virtual working memory of a computer system such as that described with reference to FIG. 1; and, FIG. 3 illustrates certain process execution management steps implemented in accordance with the invention.
  • the object of the invention is to provide process execution management functions in a computer system, these functions being based on existing, simple and efficient functions, file management and working memory management. .
  • the virtual memory device makes it possible to establish a direct correspondence between the virtual space of the process and the blocks of the file associated with this process (so-called mapped file).
  • FIG. 1 illustrates an exemplary information processing device that can be used to implement, at least partially, the invention.
  • the device 100 is for example a PC type microcomputer (acronym of Personal Computer in English terminology), a terminal connected to a server or a server.
  • the device 100 preferably comprises a communication bus 102 to which are connected:
  • CPU Central Processing Unit
  • a read-only memory 06 (ROM, acronym for Read Only Memory in English terminology) that may include an operating system, for example a Linux operating system (Linux is a trademark) and programs such as "Prog " a working memory, random access memory or cache memory 108 (RAM, acronym for Random Access Memory in English terminology) comprising registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs; and,
  • a mass memory 120 such as a hard disk or a memory of the flash memory or SSD type (acronym for Solid-State Drive in English terminology) that can be used to form a virtual working memory and which may comprise the programs " Prog "above and data processed or to be treated according to the invention
  • the device 100 may also have the following elements:
  • a communication interface 126 connected to a distributed communication network 128, for example an Ethernet network or an Infiniband (Ethernet and Infiniband are trademarks), the interface being able to transmit and receive data; and,
  • a memory card reader (not shown) adapted to read or write processed or processed data.
  • the communication bus allows communication and interoperability between the various elements included in the device 100 or connected to it.
  • the representation of the bus is not limiting and, in particular, the central unit is capable of communicating instructions to any element of the device 100 directly or via another element of the device.
  • the executable code of each function enabling the device 100 to implement the invention can be stored, for example, in the mass memory 120 or in the read-only memory 106. According to a variant, the executable code of the functions can be received by via the communication network 128, via the interface 126, to be stored identically to that described previously. More generally, the function or functions can be loaded into one of the storage means of the device 100 before being executed.
  • the central unit 104 will control and direct the execution of the instructions or portions of software code of the function or functions according to the invention, instructions which are stored in the mass memory 120 or in the read-only memory 106 or else in the other elements aforementioned storage.
  • the program or programs that are stored in a non-volatile memory for example the mass memory 120 or the read-only memory 106, comprising the function or functions according to the invention, typically, in particular, a system operating, are transferred into RAM memory 108 which then contains the executable code of the function or functions according to the invention, as well as registers for storing the variables and parameters necessary for the implementation of the invention.
  • This mechanism is typically based on an exchange mechanism (called swap in English terminology), according to which a mass memory is used to enable particular processes to run in a hardware environment with less of working memory (RAM) as necessary.
  • swap in English terminology an exchange mechanism
  • sparse file in English terminology, is a computer file whose theoretical size is particularly important, typically greater than the capacity of the mass memory used to store it, and which includes "Empty", that is that is, sites that are never accessed. Because of these, there are mechanisms to store them in an optimized manner, the locations never accessed are not stored.
  • the file system converts the blocks representing "voids" into real blocks containing only null bits.
  • files mapped in memory also called memory-mapped files in English terminology, are virtual memory segments to which portions of files are assigned in a bit-to-bit correspondence relation. These portions of files therefore exactly reflect the corresponding segments of virtual memory.
  • a process can access data from the corresponding file using the simple instructions of the used processor that normally allow access to the RAM, without explicitly executing input operations. /exit.
  • the input / output operations required for the process are automatically executed by the operating system in an optimized manner. These operations are typically implemented by a paging mechanism referred to by the commonly used expressions "demand paging" and "lazy page allocation".
  • the virtual memory management mechanism for creating a sparse virtual memory can be combined with the mechanism for managing files mapped in memory to form a mechanism for managing programs mapped in memory (or memory mapped programs in English terminology). -saxonne).
  • the operating system implemented makes available the code of a process for execution.
  • FIG. 2 schematically illustrates an example of such a code loading mechanism of a process from a mass memory 120 to a virtual working memory 200 of a computer system such as that described with reference to FIG. 1.
  • the mass memory 120 here comprises a set of files including a file 205-1 containing the code of a process to be executed. This file can be cut into blocks of predetermined size, for example in pages.
  • the virtual working memory 200 uses a working memory such as the working memory 106 described with reference to FIG. 1 and a mass memory, for example the mass memory 120.
  • the virtual working memory 200 is divided into regions, a different region being dedicated to the execution of each process to be executed.
  • a region of the virtual working memory 200, referenced 210-1 is assigned to the execution of the process corresponding to the code stored in the file 205-.
  • a first page is loaded from the 205-1 file in virtual memory, in the region 210-1, as illustrated by the reference ⁇ .
  • a call is made to code not contained in this page (illustrated by the reference ⁇ ), that is to say in the presence of a connection on a part not yet loaded code, an error is generated.
  • a read instruction is generated (illustrated by the reference ®) and the corresponding code is obtained to execute (illustrated by the reference 0).
  • the virtual memory management mechanisms making it possible to create a sparse virtual memory, sparse memory, Memory mapped files and / or file version management systems are combined to manage computer process data and thereby improve the execution management of computer processes.
  • FIG. 3 illustrates some process execution management steps implemented in accordance with the invention. As illustrated, when a process is started (step 300), a sparse virtual memory space is created (step 305) as well as a sparse file (step 30).
  • the sparse virtual memory space and the sparse file created are unique to the launched process. Whenever the process is started, a sparse virtual memory space and a sparse file are created. For these purposes, standard functions for managing scattered virtual memory spaces and sparse files are advantageously used.
  • This memory space and this file are then linked (step 315) using, preferably, a standard mechanism for managing files mapped in memory.
  • This link allows bit-to-bit synchronization between the sparse virtual memory space and the sparse file corresponding to the exception of the unused blocks.
  • the process is then executed in a standard manner (step 320).
  • step 330 During an interruption of execution of the considered process (step 330), voluntary or not, linked, for example, to a checkpoint or suspend function or to a runtime error, the process data are present in the file. scattered previously created and corresponding to the process. Indeed, as described previously, the data of an evolving process virtually in the corresponding file, there is a correspondence between each element of the process data and the blocks of the corresponding sparse file. In other words, as soon as a piece of data is modified in virtual memory (scattered virtual memory), an equivalent modification is made in the corresponding file (sparse file). Thus, during an execution interruption, it is not necessary to explicitly copy the data present in virtual memory in a file.
  • a test is then performed to determine whether a change tracking mechanism must be activated (step 335), that is, whether to keep different versions of an associated sparse file. a process to keep the change history of this data.
  • a commit statement (or commit) for the changed data is generated (step 340).
  • This instruction has the effect that the next modifications of the sparse file considered will be stored in a new file with the same name but having a directly superior version reference. For these purposes, a standard versionning type function is advantageously used.
  • step 345 Following the interruption of execution of a process, it is possible to restart or resume the process (step 345), for example using a type function remained or summarized, to the point where it has interrupted using the sparse file previously used for its execution.
  • a new sparse virtual memory space is created (step 350) and the last sparse file used for the execution of the process is obtained (step 355). If a change tracking mechanism is enabled, a new sparse file is created to store the changes made to the data.
  • step 315) the sparse virtual memory space created and the sparse file obtained, as well as, if appropriate, the sparse file created, are linked to allow the execution of the process, using a mechanism for managing files mapped in memory, as previously described.
  • the interruption of a process can be voluntary or involuntary.
  • a voluntary interruption may be linked to an administrative reason such as the management of the execution priority of several processes or techniques, in particular to carry out a data backup and thus to allow an analysis of the data, for example for setting tools. to the point, and / or anticipate a possible failure.
  • An unintentional interruption is typically related to an interrupt error.
  • the method according to the invention allows easy recovery of the execution of the process.
  • the sparse virtual memory management mechanism can store there blocks of data considered temporarily useless and, later, in case of need, return them to the working memory (physical RAM).
  • the method according to the invention makes it possible to avoid resorting to the use of the exchange function (swap) for storing part of the virtual RAM, unlike the standard solutions according to which the exchange function is used because there is no other place to store part of the virtual working memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

Procédé et dispositif de gestion d'exécution de processus dans un système informatique
La présente invention concerne l'exécution de code informatique et plus particulièrement un procédé et un dispositif de gestion d'exécution de processus dans un système informatique.
Afin de faciliter la programmation des systèmes informatiques, des couches logicielles intermédiaires sont généralement utilisées entre la couche matérielle et la couche logicielle applicative. De telles couches intermédiaires permettent d'exécuter des tâches aussi génériques que possible, telles que des transferts et des traitements de données. En outre, l'utilisation de telles tâches permet souvent de décorréler les couches applicative et matérielle, autorisant ainsi une application logicielle à être exécutée par plusieurs couches matérielles différentes.
Ces couches intermédiaires peuvent également être utilisées pour des fonctions particulières, notamment des fonctions de mémorisation d'états de mémoire de travail (ou mémoire vive) d'un système informatique lors de l'arrêt et la reprise d'exécution de processus informatiques. Ces fonctions sont mises en oeuvre, en particulier, pour le développement et la mise au point de ces processus.
Ainsi, par exemple, il existe des fonctions d'interruption et de reprise de processus, appelées checkpoint et restart en terminologie anglo-saxonne, pour suspendre l'exécution d'un processus à un point donné de celui-ci et le reprendre à ce point ultérieurement. De telles fonctions sont typiquement utilisées pour sauvegarder des données liées à l'exécution du processus considéré au cours de son exécution lorsque celle-ci est potentiellement longue de telle sorte qu'il ne soit pas nécessaire de ré-exécuter tout le processus si une erreur matérielle ou logicielle survient au cours de son exécution ou lorsqu'une ressource nécessaire à son exécution s'avère indisponible. En d'autres termes, ces fonctions permettent de sauvegarder l'état exact de processus informatiques et, en cas de pannes, restaurer l'état exact des processus et les redémarrer à partir du point de sauvegarde, comme si rien n'était arrivé.
La mise en œuvre d'une fonction de type checkpoint consiste à recopier l'intégralité des données des processus vers une mémoire de masse (périphériques de stockage) lorsque la fonction est appelée.
Cependant, lorsque le système informatique exécutant le processus utilise de la mémoire virtuelle, il est généralement nécessaire d'accéder à des données présentes dans la mémoire de masse avant de les recopier vers celle- ci. En effet, la mémoire virtuelle consiste à utiliser une partie de la mémoire de masse comme mémoire de travail en utilisant un mécanisme d'échange (appelé swap en terminologie anglo-saxonne) pour charger en mémoire de travail réelle des données présentes en mémoire de masse lorsque des opérations font appel à celles-ci. Ainsi, lorsque beaucoup de données sont stockées en mémoire de masse du fait de l'utilisation de mémoire virtuelle, beaucoup d'opérations d'entrée/sortie additionnelles sont nécessaires pour accéder à ces données.
De façon similaire, il existe des fonctions de suspension d'exécution de processus et de reprise d'exécution, appelées suspend et résume en terminologie anglo-saxonne, qui ont pour objet d'arrêter temporairement l'exécution d'un processus à un instant donné et permettre sa reprise ultérieurement au point où il a été arrêté, à l'aide de données mémorisées lors de l'arrêt. Ces fonctions sont généralement utilisées pour mettre temporairement fin à l'exécution d'un processus, notamment lorsque plusieurs processus doivent être exécutés par un système informatique et qu'il existe des niveaux de priorité associés à ces processus. En d'autres termes, ces fonctions permettent de suspendre temporairement l'exécution de processus informatiques et laisser d'autres processus profiter des ressources de l'équipement informatique puis restaurer les processus suspendus et les faire redémarrer comme s'ils continuaient à partir du point de suspension, comme si rien n'était arrivé. De façon similaire encore, il existe une fonction de sauvegarde de mémoire de travail, appelée core dump en terminologie anglo-saxonne, qui consiste à mémoriser l'état d'une mémoire de travail à un instant donné, typiquement lorsqu'un processus se termine de façon anormale. Cette fonction est généralement utilisée pour analyser a posteriori l'exécution d'un processus et chercher à comprendre les raisons ayant conduit son arrêt anormal.
Ces fonctions peuvent être utilisées de façon autonome ou combinées à d'autres dans des outils de mise au point de processus informatiques permettant généralement une exécution pas-à-pas d'un processus.
Ces fonctions étant particulièrement importantes pour l'exécution de processus dans des systèmes informatiques, il existe un besoin constant de les améliorer, notamment en termes de performances, et de les simplifier.
L'invention a ainsi pour objet un procédé de gestion d'exécution d'au moins un processus dans un ordinateur comprenant une mémoire de travail et une mémoire de masse, ledit ordinateur comprenant un système d'exploitation configuré pour gérer de la mémoire de travail virtuelle, ce procédé comprenant les étapes suivantes lors du lancement dudit au moins un processus,
- création d'au moins une région de mémoire virtuelle éparse propre audit au moins un processus lancé ;
- création d'au moins un fichier éparse associé audit au moins un processus lancé ; et,
- établissement d'un lien de correspondance entre ladite au moins une région de mémoire virtuelle éparse et ledit au moins un fichier éparse créés, selon une fonction de gestion de fichiers cartographiés en mémoire.
L'invention permet de gérer le code exécutable de processus et les données créées et modifiées par ces processus pour des fonctions d'interruption et de reprise, de suspension d'exécution et de sauvegarde de la mémoire de travail du fait que
- les données d'un processus évoluent virtuellement dans le fichier éparse correspondant (une certaine partie des données ayant déjà été écrite dans le fichier correspondant il y a par conséquent, statistiquement, moins d'opérations d'entrée/sortie à effectuer lors d'appels à des fonctions d'interruption, de suspension d'exécution et de reprise qu'une solution standard) ;
- il n'est pas nécessaire d'aller chercher une partie des données sur un périphérique en utilisant un mécanisme d'échange (swap) ;
- un nouvel espace de mémoire virtuelle peut être créé au moment de la restauration d'un processus, éventuellement défaillant, en y associant le fichier éparse correspondant par un mécanisme de gestion de fichiers cartographiés en mémoire.
Selon un mode de réalisation particulier, le procédé comprend en outre une étape d'exécution dudit au moins un processus, selon lequel, durant ladite étape d'exécution dudit au moins un processus, ledit système d'exploitation copie des données associées audit au moins un processus et mémorisées dans ladite au moins une région de mémoire virtuelle éparse créée vers ledit au moins un fichier éparse créé.
Toujours selon un mode de réalisation particulier, le procédé comprend en outre, suite à la validation d'une modification d'une donnée associée audit au moins un processus et mémorisée dans ladite au moins une région de mémoire virtuelle éparse créée et recopiée dans ledit au moins un fichier éparse créé, une étape de création d'une nouvelle version dudit au moins un fichier éparse créé.
Le procédé selon l'invention permet ainsi de conserver un historique d'évolution du processus et de n'utiliser des blocs mémoires des périphériques de stockage que pour les données modifiées.
Le procédé selon l'invention peut notamment être mis en œuvre pour effectuer une étape de reprise d'exécution dudit au moins un processus suite à une d'interruption d'exécution de celui-ci.
Selon un mode de réalisation particulier, ladite étape de reprise d'exécution dudit au moins un processus comprend les étapes suivantes,
- création d'au moins une région de mémoire virtuelle éparse propre audit au moins un processus relancé ; - obtention dudit au moins un fichier éparse préalablement créé et associé audit au moins un processus lancé ; et,
- établissement d'un lien de correspondance entre ladite au moins une région de mémoire virtuelle éparse créé propre audit au moins un processus relancé et ledit au moins un fichier éparse obtenu, selon une fonction de gestion de fichiers cartographiés en mémoire.
Toujours selon un mode de réalisation particulier, au moins l'une des étapes de création d'au moins une région de mémoire virtuelle éparse, de création d'au moins un fichier éparse et d'établissement d'un lien de correspondance entre une région de mémoire virtuelle éparse et un fichier éparse est une fonction dudit système d'exploitation. Le procédé selon l'invention est ainsi particulièrement simple à mettre en œuvre et limite les développements spécifiques nécessaires à sa mise en œuvre.
Le procédé selon l'invention peut notamment être utilisé dans un outil de mise au point d'au moins un processus.
L'invention a également pour objet un programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé décrit précédemment lorsque ledit programme est exécuté sur un ordinateur ainsi qu'un dispositif comprenant des moyens adaptés à la mise en œuvre de chacune des étapes du procédé décrit précédemment. Les avantages procurés par ce programme d'ordinateur et ce dispositif sont similaires à ceux évoqués précédemment.
D'autres avantages, buts et caractéristiques de la présente invention ressortent de la description détaillée qui suit, faite à titre d'exemple non limitatif, au regard des dessins annexés dans lesquels :
- la figure 1 illustre un exemple de dispositif de traitement d'informations adapté à mettre en œuvre l'invention ;
- la figure 2 illustre schématiquement un exemple d'un mécanisme de chargement de code d'un processus d'une mémoire de masse vers une mémoire de travail virtuelle d'un système informatique tel que celui décrit en référence à la figure 1 ; et, - la figure 3 illustre certaines étapes de gestion d'exécution de processus mises en œuvre conformément à l'invention.
De façon générale, l'invention a pour objet la fourniture de fonctions de gestion d'exécution de processus dans un système informatique, ces fonctions étant basées sur des fonctions existantes, simples et efficaces, de gestion de fichiers et de gestion de mémoire de travail.
Elle permet la prise en compte des mécanismes décrits ci-avant à travers un dispositif logiciel unique consistant notamment à associer à chaque processus un fichier contenant les données modifiées du processus géré directement par le dispositif de mémoire virtuelle en remplacement de l'espace disque d'échange (ou espace disque dit de swap) utilisé par les systèmes d'exploitation.
Le dispositif de mémoire virtuelle permet d'établir une correspondance directe entre l'espace virtuel du processus et les blocs du fichier associé à ce processus (fichier dit mappé).
Seules les pages de mémoire virtuelle contenant des données modifiées par le processus sont susceptibles d'être réécrites par le dispositif de mémoire virtuelle dans ce fichier (fichier dit éparse).
La figure 1 illustre un exemple de dispositif de traitement d'informations pouvant être utilisé pour mettre en œuvre, au moins partiellement, l'invention. Le dispositif 100 est par exemple un micro-ordinateur de type PC (sigle de Personal Computer en terminologie anglo-saxonne), un terminal relié à un serveur ou un serveur.
Le dispositif 100 comporte de préférence un bus de communication 102 auquel sont reliés :
- une unité centrale de traitement ou microprocesseur 104 (CPU, sigle de Central Processing Unit en terminologie anglo-saxonne) ;
- une mémoire morte 06 (ROM, acronyme de Read Only Memory en terminologie anglo-saxonne) pouvant comporter un système d'exploitation, par exemple un système d'exploitation de type Linux (Linux est une marque) et des programmes tels que "Prog" ; - une mémoire de travail, mémoire vive ou mémoire cache 108 (RAM, acronyme de Random Access Memory en terminologie anglo-saxonne) comportant des registres adaptés à enregistrer des variables et paramètres créés et modifiés au cours de l'exécution des programmes précités ; et,
- une mémoire de masse 120 telle qu'un disque dur ou une mémoire de type mémoire flash ou SSD (sigle de Solid-State Drive en terminologie anglo-saxonne) pouvant être utilisée pour former une mémoire de travail virtuelle et pouvant comporter les programmes "Prog" précités et des données traitées ou à traiter selon l'invention
Optionnellement, le dispositif 100 peut également disposer des éléments suivants :
- une carte graphique 1 14 reliée à un écran 1 16 ;
- un clavier 122 et une souris 124 ou tout autre dispositif de pointage comme un crayon optique, un écran tactile ou une télécommande permettant à l'utilisateur d'interagir avec le dispositif 100 ;
- une interface de communication 126 reliée à un réseau de communication distribué 128, par exemple un réseau Ethernet ou un Infiniband (Ethernet et Infiniband sont des marques), l'interface étant apte à transmettre et à recevoir des données ; et,
- un lecteur de cartes mémoires (non représenté) adapté à y lire ou à y écrire des données traitées ou à traiter.
Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans le dispositif 100 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité centrale est susceptible de communiquer des instructions à tout élément du dispositif 100 directement ou par l'intermédiaire d'un autre élément du dispositif
100.
Le code exécutable de chaque fonction permettant au dispositif 100 de mettre en œuvre l'invention, peut être stocké, par exemple, dans la mémoire de masse 120 ou en mémoire morte 106. Selon une variante, le code exécutable des fonctions pourra être reçu par l'intermédiaire du réseau de communication 128, via l'interface 126, pour être stocké de façon identique à celle décrite précédemment. De manière plus générale, la ou les fonctions pourront être chargées dans un des moyens de stockage du dispositif 100 avant d'être exécutés.
L'unité centrale 104 va commander et diriger l'exécution des instructions ou portions de code logiciel du ou des fonctions selon l'invention, instructions qui sont stockées dans la mémoire de masse 120 ou dans la mémoire morte 106 ou bien dans les autres éléments de stockage précités. Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple la mémoire de masse 120 ou la mémoire morte 106, comprenant la ou les fonctions selon l'invention, typiquement, en particulier, un système d'exploitation, sont transférés dans la mémoire vive 108 qui contient alors le code exécutable de la ou des fonctions selon l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en œuvre de l'invention.
II est rappelé ici qu'il existe dans certains systèmes d'exploitation un mécanisme de gestion de mémoire virtuelle permettant de créer une mémoire virtuelle éparse, appelée sparse virtual memory en terminologie anglo-saxonne. Il fait croire aux processus informatiques que la taille de la mémoire de travail (mémoire vive) est très importante (plus grande de plusieurs fois l'ordre de grandeur de la taille de mémoire vive physique). Selon ce mécanisme, le système d'exploitation ne matérialise que le faible pourcentage de la mémoire vive virtuelle auquel un processus accède, la grande majorité de la mémoire vive virtuelle n'existant pas.
La mise en œuvre de ce mécanisme est typiquement basée sur un mécanisme d'échange (appelé swap en terminologie anglo-saxonne), selon lequel une mémoire de masse est utilisée pour notamment permettre à des processus de s'exécuter dans un environnement matériel possédant moins de mémoire de travail (mémoire vive) que nécessaire.
Il est également rappelé qu'un fichier éparse, appelé sparse file en terminologie anglo-saxonne, est un fichier informatique dont la taille théorique est particulièrement importante, typiquement supérieure à la capacité de la mémoire de masse utilisée pour le stocker, et qui comporte des « vides », c'est- à-dire des emplacements qui ne sont jamais accédés. Du fait de ces derniers, il existe des mécanismes pour les stocker de façon optimisée, les emplacements jamais accédés n'étant pas mémorisés. Lors de la lecture de fichiers éparses, le système de fichiers converti les blocs représentant des « vides » en blocs réels ne comprenant que des bits nuls.
Il est également rappelé que des fichiers cartographiés en mémoire, aussi appelés memory-mapped files en terminologie anglo-saxonne, sont des segments de mémoire virtuelle auxquels sont assignées des portions de fichiers selon une relation de correspondance bit à bit. Ces portions de fichiers reflètent donc exactement les segments correspondant de mémoire virtuelle. Ainsi, en accédant à une zone de mémoire de travail virtuelle, un processus peut accéder à des données du fichier correspondant en utilisant les instructions simples du processeur utilisé qui permettent normalement d'accéder à la mémoire vive, sans exécuter explicitement des opérations d'entrée/sortie. Les opérations d'entrée/sortie nécessaires pour le processus sont automatiquement exécutées par le système d'exploitation, de façon optimisée. Ces opérations sont typiquement mises en œuvre par un mécanisme de pagination auquel font références les expressions couramment utilisées de « demand paging » et « lazy page allocation ».
II est observé ici que le mécanisme de gestion de mémoire virtuelle permettant de créer une mémoire virtuelle éparse peut être combiné au mécanisme de gestion de fichiers cartographiés en mémoire pour former un mécanisme de gestion de programmes cartographiés en mémoire (ou memory mapped programs en terminologie anglo-saxonne). Ainsi, en combinant ces fonctions, le système d'exploitation mis en œuvre rend disponible le code d'un processus pour l'exécution.
La figure 2 illustre schématiquement un exemple d'un tel mécanisme de chargement de code d'un processus d'une mémoire de masse 120 vers une mémoire de travail virtuelle 200 d'un système informatique tel que celui décrit en référence à la figure 1. La mémoire de masse 120 comprend ici un ensemble de fichiers dont un fichier 205-1 contenant le code d'un processus à exécuter. Ce fichier peut être découpé en blocs de taille prédéterminée, par exemple en pages.
La mémoire de travail virtuelle 200 utilise une mémoire de travail telle que la mémoire de travail 106 décrite en référence à la figure 1 et une mémoire de masse, par exemple la mémoire de masse 120. La mémoire de travail virtuelle 200 est découpée en régions, une région différente étant dédiée à l'exécution de chaque processus à exécuter. Ainsi, notamment, une région de la mémoire de travail virtuelle 200, référencée 210-1 , est affectée à l'exécution du processus correspondant au code mémorisé dans le fichier 205- .
Lorsque ce processus est appelé pour être exécuté, une première page est chargée du fichier 205-1 en mémoire virtuelle, dans la région 210-1 , comme illustré par la référence ©. Lorsqu'au cours de l'exécution du code contenu dans cette page, un appel est effectué vers du code non contenu dans cette page (illustré par la référence ©), c'est-à-dire en présence d'un branchement sur une partie non encore chargée du code, une erreur est générée. En réponse à cette erreur, une instruction de lecture est générée (illustré par la référence ®) et le code correspondant est obtenu pour être exécuté (illustré par la référence 0).
Ainsi, en combinant un mécanisme de gestion de mémoire virtuelle permettant de créer une mémoire virtuelle éparse avec un mécanisme de gestion de fichiers cartographiés en mémoire, il est possible de rendre disponible le code d'un processus pour son exécution.
Par ailleurs, il est rappelé qu'il existe des systèmes de gestion de version de fichiers, généralement appelés versioning file System en terminologie anglo-saxonne, pour garder l'historique de modifications effectuées sur des fichiers. Ainsi, après que des modifications aient été validées (par exemple selon une instruction de type commit), les modifications sont effectuées dans une nouvelle version du fichier. Il est ainsi possible d'accéder à n'importe quelle version, précédente ou actuelle, du fichier.
Conformément à l'invention, les mécanismes de gestion de mémoire virtuelle permettant de créer une mémoire virtuelle éparse, mémoire éparse, fichiers cartographiés en mémoire et/ou de gestion de version de fichiers sont combinés pour gérer des données de processus informatiques et ainsi améliorer la gestion d'exécution de processus informatiques.
La figure 3 illustre certaines étapes de gestion d'exécution de processus mises en œuvre conformément à l'invention. Comme illustré, lorsqu'un processus est lancé (étape 300), un espace de mémoire virtuelle éparse est créé (étape 305) ainsi qu'un fichier éparse (étape 3 0).
L'espace de mémoire virtuelle éparse et le fichier éparse créés sont propres au processus lancé. A chaque fois que le processus est lancé, un espace de mémoire virtuelle éparse et un fichier éparse sont créés. A ces fins, des fonctions standard de gestion d'espaces de mémoires virtuelles éparses et de fichiers éparses sont avantageusement utilisées.
Cet espace de mémoire et ce fichier sont alors liés (étape 315) en utilisant, de préférence, un mécanisme standard de gestion de fichiers cartographiés en mémoire. Cette liaison permet une synchronisation bit à bit entre l'espace de mémoire virtuelle éparse et le fichier éparse correspondant à l'exception des blocs non utilisés.
Le processus est ensuite exécuté de façon standard (étape 320).
Ainsi, lorsqu'un processus est lancé, ses données sont automatiquement placées dans un fichier propre à ce processus. Le contenu de ce fichier évolue automatiquement en fonction de l'évolution des données du processus de telle sorte qu'il y ait une correspondance entre la mémoire virtuelle éparse du processus et le fichier éparse correspondant (une telle synchronisation est représentée par la référence 325 sur la figure 3).
II est observé ici que l'utilisation de services de contrôle d'accès aux fichiers du système d'exploitation permet de répondre à des exigences de sécurité.
Lors d'une interruption d'exécution du processus considéré (étape 330), volontaire ou non, liée, par exemple, à une fonction de type checkpoint ou suspend ou à une erreur d'exécution, les données du processus sont présentes dans le fichier éparse précédemment créé et correspondant au processus. En effet, comme décrit précédemment, les données d'un processus évoluant virtuellement dans le fichier correspondant, il existe une correspondance entre chaque élément des données du processus et les blocs du fichier éparse correspondant. En d'autres termes, dès qu'une donnée est modifiée en mémoire virtuelle (mémoire virtuelle éparse), une modification équivalente est effectuée dans le fichier correspondant (fichier éparse). Ainsi, lors d'une interruption d'exécution, il n'est pas nécessaire de recopier explicitement les données présentes en mémoire virtuelle dans un fichier.
Il est observé ici que les données modifiées en mémoire virtuelle, qui nécessitent une réécriture dans le fichier correspondant, sont dites « dirty ». Le système d'exploitation, selon des conditions prédéfinies telles que des conditions de temps passé et de manques de mémoire disponible, « blanchit » la mémoire, c'est-à-dire qu'il réécrit les données dites « dirty » dans le fichier correspondant.
Selon un mode de réalisation particulier, un test est alors effectué pour déterminer si un mécanisme de suivi de modifications doit être activé (étape 335), c'est-à-dire s'il convient de garder différentes versions d'un fichier éparse associé à un processus pour conserver l'historique de modification de ces données.
Dans l'affirmative, une instruction de validation (ou commit) des données modifiées est générée (étape 340). Cette instruction a pour effet que les prochaines modifications du fichier éparse considéré seront mémorisées dans un nouveau fichier portant le même nom mais ayant une référence de version directement supérieure. A ces fins, une fonction standard de type versionning est avantageusement utilisée.
Suite à l'interruption d'exécution d'un processus, il est possible de redémarrer ou reprendre le processus (étape 345), par exemple à l'aide d'une fonction de type restait ou résume, au point où celui-ci a été interrompu en utilisant le fichier éparse utilisé précédemment pour son exécution.
A ces fins, un nouvel espace de mémoire virtuelle éparse est créé (étape 350) et le dernier fichier éparse utilisé pour l'exécution du processus est obtenu (étape 355). Si un mécanisme de suivi de modifications est activé, un nouveau fichier éparse est créé pour stocker les modifications apportées aux données.
Les étapes précédentes sont alors répétées (à partir de l'étape 315) : l'espace de mémoire virtuelle éparse créé et le fichier éparse obtenu, ainsi que, le cas échéant, le fichier éparse créé, sont liés pour permettre l'exécution du processus, en utilisant un mécanisme de gestion de fichiers cartographiés en mémoire, comme décrit précédemment.
L'interruption d'un processus peut être volontaire ou involontaire. Une interruption volontaire peut être liée à une raison d'ordre administratif telle que la gestion de priorité d'exécution de plusieurs processus ou technique, notamment pour effectuer une sauvegarde des données et ainsi permettre une analyse des données, par exemple pour des outils de mise au point, et/ou anticiper une éventuelle défaillance. Une interruption involontaire est typiquement liée à une erreur d'interruption. Cependant, quelque soit la nature de l'interruption, le procédé selon l'invention permet une reprise aisée de l'exécution du processus.
En outre, il est observé ici que les données d'un processus évoluant virtuellement dans le fichier éparse qui lui est associé, le mécanisme de gestion de mémoire virtuelle éparse peut y stocker des blocs de données jugés temporairement inutiles et, ultérieurement, en cas de besoin, les faire revenir dans la mémoire de travail (mémoire vive physique). Ainsi, le procédé selon l'invention permet d'éviter le recours à l'usage de la fonction d'échange (swap) pour le stockage d'une partie de la mémoire vive virtuelle contrairement aux solutions standard selon lesquels la fonction d'échange est utilisée du fait qu'il n'existe pas d'autre endroit où stocker une partie de la mémoire de travail virtuelle.
Naturellement, pour satisfaire des besoins spécifiques, une personne compétente dans le domaine de l'invention pourra appliquer des modifications dans la description précédente.

Claims

REVENDICATIONS
1. Procédé de gestion d'exécution d'au moins un processus dans un ordinateur comprenant une mémoire de travail et une mémoire de masse, ledit ordinateur comprenant un système d'exploitation configuré pour gérer de la mémoire de travail virtuelle, ce procédé étant caractérisé en ce qu'il comprend les étapes suivantes lors du lancement dudit au moins un processus,
- création (305) d'au moins une région de mémoire virtuelle éparse propre audit au moins un processus lancé ;
- création (310) d'au moins un fichier éparse associé audit au moins un processus lancé ; et,
- établissement (315) d'un lien de correspondance entre ladite au moins une région de mémoire virtuelle éparse et ledit au moins un fichier éparse créés, selon une fonction de gestion de fichiers cartographiés en mémoire.
2. Procédé selon la revendication 1 comprenant en outre une étape d'exécution (320) dudit au moins un processus, selon lequel, durant ladite étape d'exécution dudit au moins un processus, ledit système d'exploitation copie (325) des données associées audit au moins un processus et mémorisées dans ladite au moins une région de mémoire virtuelle éparse créée vers ledit au moins un fichier éparse créé.
3. Procédé selon la revendication 2 comprenant en outre, suite à la validation d'une modification d'une donnée associée audit au moins un processus et mémorisée dans ladite au moins une région de mémoire virtuelle éparse créée et recopiée dans ledit au moins un fichier éparse créé, une étape de création d'une nouvelle version dudit au moins un fichier éparse créé.
4. Procédé selon l'une quelconque des revendications 1 à 3 comprenant en outre une étape d'interruption (330) d'exécution dudit au moins un processus.
5. Procédé selon la revendication 4 comprenant en outre, suite à ladite étape d'interruption d'exécution, une étape de reprise (345) d'exécution dudit au moins un processus.
6. Procédé selon la revendication 5 selon lequel ladite étape de reprise d'exécution dudit au moins un processus comprend les étapes suivantes,
- création (350) d'au moins une région de mémoire virtuelle éparse propre audit au moins un processus relancé ;
- obtention (355) dudit au moins un fichier éparse préalablement créé et associé audit au moins un processus lancé ; et,
- établissement (315) d'un lien de correspondance entre ladite au moins une région de mémoire virtuelle éparse créé propre audit au moins un processus relancé et ledit au moins un fichier éparse obtenu, selon une fonction de gestion de fichiers cartographiés en mémoire.
7. Procédé selon l'une quelconque des revendications 1 à 6 selon lequel au moins l'une des étapes de création d'au moins une région de mémoire virtuelle éparse, de création d'au moins un fichier éparse et d'établissement d'un lien de correspondance entre une région de mémoire virtuelle éparse et un fichier éparse est une fonction dudit système d'exploitation.
8. Procédé selon l'une quelconque des revendications 1 à 7 utilisé dans un outil de mise au point d'au moins un processus.
9. Programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l'une quelconque des revendications précédentes lorsque ledit programme est exécuté sur un ordinateur.
10. Dispositif comprenant des moyens adaptés à la mise en œuvre de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 8.
PCT/FR2013/050297 2012-02-15 2013-02-14 Procédé et dispositif de gestion d'exécution de processus dans un système informatique Ceased WO2013121148A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1251404 2012-02-15
FR1251404A FR2986880B1 (fr) 2012-02-15 2012-02-15 Procede et dispositif de gestion d'execution de processus dans un systeme informatique

Publications (1)

Publication Number Publication Date
WO2013121148A1 true WO2013121148A1 (fr) 2013-08-22

Family

ID=47843339

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2013/050297 Ceased WO2013121148A1 (fr) 2012-02-15 2013-02-14 Procédé et dispositif de gestion d'exécution de processus dans un système informatique

Country Status (2)

Country Link
FR (1) FR2986880B1 (fr)
WO (1) WO2013121148A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115454573A (zh) * 2022-09-21 2022-12-09 中国平安人寿保险股份有限公司 基于k8s的容器环境信息保存方法、装置、设备、存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040024729A1 (en) * 2002-07-30 2004-02-05 Worley John S. Method and system for storing sparse data in memory and accessing stored sparse data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040024729A1 (en) * 2002-07-30 2004-02-05 Worley John S. Method and system for storing sparse data in memory and accessing stored sparse data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DULCARDO ARTEAGA ET AL: "Towards Scalable Application Checkpointing with Parallel File System Delegation", NETWORKING, ARCHITECTURE AND STORAGE (NAS), 2011 6TH IEEE INTERNATIONAL CONFERENCE ON, IEEE, 28 July 2011 (2011-07-28), pages 130 - 139, XP032048443, ISBN: 978-1-4577-1172-5, DOI: 10.1109/NAS.2011.42 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115454573A (zh) * 2022-09-21 2022-12-09 中国平安人寿保险股份有限公司 基于k8s的容器环境信息保存方法、装置、设备、存储介质

Also Published As

Publication number Publication date
FR2986880B1 (fr) 2014-02-14
FR2986880A1 (fr) 2013-08-16

Similar Documents

Publication Publication Date Title
US9934105B2 (en) Fault tolerance for complex distributed computing operations
US8935563B1 (en) Systems and methods for facilitating substantially continuous availability of multi-tier applications within computer clusters
RU2568280C2 (ru) Быстрый запуск компьютера
CN102446111B (zh) 快速计算机启动
US12524305B2 (en) Dynamic power loss protection allocation of managed flash storage devices
CN114222975B (zh) 使用存储器孔径冲刷顺序的数据保存
US20110213753A1 (en) Systems and Methods for Managing Application Availability
US8458232B1 (en) Systems and methods for identifying data files based on community data
US20210349649A1 (en) Heterogeneity supportive resiliency groups
US9292371B1 (en) Systems and methods for preventing failures of nodes in clusters
US11163593B2 (en) Checkpointing and restoring containers to optimize containerized managed runtime applications
US9195528B1 (en) Systems and methods for managing failover clusters
US8434073B1 (en) Systems and methods for preventing exploitation of byte sequences that violate compiler-generated alignment
CN102567047A (zh) 快速计算机启动
US9823857B1 (en) Systems and methods for end-to-end quality of service control in distributed systems
US11586266B1 (en) Persistent power enabled on-chip data processor
WO2013121148A1 (fr) Procédé et dispositif de gestion d'exécution de processus dans un système informatique
US8984336B1 (en) Systems and methods for performing first failure data captures
US8935695B1 (en) Systems and methods for managing multipathing configurations for virtual machines
US10437683B1 (en) Systems and methods for protecting data affected by system changes
CN115769191A (zh) 在云计算环境中管理异步操作
US8938639B1 (en) Systems and methods for performing fast failovers
AU2015249127B2 (en) Fault tolerance for complex distributed computing operations
FR3019336A1 (fr) Procede et dispositif de controle du changement de systeme d'exploitation dans des nœuds de service d'un calculateur haute performance
WO2023003627A1 (fr) Groupes de résilience de prise en charge d'hétérogénéités

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13708210

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13708210

Country of ref document: EP

Kind code of ref document: A1