EP3704582A1 - Procédé de communication entre processus, programme d'ordinateur et installation informatique correspondants - Google Patents
Procédé de communication entre processus, programme d'ordinateur et installation informatique correspondantsInfo
- Publication number
- EP3704582A1 EP3704582A1 EP18800729.8A EP18800729A EP3704582A1 EP 3704582 A1 EP3704582 A1 EP 3704582A1 EP 18800729 A EP18800729 A EP 18800729A EP 3704582 A1 EP3704582 A1 EP 3704582A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- file
- memory
- data
- computer
- file system
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; 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
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1771139A FR3073061B1 (fr) | 2017-10-30 | 2017-10-30 | Procede de communication entre processus, programme d’ordinateur et installation informatique correspondants |
| PCT/FR2018/052657 WO2019086786A1 (fr) | 2017-10-30 | 2018-10-26 | Procédé de communication entre processus, programme d'ordinateur et installation informatique correspondants |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP3704582A1 true EP3704582A1 (fr) | 2020-09-09 |
Family
ID=61750380
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP18800729.8A Withdrawn EP3704582A1 (fr) | 2017-10-30 | 2018-10-26 | Procédé de communication entre processus, programme d'ordinateur et installation informatique correspondants |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP3704582A1 (fr) |
| FR (1) | FR3073061B1 (fr) |
| WO (1) | WO2019086786A1 (fr) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050273486A1 (en) * | 2004-06-03 | 2005-12-08 | Keith Robert O Jr | Virtual distributed file system |
| JP2006127461A (ja) * | 2004-09-29 | 2006-05-18 | Sony Corp | 情報処理装置、通信処理方法、並びにコンピュータ・プログラム |
| US9483287B2 (en) * | 2014-09-17 | 2016-11-01 | Sap Se | Communication infrastructure for virtual machines |
-
2017
- 2017-10-30 FR FR1771139A patent/FR3073061B1/fr active Active
-
2018
- 2018-10-26 EP EP18800729.8A patent/EP3704582A1/fr not_active Withdrawn
- 2018-10-26 WO PCT/FR2018/052657 patent/WO2019086786A1/fr not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| FR3073061B1 (fr) | 2019-11-22 |
| FR3073061A1 (fr) | 2019-05-03 |
| WO2019086786A1 (fr) | 2019-05-09 |
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 | |
| US9697258B2 (en) | Supporting enhanced content searches in an online content-management system | |
| US11989159B2 (en) | Hybrid snapshot of a global namespace | |
| US9189493B2 (en) | Object file system | |
| US7533133B1 (en) | Externally managed file versions | |
| CN114201474B (zh) | 数据服务方法及装置 | |
| US9177034B2 (en) | Searchable data in an object storage system | |
| Fasheh | OCFS2: The Oracle clustered file system, version 2 | |
| EP4026016A1 (fr) | Migration d'une chaîne de blocs de données | |
| US9898485B2 (en) | Dynamic context-based data protection and distribution | |
| FR2932289A1 (fr) | Procede et systeme de synchronisation de modules logiciels d'un systeme informatique distribue en grappe de serveurs, application au stockage de donnees. | |
| FR3073061B1 (fr) | Procede de communication entre processus, programme d’ordinateur et installation informatique correspondants | |
| WO2011124804A1 (fr) | Gestion de partage de fichiers informatiques entre au moins deux dispositifs | |
| EP2353076A1 (fr) | Procede et systeme de stockage virtualise d'un ensemble de donnees numeriques | |
| WO2019129998A1 (fr) | Accès multiples à un fichier de données stocké dans un système de stockage de données associé à un espace mémoire tampon | |
| US10540329B2 (en) | Dynamic data protection and distribution responsive to external information sources | |
| WO2021044094A1 (fr) | Procede de gestion d'un groupe de donnees dans un systeme informatique | |
| EP3239851B1 (fr) | Gestion de l'accès a des données dans un système de stockage | |
| FR3094509A1 (fr) | Système de stockage redondant de données, procédé et programme d’ordinateur correspondants. | |
| US7752241B1 (en) | Message based file system | |
| WO2020136126A1 (fr) | Reseau de communication securisee et tracee | |
| FR3100350A1 (fr) | migration d’une chaîne de blocs de données | |
| FR3100351A1 (fr) | connexion à chaîne de blocs de données | |
| WO2025155214A1 (fr) | Procédé de verrouillage et appareil de verrouillage pour verrouillage d'arbre de répertoire | |
| WO2015067892A1 (fr) | Procédé de protection de métadonnées |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20200519 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| AX | Request for extension of the european patent |
Extension state: BA ME |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17Q | First examination report despatched |
Effective date: 20220103 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
| 18W | Application withdrawn |
Effective date: 20220510 |