DATA STRUCTURE, MEMORY MEANS AND DEVICE
20220350661 · 2022-11-03
Inventors
- Christian Eltzschig (Berlin, DE)
- Dietrich Kroenke (Berlin, DE)
- Mathias Kraus (Berlin, DE)
- Matthias Killat (Berlin, DE)
- Michael Poehnl (Wurmberg, DE)
Cpc classification
G06F9/52
PHYSICS
International classification
Abstract
A data structure for a jointly utilized memory device, in particular, for inter-process communication, in an application system. The memory device includes a memory cell. The data structure includes a management structure, the management structure being configured to hold a pointer object to the memory cell.
Claims
1-8. (canceled)
9. A data structure for a jointly utilized memory for inter-process communication in an application system, the memory including a memory cell, the data structure comprising: a management structure configured to hold a pointer object to the memory cell.
10. The data structure as recited in claim 9, wherein the data structure is configured to build up the pointer object when the memory cell is requested by a user process of the application system.
11. The data structure as recited in claim 10, wherein the data structure is configured to dismantle the pointer object when the memory cell is released by the user process.
12. The data structure as recited in claim 10, wherein the data structure is configured to release the memory cell when the user process was abnormally terminated.
13. The data structure as recited in claim 10, wherein the data structure includes a respective management structure for each user process.
14. The data structure as recited in claim 9, wherein the management structure is stored in the jointly utilized memory.
15. A jointly utilized memory for inter-process communication in an application system, comprising: a memory cell; and a data structure including a management structure configured to hold a pointer object to the memory cell.
16. A device, comprising: a jointly utilized memory for inter-process communication in an application system, the memory including a memory cell, and a data structure including a management structure configured to hold a pointer object to the memory cell.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0047]
[0048]
[0049]
DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS
[0050]
[0051] In step 111, producer 10 requests a memory cell 215 (see
[0052] If the request is successful, producer 10 receives a pointer object 20, in other words, a reference, to the requested memory cell 215. Upon a successful request, the ownership of memory cell 215 is assigned to producer 10, and the middleware loses it.
[0053] In step 112, producer 10 writes the data to be transferred into the requested memory cell 215.
[0054] In step 113, producer 10 submits memory cell 215 to consumer or consumers 11. The submission may take place via the communication middleware of the application system. The submission takes place at the request of producer 10. The ownership is assigned to the middleware again via memory cell 215.
[0055] A consumer 11 is informed about the receipt of a memory cell 215. The information may take place via the communication middleware of the application system. In step 121, consumer 11 then requests the received memory cell.
[0056] If the request is successful, consumer 11 also receives a pointer object 20 to the requested memory cell 215. Upon a successful request, the ownership of the memory cell is assigned to consumer 11, and the middleware loses it.
[0057] In step 122, consumer 11 reads the received data from memory cell 215.
[0058] In step 123, consumer 11 releases the requested memory cell 215, i.e., pointer object 20 of consumer 11 to memory cell 215 is typically dismantled. The release takes place at the request of consumer 11. In the process, the ownership is assigned to the middleware again via memory cell 215. As a result, memory cell 215 is available to further consumers, and possibly also to producer 10 or further producers again. With the aid of the middleware, memory cell 215 may also be cleaned up or used otherwise.
[0059]
[0060] Data structure 200 includes a management structure 203, which is configured to hold a pointer object 20 to a memory cell 215.
[0061] The management of data structure 200 takes place in communication middleware in the background of, for example, a “zero copy” approach.
[0062] In the process, it is possible that a respective management structure 203 is set up by the middleware per user process 201 (i.e., per producer 10/sender or consumer 11/receiver), since in this way all memory cells listed therein may be implicitly assigned to the respective user process 201.
[0063] Management structure 203 holds a pointer object 20 to memory cell 215 which is used by user process 201.
[0064] Furthermore, the block diagram shows a central service 202 for managing data structure 200. Central service 202 may take over different tasks in the process. On the one hand, the central service may be configured to carry out a heartbeat method with respect to user process 201. With the aid of such a method, central service 202 may recognize whether and when a user process 201 was abnormally terminated.
[0065] In the event that a user process 201 was abnormally terminated, central service 202 may use management structure 203, for example to identify memory cells 215 in memory means 210 which are used by the abnormally terminated user process 201 via pointer object or objects 20 held in management structure 203, and to possibly clean them up or release them, i.e., to make them available again to further users in the application system.
[0066] The identification of memory cells 215 may take place by the address or another form of the reference in the memory of memory cell 215 since the same is unambiguously assignable.
[0067] It is possible that central service 202 includes methods which are suitable for searching for, and possibly removing, individual entries in management structure 203.
[0068]
[0069] In step 310, producer 10 requests a memory cell to write data to be transferred thereto. Before the requested memory cell 215 is transferred to producer 10, initially, in step 311, the memory cell is requested via the communication middleware. Thereafter, in step 312, the check takes place as to whether the requested memory cell 215 is valid.
[0070] In the event that the requested memory cell 215 is valid, a pointer object 20 which points to the memory cell is build up in step 313. In step 314, this pointer object 20 is filed in management structure 203 of data structure 200 and held there.
[0071] In the event that the requested memory cell 215 is not valid, an error may be output with step 315.
[0072] The step of requesting 310 may be repeated multiple times in the process.
[0073] After the ownership on memory cell 215 has been assigned to producer 10, producer 10 in step 320 uses memory cell 215 to write the data to be transferred to memory cell 215.
[0074] The transfer of the ownership may, for example, take place by transferring a pointer object 20 to memory cell 215 of producer 10. The transferred pointer object 20 is a copy of pointer object 20 which is held in management structure 203, while producer 10 holds the ownership on memory cell 215.
[0075] After the writing process has ended, producer 10 requests sending 330 of memory cell 215 via the communication middleware.
[0076] According to the shown specific embodiment, in step 331, producer 10 for this purpose removes pointer object 20 of the used memory cell 20 from management structure 203. Thereafter, in step 332, the sending of the memory cell takes place with the aid of the communication middleware.
[0077] It is possible in the process that step 331 is not carried out by producer 10, but rather by the communication middleware in connection with the sending of memory cell 215.