WO2019086786A1 - Method of communication between processes, corresponding computer program and computing installation - Google Patents

Method of communication between processes, corresponding computer program and computing installation Download PDF

Info

Publication number
WO2019086786A1
WO2019086786A1 PCT/FR2018/052657 FR2018052657W WO2019086786A1 WO 2019086786 A1 WO2019086786 A1 WO 2019086786A1 FR 2018052657 W FR2018052657 W FR 2018052657W WO 2019086786 A1 WO2019086786 A1 WO 2019086786A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
memory
data
computer
file system
Prior art date
Application number
PCT/FR2018/052657
Other languages
French (fr)
Inventor
Zoltan Menyhart
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
Priority to EP18800729.8A priority Critical patent/EP3704582A1/en
Publication of WO2019086786A1 publication Critical patent/WO2019086786A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Definitions

  • the present invention relates to a method of communication between processes, a computer program and a corresponding computer installation.
  • the invention applies more particularly to a method of communication between first and second processes running in a computer installation comprising a first memory allocated to the first process for its execution, the method comprising the following steps:
  • a file system of the computer installation creates a file
  • the file system receives a request to read data from the file
  • the file system retrieves the data for the second process to access.
  • the file is stored in a mass memory and mapped both in the memory allocated to the first process and in a memory allocated to the second process.
  • the first process writes to its mapped file in memory, which is reflected on the file stored in the mass memory.
  • the second process attempts to read from its memory-mapped file, which triggers, if the data has not yet been copied to the memory-mapped file, a page fault detected by a memory management unit.
  • the latter requests the file system to read from the file the missing page, which is copied to the file mapped in memory of the second process, for the latter to access.
  • the previous method has the disadvantage of requiring a mass memory to store the file.
  • the subject of the invention is therefore a method of communication between first and second processes running in a computer installation comprising a first memory allocated to the first process for its execution, the method comprising the following steps:
  • a file system of the computer installation creates a file, the file system receives a request to read data from the file,
  • the file system retrieves the data for the second process to access it
  • the method being characterized in that the file is a virtual file associated with a portion of the first memory, and in that the file system retrieves the data from the portion of the first memory.
  • this file since the file is virtual and associated with a portion of the memory allocated to the first process, this file does not require mass memory.
  • the computer installation comprises at least first and second computers, on which the first and second processes respectively execute, and the file system is a distributed file system so that the file is accessible from each of the first and second computers.
  • a second memory of the computer installation is allocated to the second process for its execution, the method further comprising the following steps:
  • the file is mapped in the second memory so as to obtain a file mapped in memory
  • the second process attempts to access data from the file mapped in memory, these data having not yet been copied to the file mapped in memory, the step of reception by the file system of the read request being carried out in response to this access attempt,
  • the recovered data is copied to the mapped file in memory for the second process to access.
  • the file is associated with permissions, the method further comprising, before the step of recovering data by the file system:
  • the method further includes creating a directory path after which the file is placed.
  • the first computer belongs to a computer group of the computer installation and one of the directories of the path corresponds to this group.
  • the invention also relates to a computer program downloadable from a communication network and / or recorded on a computer readable medium and / or executable by a processor, characterized in that it comprises instructions for the execution of steps of a method according to the invention, when said program is executed on a computer.
  • the invention also relates to a computer installation in which first and second processes are intended to execute, comprising:
  • a file system designed to create a file, to receive a request to read data in the file, and, in response to the read request, to retrieve the data so that the second process can access it
  • the computer installation being characterized in that the file is a virtual file associated with a portion of the first memory, and in that the file system is adapted to recover the data from the portion of the first memory.
  • FIG. 1 diagrammatically represents the general structure of a computer installation, according to one embodiment of the invention
  • FIG. 2 illustrates the successive steps of a process of communication between processes, according to an embodiment of the invention. invention
  • FIG. 3 is an example of a tree of a file system used in the method of FIG. 2.
  • the electrical installation 100 comprises several computers, including two computers 102 1; 102 2 .
  • the electrical installation 100 further comprises a network 104 by which the computers, and in particular the two computers 102 1; 102 2 , are connected to each other.
  • Each computer 102 1; 102 2 comprises a network interface 104 1; 104 2 by which the first computer 102 1; respectively the second computer 102 2 , is connected to the network 104.
  • each computer 102 1; 102 2 comprises a central processing unit 106 1; 106 2 and a main memory 108 1; 108 2 .
  • the central processing unit 106 1; 106 2 comprises for example a processor and the main memory 108 1; 108 2 comprises for example a volatile memory, for example RAM type (of the English "Random Access Memory").
  • each computer 102 1; 102 2 comprises a mass storage unit 1 1 C, 1 10 2 non-volatile, such as a hard disk.
  • the central processing unit 106 1; 106 2 of each computer 102 1; 102 2 is for executing computer program instructions.
  • Each running computer program, called process is allocated a memory for its execution.
  • This memory extends at least on the main memory 108i, 108 2 and consists of virtual addresses, that is to say do not correspond to physical addresses. This makes it possible in particular to use disjoint pieces of main memory 108i, 108 2 , or even pieces of mass memory (such as storage unit 1 10i, 1 10 2 ), while the process thinks it has access to a block continuous main memory.
  • virtual memory is made up of areas of the same size, called pages.
  • Each computer 102 1; 102 2 further comprises a memory management unit 1 12 1; 1 12 2 designed in particular to convert the virtual addresses that processes try to access into physical addresses.
  • the computers 102 1; 102 2 each execute an operating system SE1, SE2. They also run a file system SF1, SF2 managing a tree A directories and files from a root directory ("root" in English).
  • a file system is a collection of mechanisms and rules for storing and retrieving data.
  • the file system SF1, SF2 is a distributed file system comprising a part executed on each computer of the computer installation 100, and in particular a part SF1 executed by the computer 102 1; and a portion SF2 executed by the computer 102 2 .
  • the file system SF1, SF2 is designed to implement synchronization mechanisms between its parts SF1, SF2 through the network 104, in order to present the same tree A on each computer 102 1; 102 2 .
  • the file system SF1, SF2 is shown as distinct from the operating systems SE1, SE2.
  • the file system may also be entangled in the SE1, SE2 operating systems, so that it can be difficult to distinguish them.
  • the operating systems SE1, SE2 themselves can be considered as forming the file system SF1, SF2.
  • the tree A can be placed in another file system tree (such as a "real" file system, ie files stored in a non-volatile mass memory, such as the hard disks 1 10 1 , 1 10 2 ), that is to say that the root directory of the tree A corresponds to a directory of this other tree.
  • a "real" file system ie files stored in a non-volatile mass memory, such as the hard disks 1 10 1 , 1 10 2
  • the root directory of the tree A corresponds to a directory of this other tree.
  • a memory M1 is allocated to a process P1 for its execution.
  • This memory M1 has a memory zone ZM1 that the process P1 is designed to share with other processes.
  • the memory zone ZM1 is a part of the memory M1 having, in its extent, the same characteristics (for example, of which only read-only access is allowed) and / or comprising data forming one or more computer objects (for example , a stack ("stack" in English), a file mapped in memory from a hard disk or an array of information managed together).
  • a memory M2 is allocated to a process
  • the tree A comprises a file F1, which is a virtual file associated with the memory zone ZM1, instead of being associated with data on a mass memory as for a classic file.
  • the file F1 is further mapped in the memory M2, so as to obtain a file mapped in memory F1 * .
  • the computer installation 100 further comprises a load balancer 1 14 designed to distribute the processes, such as the processes P1, P2, between the different computers, such as the computers 102 1; 102 2 of the computer installation 100 and to migrate the processes from one computer to another depending on the load variations on the computers.
  • the load balancer 1 14 is a computer program executed by the computer 102
  • a communication method 200 between the first and second processes P1, P2 will now be described.
  • the process P1 requests the file system SF1, SF2 to create a virtual F1 file and its association with the memory zone ZM1.
  • the file system SF1, SF2 creates the virtual F1 file and associates it with the memory zone ZM1.
  • a directory path beginning with the root directory is created in the tree A of the file system SF1, SF2, and the file F1 is placed at the end of this path.
  • the path directories already exist, they are reused.
  • the path is: Root_Directory
  • Each of the directories of the path is associated with a unique universal identifier (UUID), the unique term to be understood in the sense of "very likely uniqueness”.
  • UUID unique universal identifier
  • Sub_Group_of_Program / Program are for example defined by an administrator.
  • Each directory / program represents a program, that is, a set of instructions that is not running.
  • the directories / Program_Group / SubGroup_Group are used to classify programs.
  • the names of the directories / Process_group and / Sub_Process_Group are for example defined by the load balancer 1 14 and correspond respectively to groups of computers and subgroups of computers to which belongs the computer running the process.
  • the file F1 is placed in the directories / Process_group and / Sub_Process_Group respectively corresponding to the computer group and the subgroup of computers to which belongs to the computer ⁇ 02 ⁇ .
  • these directories therefore change each time the process is migrated from one computer to another of the computer installation 100 by the load balancer 1 14.
  • the names of the directories / Process and / Instance are for example defined by the SE1 operating system of the computer on which the 102 ⁇ P1 process is running.
  • the names of the / Domain and / Sub_Domain directories are defined by the P1 process.
  • the directory / Domain represents a logical organization of the memory areas and the directory / Sub_Domain is used when the memory areas are numerous and must therefore be classified into several levels of hierarchy.
  • the tree A allows to group similar elements and to organize them in a logical hierarchy.
  • the name of the file F1 which is the memory area ZM1, is for example defined by the SE1 operating system of the computer 102 ⁇ on which the P1 process is running.
  • the file F1 and the directories of the path are associated with respective permissions, allowing to control which process can access it.
  • These permissions are for example UNIX type, that is to say that each file / directory belongs to a user (called owner) belonging to a group of users and that read, write and execute permissions are defined for the user. owner, for users in his group and for other users.
  • owner a user belonging to a group of users
  • permissions are defined for the user. owner, for users in his group and for other users.
  • access Control List access Control List
  • the permissions of an object (directory / file) of the tree A are at least as restrictive as the permissions of the parent object.
  • the process P2 requests the operating system SE2 to map the file F1 in its memory M2.
  • the file system SF1, SF2 verifies that the permissions associated with the file F1 allow the P2 process to access it for reading.
  • the operating system SE2 maps the file F1 in the memory M2 so as to obtain a file mapped in memory F1 * .
  • the second process P2 attempts to access data D of the file mapped in memory F1 * .
  • This access attempt goes through the memory management unit 1 12 2 which detects, during a step 214, whether the data D has already been copied to the file mapped in memory F1 * .
  • the memory management unit 1 12 2 If it is the case, during a step 216, the memory management unit 1 12 2 provides the physical address corresponding to the virtual address of the data D so that the process P2 accesses it. Otherwise, during a step 218, the memory management unit 12 2 detects a page fault and requests the file system SF1, SF2 to provide it with the missing page containing the data D from the file F1. In addition, the SF1, SF2 file system receives this request.
  • the file system SF1, SF2 retrieves the data D (in the example described, the missing page), in the memory part associated with this file F1, that is to say in the example described from the memory zone ZM1, so that the second process P2 can access it.
  • the file system SF1, SF2 supplies the data D (the missing page) to the memory management unit 1 12 2 .
  • the memory management unit 12 2 copies the data D (the missing page) into the file mapped in memory F1 * and supplies the process with the physical address of these data D.
  • the second process P2 accesses the data D in the file mapped in memory F1 * .
  • Steps 202 to 226 are executed each time the process P2 attempts to access data from the file mapped to memory F1 * .
  • the SF1 file system, SF2 is preferably designed to transform the virtual file F1 REE file F1 real i present on a mass storage device, preferably non-volatile, such as one of the hard disks 1 10 1; 1 10 2 .
  • the exchange mechanism (“swap" in English) can for example be used to transfer the data of the memory zone ZM1 in the file F1 rée
  • the data of the memory zone ZM1 remains accessible by other processes, even when the process P1 no longer exists.
  • the method 200 can then be used again, except that in step 220, the file system SF1, SF2 retrieves the data D (in the example described, the missing page), in the file F1 rée i present in a memory massive.
  • the computer installation 100 preferably comprises a coherence mechanism designed to ensure consistency between the data D present in the memory zone ZM1 and their copy in the file mapped in memory F1 * . This consistency can be done for the memory zone ZM1 as a whole.
  • the memory zone ZM1 can be divided into coherence units of predefined size, for example 4 kb. Each coherence unit can then be located in the memory zone ZM1 by an offset ("offset" in English), for example taken from the beginning of the memory zone ZM1. In the case where coherency units are used, coherence can be performed on each coherency unit.
  • a virtual file can be created for each coherency unit and these virtual files are placed in a directory representing the memory area to which the coherency units belong.
  • the virtual file F1 would be associated with one of the coherency units and placed in a directory / Memory_zone placed in the / Domain directory or the / Sub_Domain directory if the latter is used.
  • each virtual file is associated with a part of the memory M1 of the first process P1, for example the memory zone ZM1 or else a coherence unit of the memory zone ZM1.
  • 302 root directory
  • 304 - 308 Application Group Directories
  • 310 - 312 application subgroup directories
  • 314 - 318 application directories
  • 320 process group directory
  • 322 process subgroup directory
  • 324 - 330 process directories
  • 332 - 336 Instance Directories
  • 338-340 domain directories
  • 342 subdomain directory
  • 344 - 348 virtual files respectively associated with portions of the virtual memory of the instance 336 of the process 328.
  • Directories 302, 306, 312, 316, 320, 322, 328, 336, 338, 342 form the path after which the virtual files 344, 346, 348 are placed.
  • the virtual files 344, 346, 348 are for example respectively associated with three memory areas of the memory of the instance 336 of the process 328.
  • the operating systems SE1, SE2, the file system SF1, SF2, and the load balancer 1 14 have been described as computer programs, the invention is not limited to case. Indeed, the functions associated with the instructions of these computer programs could be at least partly micro programmed or micro wired in dedicated integrated circuits. Thus, alternatively, each of the operating systems SE1, SE2, the file system SF1, SF2, and the load distributor 1 14 could be replaced by an electronic device composed only of digital circuits (without a computer program) for performing the same functions.
  • memory management units ' ⁇ ' ⁇ 2, 1 12 2 can be realized by computer programs comprising instructions for carrying out their functions.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

This method of communication between first and second processes currently under execution, in a computing installation comprising a first memory (M1) allocated to the first process for its execution, comprises the following steps: a file system (SF1, SF2) of the computing installation (100) creates a file (F1); the file system (SF1, SF2) receives a reading request in respect of data in the file (F1); in response to the reading request, the file system (SF1, SF2) retrieves the data so that the second process can access same. The file (F1) is a virtual file associated with a part (ZM1) of the first memory (M1) and the file system (SF1, SF2) retrieves the data from the part (ZM1) of the first memory (M1).

Description

PROCEDE DE COMMUNICATION ENTRE PROCESSUS, PROGRAMME D'ORDINATEUR ET INSTALLATION INFORMATIQUE CORRESPONDANTS  PROCESS COMMUNICATION METHOD, COMPUTER PROGRAM AND CORRESPONDING COMPUTER INSTALLATION
La présente invention concerne un procédé de communication entre processus, un programme d'ordinateur et une installation informatique correspondants.  The present invention relates to a method of communication between processes, a computer program and a corresponding computer installation.
L'invention s'applique plus particulièrement à un procédé de communication entre des premier et deuxième processus en cours d'exécution dans une installation informatique comportant une première mémoire allouée au premier processus pour son exécution, le procédé comportant les étapes suivantes :  The invention applies more particularly to a method of communication between first and second processes running in a computer installation comprising a first memory allocated to the first process for its execution, the method comprising the following steps:
- un système de fichiers de l'installation informatique crée un fichier,  a file system of the computer installation creates a file,
- le système de fichiers reçoit une demande de lecture de données dans le fichier, et  the file system receives a request to read data from the file, and
- en réponse à la demande de lecture, le système de fichiers récupère les données pour que le deuxième processus puisse y accéder.  - In response to the read request, the file system retrieves the data for the second process to access.
Le fichier est enregistré dans une mémoire de masse et mappé à la fois dans la mémoire allouée au premier processus et dans une mémoire allouée au deuxième processus. Ainsi, lorsque le premier processus souhaite communiquer des données au deuxième processus, le premier processus écrit dans son fichier mappé en mémoire, ce qui est répercuté sur le fichier enregistré dans la mémoire de masse. Le deuxième processus tente alors de lire dans son fichier mappé en mémoire, ce qui déclenche, si les données n'ont pas encore été copiées dans le fichier mappé en mémoire, une erreur de page détectée par une unité de gestion de mémoire. Cette dernière demande alors au système de fichiers de lire dans le fichier la page manquante, qui est copiée dans le fichier mappé en mémoire du deuxième processus, afin que ce dernier y accède.  The file is stored in a mass memory and mapped both in the memory allocated to the first process and in a memory allocated to the second process. Thus, when the first process wishes to communicate data to the second process, the first process writes to its mapped file in memory, which is reflected on the file stored in the mass memory. The second process then attempts to read from its memory-mapped file, which triggers, if the data has not yet been copied to the memory-mapped file, a page fault detected by a memory management unit. The latter then requests the file system to read from the file the missing page, which is copied to the file mapped in memory of the second process, for the latter to access.
Le procédé précédent présente comme inconvénient de nécessiter une mémoire de masse pour stocker le fichier.  The previous method has the disadvantage of requiring a mass memory to store the file.
Il peut ainsi être souhaité de prévoir un procédé qui permette de s'affranchir d'au moins une partie des problèmes et contraintes précités.  It may thus be desirable to provide a method that makes it possible to overcome at least some of the aforementioned problems and constraints.
L'invention a donc pour objet un procédé de communication entre des premier et deuxième processus en cours d'exécution dans une installation informatique comportant une première mémoire allouée au premier processus pour son exécution, le procédé comportant les étapes suivantes :  The subject of the invention is therefore a method of communication between first and second processes running in a computer installation comprising a first memory allocated to the first process for its execution, the method comprising the following steps:
- un système de fichiers de l'installation informatique crée un fichier, - le système de fichiers reçoit une demande de lecture de données dans le fichier, a file system of the computer installation creates a file, the file system receives a request to read data from the file,
- en réponse à la demande de lecture, le système de fichiers récupère les données pour que le deuxième processus puisse y accéder,  in response to the read request, the file system retrieves the data for the second process to access it,
le procédé étant caractérisé en ce que le fichier est un fichier virtuel associé à une partie de la première mémoire, et en ce que le système de fichiers récupère les données depuis la partie de la première mémoire. the method being characterized in that the file is a virtual file associated with a portion of the first memory, and in that the file system retrieves the data from the portion of the first memory.
Ainsi, comme le fichier est virtuel et associé à une partie de la mémoire allouée au premier processus, ce fichier ne nécessite pas de mémoire de masse.  Thus, since the file is virtual and associated with a portion of the memory allocated to the first process, this file does not require mass memory.
De façon optionnelle, l'installation informatique comporte au moins des premier et deuxième ordinateurs, sur lesquels s'exécutent respectivement les premier et deuxième processus, et le système de fichiers est un système de fichiers distribué de sorte que le fichier soit accessible à partir de chacun des premier et deuxième ordinateurs.  Optionally, the computer installation comprises at least first and second computers, on which the first and second processes respectively execute, and the file system is a distributed file system so that the file is accessible from each of the first and second computers.
De façon optionnelle également, une deuxième mémoire de l'installation informatique est allouée au deuxième processus pour son exécution, le procédé comportant en outre les étapes suivantes :  Optionally also, a second memory of the computer installation is allocated to the second process for its execution, the method further comprising the following steps:
- le fichier est mappé dans la deuxième mémoire de manière à obtenir un fichier mappé en mémoire,  the file is mapped in the second memory so as to obtain a file mapped in memory,
- le deuxième processus tente d'accéder à des données du fichier mappé en mémoire, ces données n'ayant pas encore été copiées dans le fichier mappé en mémoire, l'étape de réception par le système de fichiers de la demande de lecture étant réalisée en réponse à cette tentative d'accès, the second process attempts to access data from the file mapped in memory, these data having not yet been copied to the file mapped in memory, the step of reception by the file system of the read request being carried out in response to this access attempt,
- après l'étape de récupération des données par le système de fichiers, les données récupérées sont copiées dans le fichier mappé en mémoire pour que le deuxième processus y accède. - After the data recovery step by the file system, the recovered data is copied to the mapped file in memory for the second process to access.
De façon optionnelle également, le fichier est associé à des permissions, le procédé comportant en outre, avant l'étape de récupération des données par le système de fichiers :  Optionally also, the file is associated with permissions, the method further comprising, before the step of recovering data by the file system:
- la vérification que les permissions associées au fichier permettent au deuxième processus d'y accéder en lecture.  - checking that the permissions associated with the file allow the second process to read it.
De façon optionnelle également, le procédé comporte en outre la création d'un chemin de répertoires au bout duquel le fichier est placé. De façon optionnelle également, le premier ordinateur appartient à un groupe d'ordinateurs de l'installation informatique et un des répertoires du chemin correspond à ce groupe. Also optionally, the method further includes creating a directory path after which the file is placed. Optionally also, the first computer belongs to a computer group of the computer installation and one of the directories of the path corresponds to this group.
L'invention a également pour objet un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions pour l'exécution des étapes d'un procédé selon l'invention, lorsque ledit programme est exécuté sur un ordinateur.  The invention also relates to a computer program downloadable from a communication network and / or recorded on a computer readable medium and / or executable by a processor, characterized in that it comprises instructions for the execution of steps of a method according to the invention, when said program is executed on a computer.
L'invention a également pour objet une installation informatique dans laquelle des premier et deuxième processus sont destinés à s'exécuter, comportant :  The invention also relates to a computer installation in which first and second processes are intended to execute, comprising:
- une première mémoire destinée à être allouée au premier processus pour son exécution,  a first memory intended to be allocated to the first process for its execution,
- un système de fichiers conçu pour créer un fichier, recevoir une demande de lecture de données dans le fichier, et, en réponse à la demande de lecture, récupérer les données pour que le deuxième processus puisse y accéder,  a file system designed to create a file, to receive a request to read data in the file, and, in response to the read request, to retrieve the data so that the second process can access it,
l'installation informatique étant caractérisée en ce que le fichier est un fichier virtuel associé à une partie de la première mémoire, et en ce que le système de fichiers est conçu pour récupérer les données depuis la partie de la première mémoire. the computer installation being characterized in that the file is a virtual file associated with a portion of the first memory, and in that the file system is adapted to recover the data from the portion of the first memory.
L'invention sera mieux comprise à l'aide de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés dans lesquels :  The invention will be better understood with the aid of the description which follows, given solely by way of example and with reference to the appended drawings in which:
- la figure 1 représente schématiquement la structure générale d'une installation informatique, selon un mode de réalisation de l'invention, - la figure 2 illustre les étapes successives d'un procédé de communication entre processus, selon un mode de réalisation de l'invention, et FIG. 1 diagrammatically represents the general structure of a computer installation, according to one embodiment of the invention, FIG. 2 illustrates the successive steps of a process of communication between processes, according to an embodiment of the invention. invention, and
- la figure 3 est un exemple d'arborescence d'un système de fichiers utilisée dans le procédé de la figure 2. FIG. 3 is an example of a tree of a file system used in the method of FIG. 2.
En référence à la figure 1 , une installation informatique 100 mettant en œuvre l'invention va à présent être décrite.  With reference to FIG. 1, a computer installation 100 embodying the invention will now be described.
L'installation électrique 100 comporte plusieurs ordinateurs, dont deux ordinateurs 1021 ; 1022. L'installation électrique 100 comporte en outre un réseau 104 par lequel les ordinateurs, et en particuliers les deux ordinateurs 1021 ; 1022, sont connectés les uns aux autres. Chaque ordinateur 1021 ; 1022 comporte une interface réseau 1041 ; 1042 par laquelle le premier ordinateur 1021 ; respectivement le deuxième ordinateur 1022, est connecté au réseau 104. The electrical installation 100 comprises several computers, including two computers 102 1; 102 2 . The electrical installation 100 further comprises a network 104 by which the computers, and in particular the two computers 102 1; 102 2 , are connected to each other. Each computer 102 1; 102 2 comprises a network interface 104 1; 104 2 by which the first computer 102 1; respectively the second computer 102 2 , is connected to the network 104.
En outre, chaque ordinateur 1021 ; 1022 comporte une unité de traitement centrale 1061 ; 1062 et une mémoire principale 1081 ; 1082. L'unité de traitement centrale 1061 ; 1062 comporte par exemple un processeur et la mémoire principale 1081 ; 1082 comporte par exemple une mémoire volatile, par exemple de type RAM (de l'anglais « Random Access Memory »). In addition, each computer 102 1; 102 2 comprises a central processing unit 106 1; 106 2 and a main memory 108 1; 108 2 . The central processing unit 106 1; 106 2 comprises for example a processor and the main memory 108 1; 108 2 comprises for example a volatile memory, for example RAM type (of the English "Random Access Memory").
En outre, chaque ordinateur 1021 ; 1022 comporte une unité de stockage de masse 1 1 C , 1 102 non-volatile, telle qu'un disque dur. In addition, each computer 102 1; 102 2 comprises a mass storage unit 1 1 C, 1 10 2 non-volatile, such as a hard disk.
De manière générale, l'unité de traitement centrale 1061 ; 1062 de chaque ordinateur 1021 ; 1022 est destinée à exécuter des instructions de programmes d'ordinateur. Chaque programme d'ordinateur en cours d'exécution, appelé processus, se voit allouer une mémoire pour son exécution. Cette mémoire s'étend au moins sur la mémoire principale 108i ,1082 et est composée d'adresses virtuelles, c'est-à-dire ne correspondant pas à des adresses physiques. Cela permet en particulier d'utiliser des morceaux disjoints de mémoire principale 108i , 1082, voire des morceaux de mémoire de masse (comme l'unité de stockage 1 10i, 1 102), tandis que le processus pense avoir accès à un bloc continu de mémoire principale. Généralement, la mémoire virtuelle est formée de zones de même taille, appelées pages. In general, the central processing unit 106 1; 106 2 of each computer 102 1; 102 2 is for executing computer program instructions. Each running computer program, called process, is allocated a memory for its execution. This memory extends at least on the main memory 108i, 108 2 and consists of virtual addresses, that is to say do not correspond to physical addresses. This makes it possible in particular to use disjoint pieces of main memory 108i, 108 2 , or even pieces of mass memory (such as storage unit 1 10i, 1 10 2 ), while the process thinks it has access to a block continuous main memory. Generally, virtual memory is made up of areas of the same size, called pages.
Chaque ordinateur 1021 ; 1022 comporte en outre une unité de gestion de mémoire 1 121 ; 1 122 conçue notamment pour convertir les adresses virtuelles auxquelles les processus tente d'accéder, en adresses physiques. Each computer 102 1; 102 2 further comprises a memory management unit 1 12 1; 1 12 2 designed in particular to convert the virtual addresses that processes try to access into physical addresses.
Dans l'exemple décrit, les ordinateurs 1021 ; 1022 exécutent chacun un système d'exploitation SE1 , SE2. Ils exécutent en outre un système de fichiers SF1 , SF2 gérant une arborescence A de répertoires et fichiers partant d'un répertoire racine (« root » en anglais). De manière générale, un système de fichiers regroupe un ensemble de mécanismes et de règles permettant de stocker et de retrouver des données. Dans l'exemple décrit, le système de fichiers SF1 , SF2 est un système de fichiers distribué comportant une partie exécutée sur chaque ordinateur de l'installation informatique 100, et en particulier une partie SF1 exécutée par l'ordinateur 1021 ; et une partie SF2 exécutée par l'ordinateur 1022. Le système de fichiers SF1 , SF2 est conçu pour mettre en œuvre des mécanismes de synchronisation entre ses parties SF1 , SF2 au travers du réseau 104, afin de présenter la même arborescence A sur chaque ordinateur 1021 ; 1022. Dans l'exemple décrit, le système de fichiers SF1 , SF2 est représenté comme distinct des systèmes d'exploitation SE1 , SE2. Cependant, le système de fichiers peut également être intriqué dans les systèmes d'exploitation SE1 , SE2, de sorte qu'il peut être difficile de les distinguer. Dans ce cas, les systèmes d'exploitation SE1 , SE2 eux-mêmes peuvent être considérés comme formant le système de fichiers SF1 , SF2. Par ailleurs, l'arborescence A peut être placée dans une autre arborescence de système de fichiers (tel qu'un système de fichiers « réels », c'est-à-dire de fichiers stockés dans une mémoire de masse non volatile, telle que les disques durs 1 101 , 1 102), c'est-à-dire que le répertoire racine de l'arborescence A correspond à un répertoire de cette autre arborescence. In the example described, the computers 102 1; 102 2 each execute an operating system SE1, SE2. They also run a file system SF1, SF2 managing a tree A directories and files from a root directory ("root" in English). In general, a file system is a collection of mechanisms and rules for storing and retrieving data. In the example described, the file system SF1, SF2 is a distributed file system comprising a part executed on each computer of the computer installation 100, and in particular a part SF1 executed by the computer 102 1; and a portion SF2 executed by the computer 102 2 . The file system SF1, SF2 is designed to implement synchronization mechanisms between its parts SF1, SF2 through the network 104, in order to present the same tree A on each computer 102 1; 102 2 . In the example described, the file system SF1, SF2 is shown as distinct from the operating systems SE1, SE2. However, the file system may also be entangled in the SE1, SE2 operating systems, so that it can be difficult to distinguish them. In this case, the operating systems SE1, SE2 themselves can be considered as forming the file system SF1, SF2. In addition, the tree A can be placed in another file system tree (such as a "real" file system, ie files stored in a non-volatile mass memory, such as the hard disks 1 10 1 , 1 10 2 ), that is to say that the root directory of the tree A corresponds to a directory of this other tree.
En outre, dans l'ordinateur 1021 ; une mémoire M1 est allouée à un processus P1 pour son exécution. Cette mémoire M1 comporte une zone mémoire ZM1 que le processus P1 est conçu pour partager avec d'autres processus. La zone mémoire ZM1 est une partie de la mémoire M1 ayant, sur son étendue, les mêmes caractéristiques (par exemple, dont seul l'accès en lecture seule est autorisé) et/ou comportant des données formant un ou plusieurs objets informatiques (par exemple, une pile (« stack » en anglais), un fichier mappé en mémoire à partir d'un disque dur ou bien un tableau d'informations gérées ensemble). In addition, in the computer 102 1; a memory M1 is allocated to a process P1 for its execution. This memory M1 has a memory zone ZM1 that the process P1 is designed to share with other processes. The memory zone ZM1 is a part of the memory M1 having, in its extent, the same characteristics (for example, of which only read-only access is allowed) and / or comprising data forming one or more computer objects (for example , a stack ("stack" in English), a file mapped in memory from a hard disk or an array of information managed together).
En outre, dans l'ordinateur 1022, une mémoire M2 est allouée à un processusIn addition, in the computer 102 2 , a memory M2 is allocated to a process
P2 pour son exécution. P2 for its execution.
Afin que le processus P1 puisse partager des données avec le processus P2, l'arborescence A comporte un fichier F1 , qui est un fichier virtuel associé à la zone mémoire ZM1 , au lieu d'être associé à des données sur une mémoire de masse comme pour un fichier classique. Le fichier F1 est en outre mappé dans la mémoire M2, de manière à obtenir un fichier mappé en mémoire F1 *. So that the process P1 can share data with the process P2, the tree A comprises a file F1, which is a virtual file associated with the memory zone ZM1, instead of being associated with data on a mass memory as for a classic file. The file F1 is further mapped in the memory M2, so as to obtain a file mapped in memory F1 * .
L'installation informatique 100 comporte en outre un répartiteur de charge 1 14 conçu pour distribuer les processus, tels que les processus P1 , P2, entre les différents ordinateurs, tels que les ordinateurs 1021 ; 1022 de l'installation informatique 100 et pour migrer les processus d'un ordinateur à l'autre en fonction des variations de charge sur les ordinateurs. Dans l'exemple décrit, le répartiteur de charge 1 14 est un programme d'ordinateur exécuté par l'ordinateur 102 The computer installation 100 further comprises a load balancer 1 14 designed to distribute the processes, such as the processes P1, P2, between the different computers, such as the computers 102 1; 102 2 of the computer installation 100 and to migrate the processes from one computer to another depending on the load variations on the computers. In the example described, the load balancer 1 14 is a computer program executed by the computer 102
En référence à la figure 2, un procédé 200 de communication entre les premier et deuxième processus P1 , P2 va à présent être décrit. Au cours d'une étape 202, afin de mettre à disposition la zone mémoire ZM1 , le processus P1 demande au système de fichiers SF1 , SF2 la création d'un fichier F1 virtuel et son association avec la zone mémoire ZM1 . With reference to FIG. 2, a communication method 200 between the first and second processes P1, P2 will now be described. During a step 202, in order to make the memory zone ZM1 available, the process P1 requests the file system SF1, SF2 to create a virtual F1 file and its association with the memory zone ZM1.
Au cours d'une étape 204, le système de fichiers SF1 , SF2 crée le fichier F1 virtuel et l'associe à la zone mémoire ZM1 .  During a step 204, the file system SF1, SF2 creates the virtual F1 file and associates it with the memory zone ZM1.
Pour cela, dans l'exemple décrit, un chemin de répertoires débutant par le répertoire racine est créé dans l'arborescence A du système de fichiers SF1 , SF2, et le fichier F1 est placé au bout de ce chemin. Bien sûr si tout ou partie des répertoires du chemin existent déjà, ils sont réutilisés.  For this purpose, in the example described, a directory path beginning with the root directory is created in the tree A of the file system SF1, SF2, and the file F1 is placed at the end of this path. Of course if all or part of the path directories already exist, they are reused.
Par exemple, le chemin est le suivant : Répertoire_Racine For example, the path is: Root_Directory
/Groupe_de_programme /Sous_Groupe_de_Programme /Programme/ Program_Group / Program_Group / Program
/Groupe_de_processus /Sous_Groupe_de_Processus /Processus /Instance /Domaine /Sous_Domaine, et le fichier virtuel F1 est placé dans le répertoire /Sous_Domaine. Bien sûr, les noms des répertoires indiqués ci-dessus sont des noms génériques, qui sont en pratique remplacés par des noms usuels. En outre, dans d'autres modes de réalisation, un ou plusieurs de répertoires précédents peuvent être omis. Par exemple, les répertoires définissant des sous-groupes pourraient être omis, lorsque les processus répertoriés par l'arborescence A sont peu nombreux. / Process_group / Sub_Process_Group / Process / Instance / Domain / Sub_Domain, and the F1 virtual file is placed in the /Domain_directory directory. Of course, the names of the directories listed above are generic names, which are in practice replaced by common names. In addition, in other embodiments, one or more of previous directories may be omitted. For example, directories defining subgroups could be omitted when the processes listed by tree A are few.
Chacun des répertoires du chemin est associé à un identifiant universel unique (UUID, de l'anglais « Universally Unique IDentifier »), le terme unique étant à comprendre dans le sens de « unicité très probable ».  Each of the directories of the path is associated with a unique universal identifier (UUID), the unique term to be understood in the sense of "very likely uniqueness".
Les noms des répertoires /Groupe_de_programme The names of the directories / Program_group
/Sous_Groupe_de_Programme /Programme sont par exemple définis par un administrateur. Chaque répertoire /Programme représente un programme, c'est-à- dire un ensemble d'instructions qui n'est pas en cours d'exécution. Les répertoires /Groupe_de_programme /Sous_Groupe_de_Programme permettent de classer les programmes. / Sub_Group_of_Program / Program are for example defined by an administrator. Each directory / program represents a program, that is, a set of instructions that is not running. The directories / Program_Group / SubGroup_Group are used to classify programs.
Les noms des répertoires /Groupe_de_processus et /Sous_Groupe_de_Processus sont par exemple définis par le répartiteur de charge 1 14 et correspondent respectivement à des groupes d'ordinateurs et des sous- groupes d'ordinateurs auxquels appartient l'ordinateur exécutant le processus considéré. Ainsi, dans l'exemple décrit, le fichier F1 est placé dans les répertoires /Groupe_de_processus et /Sous_Groupe_de_Processus correspondant respectivement au groupe d'ordinateur et au sous-groupe d'ordinateurs auquel appartient l'ordinateur ^ 02^ . De préférence, ces répertoires changent donc à chaque fois que le processus est migré d'un ordinateur à l'autre de l'installation informatique 100 par le répartiteur de charge 1 14. The names of the directories / Process_group and / Sub_Process_Group are for example defined by the load balancer 1 14 and correspond respectively to groups of computers and subgroups of computers to which belongs the computer running the process. Thus, in the example described, the file F1 is placed in the directories / Process_group and / Sub_Process_Group respectively corresponding to the computer group and the subgroup of computers to which belongs to the computer ^ 02 ^. Preferably, these directories therefore change each time the process is migrated from one computer to another of the computer installation 100 by the load balancer 1 14.
Les noms des répertoires /Processus et /Instance sont par exemple définis par le système d'exploitation SE1 de l'ordinateur 102Ï sur lequel le processus P1 s'exécute. The names of the directories / Process and / Instance are for example defined by the SE1 operating system of the computer on which the 102 Ï P1 process is running.
Les noms des répertoires /Domaine et /Sous_Domaine sont par exemple définis par le processus P1 . Le répertoire /Domaine représente une organisation logique des zones mémoire et le répertoire /Sous_Domaine est utilisé lorsque les zones mémoire sont nombreuses et doivent donc être classées en plusieurs niveaux de hiérarchie.  For example, the names of the / Domain and / Sub_Domain directories are defined by the P1 process. The directory / Domain represents a logical organization of the memory areas and the directory / Sub_Domain is used when the memory areas are numerous and must therefore be classified into several levels of hierarchy.
Ainsi, l'arborescence A permet de regrouper les éléments similaires et de les organiser dans une hiérarchie logique.  Thus, the tree A allows to group similar elements and to organize them in a logical hierarchy.
Le nom du fichier F1 , qui représente la zone mémoire ZM1 , est par exemple défini par le système d'exploitation SE1 de l'ordinateur 102Ï sur lequel le processus P1 s'exécute. The name of the file F1, which is the memory area ZM1, is for example defined by the SE1 operating system of the computer 102 Ï on which the P1 process is running.
Le fichier F1 et les répertoires du chemin sont associés à des permissions respectives, permettant de contrôler quel processus peut y accéder. Ces permissions sont par exemple de type UNIX, c'est-à-dire que chaque fichier/répertoire appartient à un utilisateur (appelé propriétaire) appartenant à un groupe d'utilisateurs et que des permissions en lecture, écriture et exécution sont définies pour le propriétaire, pour les utilisateurs de son groupe et pour les autres utilisateurs. Bien sûr des permissions plus détaillées peuvent être utilisées à la place, par exemple de type liste de contrôle d'accès (« Access Control List » en anglais). En outre, de préférence, les permissions d'un objet (répertoire/fichier) de l'arborescence A sont au moins aussi restrictives que les permissions de l'objet parent.  The file F1 and the directories of the path are associated with respective permissions, allowing to control which process can access it. These permissions are for example UNIX type, that is to say that each file / directory belongs to a user (called owner) belonging to a group of users and that read, write and execute permissions are defined for the user. owner, for users in his group and for other users. Of course more detailed permissions may be used instead, for example of the type of access control list ("Access Control List"). In addition, preferably, the permissions of an object (directory / file) of the tree A are at least as restrictive as the permissions of the parent object.
Au cours d'une étape 206, le processus P2 demande au système d'exploitation SE2 de mapper le fichier F1 dans sa mémoire M2.  During a step 206, the process P2 requests the operating system SE2 to map the file F1 in its memory M2.
Au cours d'une étape 208, le système de fichiers SF1 , SF2 vérifie que les permissions associées au fichier F1 permettent au processus P2 d'y accéder en lecture.  During a step 208, the file system SF1, SF2 verifies that the permissions associated with the file F1 allow the P2 process to access it for reading.
Si c'est le cas, au cours d'une étape 210, le système d'exploitation SE2 mappe le fichier F1 dans la mémoire M2 de manière à obtenir un fichier mappé en mémoire F1 *. Au cours d'une étape 212, le deuxième processus P2 tente d'accéder à des données D du fichier mappé en mémoire F1 *. If this is the case, during a step 210, the operating system SE2 maps the file F1 in the memory M2 so as to obtain a file mapped in memory F1 * . During a step 212, the second process P2 attempts to access data D of the file mapped in memory F1 * .
Cette tentative d'accès passe par l'unité de gestion de mémoire 1 122 qui détecte, au cours d'une étape 214, si les données D au déjà été copiées dans le fichier mappé en mémoire F1 *. This access attempt goes through the memory management unit 1 12 2 which detects, during a step 214, whether the data D has already been copied to the file mapped in memory F1 * .
Si c'est le cas, au cours d'une étape 216, l'unité de gestion de mémoire 1 122 fournit l'adresse physique correspondant à l'adresse virtuelle des données D pour que le processus P2 y accède. Sinon, au cours d'une étape 218, l'unité de gestion de mémoire 1 122 détecte un défaut de page et demande au système de fichiers SF1 , SF2 de lui fournir la page manquante comportant les données D à partir du fichier F1 . En outre, le système de fichiers SF1 , SF2 reçoit cette demande. If it is the case, during a step 216, the memory management unit 1 12 2 provides the physical address corresponding to the virtual address of the data D so that the process P2 accesses it. Otherwise, during a step 218, the memory management unit 12 2 detects a page fault and requests the file system SF1, SF2 to provide it with the missing page containing the data D from the file F1. In addition, the SF1, SF2 file system receives this request.
En réponse à la demande de lecture, au cours d'une étape 220, le système de fichiers SF1 , SF2 récupère les données D (dans l'exemple décrit, la page manquante), dans la partie de mémoire associée à ce fichier F1 , c'est-à-dire dans l'exemple décrit à partir de la zone mémoire ZM1 , pour que le deuxième processus P2 puisse y accéder.  In response to the read request, during a step 220, the file system SF1, SF2 retrieves the data D (in the example described, the missing page), in the memory part associated with this file F1, that is to say in the example described from the memory zone ZM1, so that the second process P2 can access it.
Au cours d'une étape 222, le système de fichiers SF1 , SF2 fournit les données D (la page manquante) à l'unité de gestion de mémoire 1 122. During a step 222, the file system SF1, SF2 supplies the data D (the missing page) to the memory management unit 1 12 2 .
Au cours d'une étape 224, l'unité de gestion de mémoire 1 122 copie les données D (la page manquante) dans le fichier mappé en mémoire F1 * et fournit au processus l'adresse physique de ces données D. During a step 224, the memory management unit 12 2 copies the data D (the missing page) into the file mapped in memory F1 * and supplies the process with the physical address of these data D.
Au cours d'une étape 226, le deuxième processus P2 accède aux données D dans le fichier mappé en mémoire F1 *. During a step 226, the second process P2 accesses the data D in the file mapped in memory F1 * .
Les étapes 202 à 226 sont exécutées à chaque fois que le processus P2 tente d'accéder à des données du fichier mappé en mémoire F1 *. Steps 202 to 226 are executed each time the process P2 attempts to access data from the file mapped to memory F1 * .
Par ailleurs, lorsque le processus P1 est arrêté, le système de fichiers SF1 , SF2 est de préférence conçu pour transformer le fichier F1 virtuel en fichier F1 réei réel présent sur un dispositif de stockage de masse, de préférence non volatile, tel que l'un des disques durs 1 101 ; 1 102. Le mécanisme d'échange (« swap » en anglais) peut par exemple être utilisé pour transférer les données de la zone mémoire ZM1 dans le fichier F1 rée|. Ainsi, les données de la zone mémoire ZM1 restent accessibles par d'autres processus, même lorsque le processus P1 n'existe plus. Le procédé 200 peut être alors à nouveau utilisé, sauf qu'à étape 220, le système de fichiers SF1 , SF2 récupère les données D (dans l'exemple décrit, la page manquante), dans le fichier F1 réei présent dans une mémoire de masse. En outre, l'installation informatique 100 comporte de préférence un mécanisme de cohérence conçu pour assurer la cohérence entre les données D présentes dans la zone mémoire ZM1 et leur copie dans le fichier mappé en mémoire F1 *. Cette cohérence peut s'effectuer pour la zone mémoire ZM1 dans son ensemble. Alternativement, la zone mémoire ZM1 peut être divisée en unités de cohérence de taille prédéfinie, par exemple 4 ko. Chaque unité de cohérence peut alors être repérée dans la zone mémoire ZM1 par un décalage (« offset » en anglais), par exemple pris par rapport au début de la zone mémoire ZM1 . Dans le cas où des unités de cohérence sont utilisées, la cohérence peut s'effectuer sur chaque unité de cohérence. Dans ce cas, un fichier virtuel peut être créé pour chaque unité de cohérence et ces fichiers virtuels sont placés dans un répertoire représentant la zone mémoire à laquelle les unités de cohérence appartiennent. Dans l'exemple décrit, le fichier virtuel F1 serait associé à une des unités de cohérence et placé dans un répertoire /Zone_Mémoire placé dans le répertoire /Domaine ou bien le répertoire /Sous_Domaine si ce dernier est utilisé. Furthermore, when the P1 process is stopped, the SF1 file system, SF2 is preferably designed to transform the virtual file F1 REE file F1 real i present on a mass storage device, preferably non-volatile, such as one of the hard disks 1 10 1; 1 10 2 . The exchange mechanism ("swap" in English) can for example be used to transfer the data of the memory zone ZM1 in the file F1 rée |. Thus, the data of the memory zone ZM1 remains accessible by other processes, even when the process P1 no longer exists. The method 200 can then be used again, except that in step 220, the file system SF1, SF2 retrieves the data D (in the example described, the missing page), in the file F1 rée i present in a memory massive. In addition, the computer installation 100 preferably comprises a coherence mechanism designed to ensure consistency between the data D present in the memory zone ZM1 and their copy in the file mapped in memory F1 * . This consistency can be done for the memory zone ZM1 as a whole. Alternatively, the memory zone ZM1 can be divided into coherence units of predefined size, for example 4 kb. Each coherence unit can then be located in the memory zone ZM1 by an offset ("offset" in English), for example taken from the beginning of the memory zone ZM1. In the case where coherency units are used, coherence can be performed on each coherency unit. In this case, a virtual file can be created for each coherency unit and these virtual files are placed in a directory representing the memory area to which the coherency units belong. In the example described, the virtual file F1 would be associated with one of the coherency units and placed in a directory / Memory_zone placed in the / Domain directory or the / Sub_Domain directory if the latter is used.
Ainsi, de manière générale, chaque fichier virtuel est associé à une partie de la mémoire M1 du premier processus P1 , par exemple la zone mémoire ZM1 ou bien une unité de cohérence de la zone mémoire ZM1 .  Thus, in general, each virtual file is associated with a part of the memory M1 of the first process P1, for example the memory zone ZM1 or else a coherence unit of the memory zone ZM1.
En référence à la figure 3, un exemple d'arborescence A est illustré. Les références utilisées sont les suivantes :  With reference to FIG. 3, an example tree A is illustrated. The references used are the following:
302 : répertoire racine ; 304 - 308 : répertoires de groupe d'application ; 310 - 312 : répertoires de sous-groupe d'application ; 314 - 318 : répertoires d'application ; 320 : répertoire de groupe de processus ; 322 : répertoire de sous-groupe de processus ; 324 - 330 : répertoires de processus ; 332 - 336 : répertoires d'instance ; 338 - 340 : répertoires de domaine ; 342 : répertoire de sous-domaine ; 344 - 348 : fichiers virtuels respectivement associés à des parties de la mémoire virtuelle de l'instance 336 du processus 328.  302: root directory; 304 - 308: Application Group Directories; 310 - 312: application subgroup directories; 314 - 318: application directories; 320: process group directory; 322: process subgroup directory; 324 - 330: process directories; 332 - 336: Instance Directories; 338-340: domain directories; 342: subdomain directory; 344 - 348: virtual files respectively associated with portions of the virtual memory of the instance 336 of the process 328.
Les répertoires 302, 306, 312, 316, 320, 322, 328, 336, 338, 342 forment le chemin au bout duquel les fichiers virtuels 344, 346, 348 sont placés. Les fichiers virtuels 344, 346, 348 sont par exemple respectivement associés à trois zones mémoire de la mémoire de l'instance 336 du processus 328.  Directories 302, 306, 312, 316, 320, 322, 328, 336, 338, 342 form the path after which the virtual files 344, 346, 348 are placed. The virtual files 344, 346, 348 are for example respectively associated with three memory areas of the memory of the instance 336 of the process 328.
Il apparaît clairement qu'une installation informatique 100 et un procédé 200 tels que ceux décrits précédemment permettent de transmettre des données du processus P1 vers le processus P2. Bien sûr, un procédé similaire peut être mis en œuvre pour permettre la transmission de données du processus P2 vers le processus P1 , en utilisant un fichier virtuel F2 associé à une partie ZM2 de la mémoire M2 et mappé dans la mémoire M1 du premier processus P1 . It is clear that a computer installation 100 and a method 200 such as those described above make it possible to transmit data from the process P1 to the process P2. Of course, a similar method can be implemented to allow the transmission of data from the P2 process to the process P1, using a virtual file F2 associated with a part ZM2 of the memory M2 and mapped in the memory M1 of the first process P1.
On notera par ailleurs que l'invention n'est pas limitée aux modes de réalisation décrits précédemment. Il apparaîtra en effet à l'homme de l'art que diverses modifications peuvent être apportées aux modes de réalisation décrits ci- dessus, à la lumière de l'enseignement qui vient de lui être divulgué.  Note also that the invention is not limited to the embodiments described above. It will be apparent to those skilled in the art that various modifications can be made to the embodiments described above, in the light of the teaching just disclosed.
En particulier, bien que les systèmes d'exploitation SE1 , SE2, le système de fichiers SF1 , SF2, et le répartiteur de charge 1 14 aient été décrits comme étant des programmes d'ordinateur, l'invention n'est pas limitée à ce cas de figure. En effet, les fonctions associées aux instructions de ces programmes d'ordinateur pourraient être au moins en partie micro programmées ou micro câblées dans des circuits intégrés dédiés. Ainsi, en variante, chacun des systèmes d'exploitation SE1 , SE2, du système de fichiers SF1 , SF2, et du répartiteur de charge 1 14 pourrait être remplacé par un dispositif électronique composé uniquement de circuits numériques (sans programme d'ordinateur) pour la réalisation des mêmes fonctions.  In particular, although the operating systems SE1, SE2, the file system SF1, SF2, and the load balancer 1 14 have been described as computer programs, the invention is not limited to case. Indeed, the functions associated with the instructions of these computer programs could be at least partly micro programmed or micro wired in dedicated integrated circuits. Thus, alternatively, each of the operating systems SE1, SE2, the file system SF1, SF2, and the load distributor 1 14 could be replaced by an electronic device composed only of digital circuits (without a computer program) for performing the same functions.
De même, tout ou partie des fonctions des unités de gestion de mémoire '\ '\ 2 , 1 122 peuvent être réalisées par des programmes d'ordinateur comportant des instructions pour la réalisation de leurs fonctions. Similarly, all or part of the functions of memory management units ' \ ' \ 2, 1 12 2 can be realized by computer programs comprising instructions for carrying out their functions.
Dans les revendications qui suivent, les termes utilisés ne doivent pas être interprétés comme limitant les revendications aux modes de réalisation exposés dans la présente description, mais doivent être interprétés pour y inclure tous les équivalents que les revendications visent à couvrir du fait de leur formulation et dont la prévision est à la portée de l'homme de l'art en appliquant ses connaissances générales à la mise en œuvre de l'enseignement qui vient de lui être divulgué.  In the following claims, the terms used are not to be construed as limiting the claims to the embodiments set forth in this specification, but should be interpreted to include all the equivalents that the claims are intended to cover because of their formulation and whose prediction is within the reach of those skilled in the art by applying his general knowledge to the implementation of the teaching that has just been disclosed to him.

Claims

REVENDICATIONS
1 . Procédé (200) de communication entre des premier et deuxième processus en cours d'exécution dans une installation informatique (100) comportant une première mémoire (M1 ) allouée au premier processus pour son exécution, cette première mémoire (M1 ) étant composée d'adresses virtuelles destinées à être converties en adresses physiques par une unité de gestion de mémoire (1 12^, le procédé (200) comportant les étapes suivantes : 1. Method (200) of communication between first and second processes running in a computer installation (100) having a first memory (M1) allocated to the first process for its execution, said first memory (M1) being composed of addresses virtual devices to be converted to physical addresses by a memory management unit (112), the method (200) comprising the steps of:
un système de fichiers (SF1 , SF2) de l'installation informatique (100) crée (204) un fichier (F1 ),  a file system (SF1, SF2) of the computer installation (100) creates (204) a file (F1),
le système de fichiers (SF1 , SF2) reçoit (218) une demande de lecture de données dans le fichier (F1 ),  the file system (SF1, SF2) receives (218) a request to read data from the file (F1),
en réponse à la demande de lecture, le système de fichiers (SF1 , SF2) récupère (220) les données pour que le deuxième processus puisse y accéder,  in response to the read request, the file system (SF1, SF2) retrieves (220) the data for the second process to access it,
le procédé (200) étant caractérisé en ce que le fichier (F1 ) est un fichier virtuel associé à une partie (ZM1 ) de la première mémoire (M1 ), et en ce que le système de fichiers (SF1 , SF2) récupère les données depuis la partie (ZM1 ) de la première mémoire (M1 ) en laissant le fichier (F1 ) virtuel. the method (200) being characterized in that the file (F1) is a virtual file associated with a part (ZM1) of the first memory (M1), and in that the file system (SF1, SF2) retrieves the data from the part (ZM1) of the first memory (M1) leaving the file (F1) virtual.
2. Procédé (200) selon la revendication 1 , dans lequel l'installation informatique (100) comporte au moins des premier et deuxième ordinateurs (1021 ; 1022), sur lesquels s'exécutent respectivement les premier et deuxième processus, et dans lequel le système de fichiers (SF1 , SF2) est un système de fichiers distribué de sorte que le fichier (F1 ) soit accessible à partir de chacun des premier et deuxième ordinateurs (1021 ; 1022). The method (200) of claim 1, wherein the computing facility (100) includes at least first and second computers (102 1; 102 2 ), on which the first and second processes respectively execute, and in which wherein the file system (SF1, SF2) is a distributed file system such that the file (F1) is accessible from each of the first and second computers (102 1; 102 2 ).
3. Procédé (200) selon la revendication 1 ou 2, dans lequel une deuxième mémoire (M2) de l'installation informatique (100) est allouée au deuxième processus pour son exécution, cette deuxième mémoire (M2) étant composée d'adresses virtuelles destinées à être converties en adresses physiques par une unité de gestion de mémoire (1 122), le procédé (200) comportant en outre les étapes suivantes : 3. Method (200) according to claim 1 or 2, wherein a second memory (M2) of the computer installation (100) is allocated to the second process for its execution, the second memory (M2) being composed of virtual addresses. intended to be converted to physical addresses by a memory management unit (12 2 ), the method (200) further comprising the steps of:
le fichier (F1 ) est mappé (210) dans la deuxième mémoire (M2) de manière à obtenir un fichier mappé en mémoire (F1 *), le deuxième processus tente d'accéder (212) à des données du fichier mappé en mémoire (F1 *), ces données n'ayant pas encore été copiées dans le fichier mappé en mémoire (F1 *), l'étape de réception (218) par le système de fichiers (SF1 , SF2) de la demande de lecture étant réalisée en réponse à cette tentative d'accès, the file (F1) is mapped (210) in the second memory (M2) so as to obtain a file mapped in memory (F1 * ), the second process attempts to access (212) data from the file mapped in memory ( F1 * ), these data have not yet been copied to the file mapped in memory (F1 * ), the reception step (218) by the file system (SF1, SF2) of the read request being performed in response to this access attempt,
après l'étape de récupération (220) des données par le système de fichiers (SF1 , SF2), les données récupérées sont copiées (224) dans le fichier mappé en mémoire (F1 *) pour que le deuxième processus y accède. after the data recovery step (220) by the file system (SF1, SF2), the recovered data is copied (224) to the memory mapped file (F1 * ) for the second process to access.
4. Procédé (200) selon l'une quelconque des revendications 1 à 3, dans lequel le fichier (F1 ) est associé à des permissions, le procédé (200) comportant en outre, avant l'étape de récupération (220) des données par le système de fichiers (SF1 . SF2) :  4. Method (200) according to any one of claims 1 to 3, wherein the file (F1) is associated with permissions, the method (200) further comprising, before the step of recovering (220) data by the file system (SF1. SF2):
la vérification que les permissions associées au fichier (F1 ) permettent au deuxième processus (P2) d'y accéder en lecture.  checking that the permissions associated with the file (F1) allow the second process (P2) to access it for reading.
5. Procédé (200) selon l'une quelconque des revendications 1 à 4, comportant en outre la création d'un chemin de répertoires au bout duquel le fichier (F1 ) est placé.  5. Method (200) according to any one of claims 1 to 4, further comprising the creation of a directory path at the end of which the file (F1) is placed.
6. Procédé (200) selon les revendications 2 et 5 prises ensemble, dans lequel le premier ordinateur (102^ appartient à un groupe d'ordinateurs de l'installation informatique (100) et dans lequel un des répertoires du chemin correspond à ce groupe.  Method (200) according to claims 2 and 5 taken together, wherein the first computer (102 ^ belongs to a computer group of the computer installation (100) and in which one of the directories of the path corresponds to that group .
7. Programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions pour l'exécution des étapes d'un procédé (200) selon l'une quelconque des revendications 1 à 6, lorsque ledit programme est exécuté sur un ordinateur.  7. Computer program downloadable from a communication network and / or recorded on a computer-readable medium and / or executable by a processor, characterized in that it comprises instructions for executing the steps of a method ( 200) according to any one of claims 1 to 6, when said program is executed on a computer.
8. Installation informatique (100) dans laquelle des premier et deuxième processus sont destinés à s'exécuter, comportant :  A computer installation (100) in which first and second processes are intended to execute, comprising:
une première mémoire (M1 ) destinée à être allouée au premier processus pour son exécution, cette première mémoire (M1 ) étant composée d'adresses virtuelles destinées à être converties en adresses physiques par une unité de gestion de mémoire (1 12^, un système de fichiers (SF1 , SF2) conçu pour créer un fichier (F1 ), recevoir une demande de lecture de données dans le fichier (F1 ), et, en réponse à la demande de lecture, récupérer les données pour que le deuxième processus puisse y accéder, l'installation informatique (100) étant caractérisée en ce que le fichier (F1 ) est un fichier virtuel associé à une partie (ZM1 ) de la première mémoire (M1 ), et en ce que le système de fichiers (SF1 , SF2) est conçu pour récupérer les données depuis la partie (ZM1 ) de la première mémoire (M1 ) en laissant le fichier (F1 ) virtuel. a first memory (M1) intended to be allocated to the first process for its execution, this first memory (M1) being composed of virtual addresses intended to be converted into physical addresses by a memory management unit (1 12 ^, a system of files (SF1, SF2) designed to create a file (F1), receive a request to read data in the file (F1), and, in response to the read request, retrieve the data so that the second process can to access, the computer installation (100) being characterized in that the file (F1) is a virtual file associated with a part (ZM1) of the first memory (M1), and in that the file system (SF1, SF2) is designed to recover the data from the part (ZM1) of the first memory (M1) leaving the file (F1) virtual.
PCT/FR2018/052657 2017-10-30 2018-10-26 Method of communication between processes, corresponding computer program and computing installation WO2019086786A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP18800729.8A EP3704582A1 (en) 2017-10-30 2018-10-26 Method of communication between processes, corresponding computer program and computing installation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR1771139 2017-10-30
FR1771139A FR3073061B1 (en) 2017-10-30 2017-10-30 PROCESS COMMUNICATION METHOD, COMPUTER PROGRAM AND CORRESPONDING COMPUTER INSTALLATION

Publications (1)

Publication Number Publication Date
WO2019086786A1 true WO2019086786A1 (en) 2019-05-09

Family

ID=61750380

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2018/052657 WO2019086786A1 (en) 2017-10-30 2018-10-26 Method of communication between processes, corresponding computer program and computing installation

Country Status (3)

Country Link
EP (1) EP3704582A1 (en)
FR (1) FR3073061B1 (en)
WO (1) WO2019086786A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050273486A1 (en) * 2004-06-03 2005-12-08 Keith Robert O Jr Virtual distributed file system
US20070277179A1 (en) * 2004-09-29 2007-11-29 Tomoyuki Suzuka Information Processing Apparatus, Communication Processing Method, And Computer Program
US20160077894A1 (en) * 2014-09-17 2016-03-17 Johannes Scheerer Communication infrastructure for virtual machines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050273486A1 (en) * 2004-06-03 2005-12-08 Keith Robert O Jr Virtual distributed file system
US20070277179A1 (en) * 2004-09-29 2007-11-29 Tomoyuki Suzuka Information Processing Apparatus, Communication Processing Method, And Computer Program
US20160077894A1 (en) * 2014-09-17 2016-03-17 Johannes Scheerer Communication infrastructure for virtual machines

Also Published As

Publication number Publication date
FR3073061B1 (en) 2019-11-22
EP3704582A1 (en) 2020-09-09
FR3073061A1 (en) 2019-05-03

Similar Documents

Publication Publication Date Title
US8548957B2 (en) Method and system for recovering missing information at a computing device using a distributed virtual file system
US20150381725A1 (en) Service plan tiering, protection, and rehydration strategies
US9697258B2 (en) Supporting enhanced content searches in an online content-management system
US9189493B2 (en) Object file system
US20170149883A1 (en) Data replication in a data storage system having a disjointed network
Garfinkel et al. An automated solution to the multiuser carved data ascription problem
Fasheh OCFS2: The Oracle clustered file system, version 2
FR3073061B1 (en) PROCESS COMMUNICATION METHOD, COMPUTER PROGRAM AND CORRESPONDING COMPUTER INSTALLATION
WO2021043599A1 (en) Migration of a data blockchain
EP2300944A1 (en) Method and system for synchronizing software modules of a computer system distributed as a cluster of servers, application to data storage
CN106227830A (en) Storage and the method and apparatus reading file
US9524396B2 (en) System that maintains objects created and modified within designated directories on a per-client basis in a network filesystem
EP2556447B1 (en) Management of computer file sharing between at least two devices
US9898485B2 (en) Dynamic context-based data protection and distribution
US10540329B2 (en) Dynamic data protection and distribution responsive to external information sources
WO2021044094A1 (en) Method for managing a data record in a computer system
CN114201474A (en) Data service method and device
EP3239851B1 (en) Management of access to data in a storage system
EP3903210A1 (en) Secure, tracked communication network
WO2019129998A1 (en) Multiple access to a data file stored in a data-storage system associated with a buffer memory space
US7752241B1 (en) Message based file system
EP2353076A1 (en) Method and system for the virtualized storage of a digital data set
US20220197860A1 (en) Hybrid snapshot of a global namespace
WO2010052441A1 (en) Method and system for synchronizing a set of software modules of a computing system distributed as a cluster of servers
FR3094509A1 (en) Redundant data storage system, corresponding method and computer program.

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: 18800729

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018800729

Country of ref document: EP

Effective date: 20200602