FR2986880A1 - Procede et dispositif de gestion d'execution de processus dans un systeme informatique - Google Patents

Procede et dispositif de gestion d'execution de processus dans un systeme informatique Download PDF

Info

Publication number
FR2986880A1
FR2986880A1 FR1251404A FR1251404A FR2986880A1 FR 2986880 A1 FR2986880 A1 FR 2986880A1 FR 1251404 A FR1251404 A FR 1251404A FR 1251404 A FR1251404 A FR 1251404A FR 2986880 A1 FR2986880 A1 FR 2986880A1
Authority
FR
France
Prior art keywords
sparse
memory
file
execution
created
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
FR1251404A
Other languages
English (en)
Other versions
FR2986880B1 (fr
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 Fr
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Bull SA
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 SA filed Critical Bull SA
Priority to FR1251404A priority Critical patent/FR2986880B1/fr
Priority to PCT/FR2013/050297 priority patent/WO2013121148A1/fr
Publication of FR2986880A1 publication Critical patent/FR2986880A1/fr
Application granted granted Critical
Publication of FR2986880B1 publication Critical patent/FR2986880B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

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)

Abstract

L'invention a notamment pour objet la gestion d'exécution de processus informatiques dans un ordinateur comprenant une mémoire de travail et une mémoire de masse et utilisant un système d'exploitation configuré pour gérer de la mémoire de travail virtuelle. Lors du lancement d'un processus, une région de mémoire virtuelle éparse propre audit processus lancé et un fichier éparse associé au processus lancé sont créés (305, 310). Un lien de correspondance est ensuite établi (315) entre la région de mémoire virtuelle éparse et le fichier éparse créés, selon une fonction de gestion de fichiers cartographiés en mémoire.

Description

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 restant 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 oeuvre 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 resume 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 25 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 30 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 oeuvre pour 25 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 30 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 oeuvre et limite les développements spécifiques nécessaires à sa mise en oeuvre. 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 oeuvre 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 oeuvre 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 oeuvre 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 oeuvre 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 oeuvre, 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, 25 sigle de Central Processing Unit en terminologie anglo-saxonne) ; - une mémoire morte 106 (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" ; 30 - 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 114 reliée à un écran 116 ; - 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 oeuvre 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 oeuvre de l'invention. Il 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 oeuvre 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 oeuvre par un mécanisme de pagination auquel font références les expressions couramment utilisées de « demand paging » et « lazy page allocation ». Il est observé ici que le mécanisme de gestion de mémoire virtuelle 20 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 oeuvre rend disponible le code d'un 25 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. 30 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-1. 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 O. 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 0), 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 ®). 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 oeuvre 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 310).
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). Il 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 restant ou resume, 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 (4)

  1. REVENDICATIONS1. 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. 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. 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. 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. . 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 5 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 oeuvre de chacune des étapes du procédé selon l'une quelconque 25 des revendications précédentes lorsque ledit programme est exécuté sur un ordinateur. 10. Dispositif comprenant des moyens adaptés à la mise en oeuvre de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 8. 30
FR1251404A 2012-02-15 2012-02-15 Procede et dispositif de gestion d'execution de processus dans un systeme informatique Active FR2986880B1 (fr)

Priority Applications (2)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
FR2986880A1 true FR2986880A1 (fr) 2013-08-16
FR2986880B1 FR2986880B1 (fr) 2014-02-14

Family

ID=47843339

Family Applications (1)

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

Country Status (2)

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

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 *

Also Published As

Publication number Publication date
WO2013121148A1 (fr) 2013-08-22
FR2986880B1 (fr) 2014-02-14

Similar Documents

Publication Publication Date Title
US20220019350A1 (en) Application replication among storage systems synchronously replicating a dataset
US9934105B2 (en) Fault tolerance for complex distributed computing operations
US11288138B1 (en) Recovery from a system fault in a cloud-based storage system
RU2568280C2 (ru) Быстрый запуск компьютера
Dinu et al. Understanding the effects and implications of compute node related failures in hadoop
US11947814B2 (en) Optimizing resiliency group formation stability
US20170093755A1 (en) Distributed stream-based database triggers
US8458232B1 (en) Systems and methods for identifying data files based on community data
US11782625B2 (en) Heterogeneity supportive resiliency groups
US9292371B1 (en) Systems and methods for preventing failures of nodes in clusters
US11797212B2 (en) Data migration for zoned drives
US11474701B1 (en) Determining capacity consumption in a deduplicating storage system
CN114222975A (zh) 使用存储器孔径冲刷顺序的数据保存
US20220357891A1 (en) Efficient Read By Reconstruction
US20230077836A1 (en) Storage-Aware Management for Serverless Functions
US11704192B2 (en) Budgeting open blocks based on power loss protection
US9195528B1 (en) Systems and methods for managing failover clusters
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
US8984336B1 (en) Systems and methods for performing first failure data captures
FR2986880A1 (fr) Procede et dispositif de gestion d'execution de processus dans un systeme informatique
US20220091743A1 (en) Bucket versioning snapshots
US11847331B2 (en) Budgeting open blocks of a storage unit based on power loss prevention
US10437683B1 (en) Systems and methods for protecting data affected by system changes
US11829631B2 (en) Protection of objects in an object-based storage system

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

TQ Partial transmission of property

Owner name: LE COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX EN, FR

Effective date: 20221031

Owner name: BULL SAS, FR

Effective date: 20221031

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13