CN113886105A - Cross-process calling method and device, storage medium and electronic equipment - Google Patents

Cross-process calling method and device, storage medium and electronic equipment Download PDF

Info

Publication number
CN113886105A
CN113886105A CN202111165730.3A CN202111165730A CN113886105A CN 113886105 A CN113886105 A CN 113886105A CN 202111165730 A CN202111165730 A CN 202111165730A CN 113886105 A CN113886105 A CN 113886105A
Authority
CN
China
Prior art keywords
address space
micro service
address
client
service program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111165730.3A
Other languages
Chinese (zh)
Other versions
CN113886105B (en
Inventor
邓良
段熊春
谢永吉
柴稳
张宇
王剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202111165730.3A priority Critical patent/CN113886105B/en
Publication of CN113886105A publication Critical patent/CN113886105A/en
Application granted granted Critical
Publication of CN113886105B publication Critical patent/CN113886105B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The disclosure relates to a cross-process calling method, a cross-process calling device, a storage medium and electronic equipment, wherein the method comprises the following steps: performing address rearrangement on a process address space of an application program, wherein the application program comprises a client and a micro service program, the address rearrangement is used for limiting an actually used address of the application program to a corresponding preset address space, and the micro service program and the preset address space of the client are not overlapped; after address rearrangement is completed on the process address space of the application program, an executable file corresponding to the application program is loaded; and synchronizing the mapping of the actual use address of the micro service program to a target address space corresponding to the actual use address in the process address space of the client so that the client can call the micro service program in a function call mode through the executable file based on the target address space. By adopting the mode, the micro service program can be called without falling into a kernel state, and the performance loss is reduced.

Description

Cross-process calling method and device, storage medium and electronic equipment
Technical Field
The present disclosure relates to the field of electronic information technologies, and in particular, to a cross-process calling method, a cross-process calling device, a storage medium, and an electronic device.
Background
In the traditional application architecture, all components are placed inside a single client and are called by the client as components, but the architecture has the defect that the upgrade operation and maintenance of the single component affects the whole client. Based on the method, the micro-service architecture is generated, the micro-service components in the client are independently operated as independent processes, and each micro-service component and the client are independently maintained and upgraded without mutual influence. However, the micro service architecture has the defect that the calling of the micro service component by the client is changed from the original function calling to the inter-process communication mechanism, and the performance loss of the inter-process communication mechanism is large.
Disclosure of Invention
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
In a first aspect, the present disclosure provides a cross-process calling method, including:
performing address rearrangement on a process address space of an application program, wherein the application program comprises a client and a micro service program, the address rearrangement is used for limiting an actually used address of the application program to a corresponding preset address space, and the micro service program and the preset address space of the client are not overlapped with each other;
after address rearrangement is completed on the process address space of the application program, loading an executable file corresponding to the application program;
and mapping and synchronizing the actual use address of the micro service program to a target address space corresponding to the actual use address in the process address space of the client so that the client can call the micro service program in a function call mode through the executable file based on the target address space.
In a second aspect, the present disclosure provides a cross-process calling device, including:
the device comprises a rearrangement module, a mapping module and a control module, wherein the rearrangement module is used for rearranging the address of a process address space of an application program, the application program comprises a client and a micro service program, the address rearrangement module is used for limiting the actual use address of the application program to a corresponding preset address space, and the micro service program and the preset address space of the client are not overlapped with each other;
the loading module is used for loading the executable file corresponding to the application program after the address rearrangement of the process address space of the application program is completed;
and the first synchronization module is used for mapping and synchronizing the actual use address of the micro service program to a target address space corresponding to the actual use address in the process address space of the client so that the client can call the micro service program through the executable file in a function call mode based on the target address space.
In a third aspect, the present disclosure provides a computer-readable medium having stored thereon a computer program which, when executed by a processing apparatus, performs the steps of the method described in the first aspect above.
In a fourth aspect, the present disclosure provides an electronic device comprising:
a storage device having one or more computer programs stored thereon;
one or more processing means for executing the one or more computer programs in the storage means to carry out the steps of the method of the first aspect described above.
Through the technical scheme, the client and the micro-service program have independent processes and have the advantage that the micro-service architecture is beneficial to maintenance; meanwhile, the dynamic mapping of the actual use address of the micro service program is synchronized to the target address space corresponding to the actual use address in the process address space of the client, so that the client can call the micro service program in a function calling mode through an executable file based on the target address space during running, the calling of the micro service is further realized, and the problem of great performance loss caused by the fact that an inter-process communication mechanism is needed to realize the inter-process communication is solved.
Additional features and advantages of the disclosure will be set forth in the detailed description which follows.
Drawings
The above and other features, advantages and aspects of various embodiments of the present disclosure will become more apparent by referring to the following detailed description when taken in conjunction with the accompanying drawings. Throughout the drawings, the same or similar reference numbers refer to the same or similar elements. It should be understood that the drawings are schematic and that elements and features are not necessarily drawn to scale. In the drawings:
fig. 1 is a schematic diagram illustrating an application architecture according to an exemplary embodiment of the present disclosure.
FIG. 2 is a flowchart illustrating a cross-process invocation method according to an exemplary embodiment of the present disclosure.
Fig. 3 is a schematic diagram illustrating an address space after address rearrangement of a process address space of an application according to an exemplary embodiment of the present disclosure.
Fig. 4 is a schematic diagram illustrating an address mapping according to an exemplary embodiment of the present disclosure.
FIG. 5 is another flow diagram illustrating a cross-process invocation method according to an exemplary embodiment of the present disclosure.
FIG. 6 is a block diagram illustrating a cross-process calling device according to an exemplary embodiment of the present disclosure.
Fig. 7 is a schematic structural diagram of an electronic device shown in accordance with an exemplary embodiment of the present disclosure.
Detailed Description
Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure are shown in the drawings, it is to be understood that the present disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein, but rather are provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the disclosure are for illustration purposes only and are not intended to limit the scope of the disclosure.
It should be understood that the various steps recited in the method embodiments of the present disclosure may be performed in a different order, and/or performed in parallel. Moreover, method embodiments may include additional steps and/or omit performing the illustrated steps. The scope of the present disclosure is not limited in this respect.
The term "include" and variations thereof as used herein are open-ended, i.e., "including but not limited to". The term "based on" is "based, at least in part, on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Relevant definitions for other terms will be given in the following description.
It should be noted that the terms "first", "second", and the like in the present disclosure are only used for distinguishing different devices, modules or units, and are not used for limiting the order or interdependence relationship of the functions performed by the devices, modules or units.
It is noted that references to "a", "an", and "the" modifications in this disclosure are intended to be illustrative rather than limiting, and that those skilled in the art will recognize that "one or more" may be used unless the context clearly dictates otherwise.
The names of messages or information exchanged between devices in the embodiments of the present disclosure are for illustrative purposes only, and are not intended to limit the scope of the messages or information.
In the related art, an Inter-process communication (IPC) first needs to invoke a system call to trap into a kernel, then the kernel finds a target process, copies a message to the target process, and simultaneously needs to switch process address spaces twice (if a recent fusing Meltdown attack needs to be defended), and finally returns to a user state. If the original process is needed to be returned, the process needs to be completely repeated, and because the process switching in the inter-process communication mechanism is an important source of the overhead in the operation process, the performance loss of the inter-process communication mechanism is large, and the system performance is further influenced.
Based on this, the embodiment discloses a cross-process calling method, a cross-process calling device, a storage medium and an electronic device, wherein a micro-service program is developed according to an independent process, and on the premise of possessing the advantage that a micro-service architecture is beneficial to maintenance, the micro-service can be called by a client in a function calling mode, so that the overhead caused by adopting an inter-process communication mechanism is avoided, and the system performance loss is reduced.
Before the embodiments of the present disclosure are described in detail, an application architecture of the embodiments of the present disclosure is explained. Referring to fig. 1, the client and the servlet are independent of each other and run in separate processes, so that each servlet and the client independently maintain and upgrade without affecting each other.
FIG. 2 is a flowchart illustrating a cross-process invocation method according to an exemplary embodiment of the present disclosure. Referring to fig. 2, the method includes the steps of:
step 201, performing address re-layout on a process address space of an application program, wherein the application program comprises a client and a micro service program, the address re-layout is used for limiting an actually used address of the application program to a corresponding preset address space, and the micro service program and the preset address space of the client are not overlapped with each other.
It should be noted that the actually used address represents the mapping relationship between the virtual address and the physical address, and the data stored in the corresponding physical address can be accessed according to the virtual address.
In some embodiments, the address re-arrangement may involve taking advantage of an unavailable process address space, so that the application cannot subsequently use the unavailable process address space, thereby achieving the purpose of limiting the actual use address of the application to the corresponding preset address space.
Illustratively, the do _ mmap () function may be called to pre-allocate a certain process address space as an unavailable process address space. Wherein do _ mmap () is used to map data to a process address space to occupy a corresponding virtual address space in the process address space of the application. The detailed implementation of the do _ mmap () function may refer to related technologies, which is not described herein in detail in this embodiment.
It should be noted that the preset address space in the process address space of the client is smaller than the process address space of the client, and the address space except the preset address space in the process address space of the client is used for address mapping of the subsequent micro service program in the process address space of the client.
The address rearrangement in the embodiment of the present disclosure is explained below with respect to the application program being a client and a microserver, respectively.
Where the application comprises a client, the address re-arrangement of the process address space of the application shown in figure 2 may comprise: the method comprises the steps of limiting an actual use address of a client to a first preset area in a process address space of the client, wherein the first preset area is a continuous area comprising an initial address position of the process address space of the client.
It should be appreciated that the first predetermined area is smaller than the process address space of the client.
Where the application comprises a microserver, the address re-arrangement of the process address space of the application shown in FIG. 2 may comprise: and limiting the actual use address of the micro service program in a second preset area corresponding to the micro service program in the process address space of the micro service program, wherein the process address space of the client is provided with a plurality of continuous third preset areas, and the second preset area only corresponds to one third preset area.
The first preset area, the second preset area and the third preset area are all continuous areas, and the plurality of third preset areas arranged in the process address space of the client are also continuous, so that the process address space of the client can be effectively utilized to the maximum extent.
Illustratively, there are 128TB in the client's process address space, the client occupies 64TB, and the remaining 64TB is used to map the microserver. The address mapping of each micro-server occupies 512GB of space, and 128 micro-server addresses can be mapped in the process address space of the client.
Further, if the client occupies an address space corresponding to 0TB-64 TB; for the mth microserver, the address space that is not occupied by the address map may be an address space from 0TB to 64TB + (M-1) × 512GB and an address space from 64TB + M × 512GB to 128TB, and accordingly, the address space that is occupied by the address map is an address space of the process address space of the client other than the address space from 0TB to 64TB + (M-1) × 512GB and the address space from 64TB + M × 512GB to 128TB, where M is a natural integer greater than 0.
The second preset area corresponding to the micro service program is preset according to actual conditions.
Illustratively, fig. 3 is a schematic diagram of an address space after address rearrangement of a process address space of an application according to an exemplary embodiment of the present disclosure. Referring to fig. 3, a client, a micro service program 1, a micro service program 2, … …, and a micro service program N, wherein the micro service program 3-the micro service program N-1 are not illustrated in fig. 3. Specifically, each application program is limited in a certain area in its own process address space, the address space where the application program is located in fig. 3 is the corresponding preset address space, that is, the client is limited in the position corresponding to the address space 0 (i.e., the first preset area), the micro service program 1 is limited in the address space 1, the address space 1 is the second preset area corresponding to the micro service program 1, the micro service program 2 is limited in the address space 2, the address space 2 is the second preset area corresponding to the micro service program 2, the micro service program N is limited in the address space N, the address space N is the second preset area corresponding to the micro service program N, and as can be seen from fig. 3, the areas defined by the client, the micro service program 1, the micro service programs 2, … …, and the micro service program N are not overlapped with each other.
It should be understood that, in order to avoid the virtual address used by the client being directly overwritten by the address synchronization mapping of the micro server when synchronizing the actually used address mapping of the micro server into the process address space of the client, it is necessary to ensure that the micro server and the preset address space of the client do not overlap each other when the addresses are rearranged.
Step 202, after address re-arrangement is completed on the process address space of the application program, the executable file corresponding to the application program is loaded.
It should be noted that the executable file may include heap, stack, dynamic link library, etc. information. Among other things, dynamically linked libraries provide a way for a process to call functions that are not part of its executable code.
In some embodiments, the loading of the executable file may be accomplished by calling the do _ mmap () function.
Step 203, the actual use address of the micro service program is mapped and synchronized to a target address space corresponding to the actual use address in the process address space of the client, so that the client can call the micro service program through the executable file in a function call mode based on the target address space.
It should be noted that synchronizing the mapping of the actually used address of the micro server program to the target address space corresponding to the actually used address in the process address space of the client is actually equivalent to copying the page table of the micro server program to the page table of the client. The page table is a special data structure that stores the correspondence between logical pages and physical page frames. Each process has its own page table for addressing data files stored in physical pages according to logical pages when executing the process. Therefore, the page table of the micro service program is copied to the page table of the client, and the data access of the micro service program can be realized in the process address space of the client.
Referring to fig. 4, the actually used address of the micro service program 1 is mapped and synchronized to the process address space of the client and the address space 1 corresponding to the micro service program 1, where the address space 1 is the target address space of the micro service program 1 corresponding to the client, so that the client can call the micro service program 1 through the executable file based on a function call mode, and performance loss caused by conversion of the process address space from a user state to a kernel state in an inter-process communication mechanism is avoided.
By the mode, the client and the micro-service program have independent processes and have the advantage that the micro-service architecture is beneficial to maintenance; meanwhile, the dynamic mapping of the actual use address of the micro service program is synchronized to the target address space corresponding to the actual use address in the process address space of the client, so that the client can call the micro service program in a function calling mode through an executable file based on the target address space during running, the calling of the micro service is further realized, and the problem of great performance loss caused by the need of an inter-process communication mechanism to realize inter-process communication is solved.
In a possible manner, the micro service programs belonging to the same preset address space include a plurality of micro service programs, and the step of synchronizing the mapping of the actually used address of the micro service program to the target address space corresponding to the actually used address in the process address space of the client shown in fig. 2 may include: determining a target micro service program in micro service programs belonging to the same preset address space; and mapping and synchronizing the actual use address of the target micro service program to a target address space corresponding to the actual use address in the client.
The target micro service program is used for representing a micro service program which frequently communicates with the client side in a plurality of micro service programs belonging to the same preset address space.
It should be noted that, because the process address space of the client is limited, it is impossible to map all the microservers that need to communicate with the process of the client. Therefore, the address mapping of the micro service programs frequently communicating with the client is considered to reduce the loss of system performance to the maximum extent, and further, when the preset address space is defined for the micro service programs, the second preset areas corresponding to a plurality of micro service programs can be defined in the same area, that is, the micro service programs belonging to the same preset address space are included, and on the basis, the target micro service program is selected for address mapping.
In a possible manner, determining a target micro service program in the micro service programs belonging to the same preset address space includes: and determining a target micro service program in the micro service programs belonging to the same preset address space according to the historical calling information of the micro service programs belonging to the same preset address space.
The historical calling information comprises historical calling times and historical calling frequency. The historical invocation frequency may characterize a preset number of invocations occurring within a preset time configured by the developer.
In some embodiments, the micro service program with the highest historical calling information can be determined as the target micro service program according to the historical calling information of the micro service programs belonging to the same preset address space.
In some embodiments, if a plurality of micro service programs with the highest historical calling information exist at the same time, any one of the micro service programs with the highest historical calling information can be determined as the target micro service program.
Through the mode, the micro service program with the highest historical calling frequency or historical calling frequency is determined as the target micro service program, and performance loss is reduced to the greatest extent.
FIG. 5 is another flow diagram illustrating a cross-process invocation method according to an exemplary embodiment of the present disclosure. Referring to fig. 5, the method includes the steps of:
step 501, address re-layout is performed on the process address space of the application program.
Step 502, after address re-arrangement is completed for the process address space of the application program, the executable file corresponding to the application program is loaded.
Step 503, the actual use address of the micro service program is mapped and synchronized to the target address space corresponding to the actual use address in the process address space of the client.
Step 504, when receiving the off-line request of the target micro-service program, setting the calling mode of the target micro-service program as an IPC calling mode;
and 505, clearing the mapping of the actual use address of the target micro service program in the process address space of the client under the condition that all threads of the client call the target micro service program in a function call mode.
The implementation processes of step 501, step 502, and step 503 may refer to the implementation processes of step 201, step 202, and step 203 shown in fig. 2, respectively, which is not described herein again in this embodiment.
It should be noted that when the target microservice program needs to be maintained and updated, it needs to perform offline processing, that is, an offline request may be generated, where the offline request is used to notify the client that the target microservice program called by the client needs to be offline.
In some embodiments, the code may be used to implement that the calling mode of the target micro service program is forcibly set to an IPC calling mode, which is an inter-process communication mechanism.
It should be understood that, when the offline request is received, multiple threads under the process of the client may all call the service of the micro service program in a function call manner, and since the offline needs to release the memory occupied by the thread, if the micro service program is still called in the process of the client and in the process address space of the client, a call error may occur. Therefore, in order to avoid such errors, it is necessary to clear the mapping of the actual use address of the target micro server program in the process address space of the client when all the thread calls of the micro server program in the process of the client using the function call are completed.
By the method, when the target micro service program needs to be maintained and updated, the calling mode of the target micro service program is set to be the IPC calling mode, and address mapping of the target micro service program is cleared under the condition that all threads of the client adopt the function calling mode to call the target micro service program, so that a calling error is avoided, and the calling safety is improved.
In a possible manner, the method further comprises: after the mapping of the actual use address of the target micro service program in the process address space of the client is eliminated, determining a new target micro service program in the micro service programs which belong to the same preset address space with the target micro service program; and synchronizing the mapping of the determined actual use address of the new target micro service program to a target address space corresponding to the actual use address in the process address space of the client.
For example, when the micro service program a1, the micro service program a2, and the micro service program A3 all correspond to the same preset address space, the micro service program a1 is a target micro service program that needs to be offline, and after the address mapping of the micro service program a1 on the client is cleared, a new target micro service program may be determined again in the micro service program a2 and the micro service program A3, and the actually used address mapping of the determined new target micro service program may be synchronized to the address space in the process address space of the client where the address mapping of the micro service program a1 is synchronized.
By the method, after the address mapping of the target micro service program is eliminated, the new target micro service program is determined from the micro service programs belonging to the same preset address space with the target micro service program, and the address mapping is executed on the new target micro service program, so that the multiplexing of the same target address space in the client is realized, and the practicability of the scheme is improved.
In a possible manner, the method further comprises: when a preset condition occurs in the process that the client executes the calling of the micro service program in a function calling mode, pausing the calling of the micro service program; and switching the user mode to the kernel mode to continuously execute the call of the micro service program in the kernel mode.
In some embodiments, the predetermined conditions include system calls, exceptions, and peripheral interrupts.
Specifically, the system call means that the central processing unit needs to apply for using a service program provided by the operating system to complete a corresponding function, and therefore, if the central processing unit operates in the user mode at this time, the central processing unit needs to be converted from the user mode to the kernel mode.
The exception is that when the central processing unit executes a program running in a user mode, some unknown exception occurs in advance, and at this time, the current running process is triggered to be switched to a kernel-related program for processing the exception, that is, the user mode needs to be switched to a kernel mode, and the process program is switched in the kernel mode. For example, a page fault exception.
The peripheral device interrupt means that after the peripheral device completes the operation requested by the user, a corresponding interrupt signal is sent to the central processing unit, at this time, the central processing unit will suspend executing the next instruction to be executed and then execute the processing program corresponding to the interrupt signal, if the previously executed instruction is the program in the user mode, therefore, the user mode needs to be converted to the kernel mode, and the switching of the process program is realized in the kernel mode. For example, when the hard disk read/write operation is completed, the central processing unit switches to an interrupt handler for hard disk read/write to execute the subsequent operation.
It should be understood that the fact that the client calls the micro service in the function call mode means that the client thread can call the micro service thread in the function call mode, and only the user-mode context of the thread needs to be switched, and the kernel-mode context does not need to be switched, so that the kernel-mode context of the client thread is still used when the micro service is called. In addition, as can be seen from the above description, when a preset condition occurs during the execution of the micro service thread, the micro service thread needs to be trapped in the kernel mode for execution. Therefore, when a preset condition occurs during the execution of the micro service thread, the kernel-state context of the client thread needs to be switched to the kernel-state context of the micro service program, otherwise, a kernel error is caused. And because the process address space of the client synchronizes the address mapping of the micro service program, the process address space of the client still can be used in the thread running process of the micro service program without switching the process address space. By the mode, under the preset condition, the micro-service is switched to the kernel state to continue to be executed, so that the condition that the kernel goes wrong is avoided.
Based on the same inventive concept, an embodiment of the present disclosure further provides a cross-process invoking device, and with reference to fig. 6, the device 600 includes:
the re-layout module 601 is configured to perform address re-layout on a process address space of an application program, where the application program includes a client and a micro service program, the address re-layout is used to limit an actually used address of the application program in a corresponding preset address space, and the preset address spaces of the micro service program and the client are not overlapped with each other;
a loading module 602, configured to load an executable file corresponding to the application program after address re-arrangement of the process address space of the application program is completed;
a first synchronization module 603, configured to map and synchronize an actually used address of the micro service program to a target address space corresponding to the actually used address in a process address space of the client, so that the client can call the micro service program through the executable file in a function call manner based on the target address space.
In a possible manner, the application includes a client, and the rearrangement module 601 includes a first rearrangement sub-module, where the first rearrangement sub-module is configured to define an actual usage address of the client in a first preset region in a process address space of the client, where the first preset region is a continuous region including an initial address location of the process address space of the client.
In a possible manner, the application program includes a micro service program, the re-layout module 602 includes a second re-layout submodule, and the second re-layout submodule is configured to limit an actual usage address of the micro service program to a second preset region, corresponding to the micro service program, in a process address space of the micro service program, where the process address space of the client is provided with a plurality of continuous third preset regions, and the second preset region uniquely corresponds to one third preset region.
In a possible manner, the micro service programs belonging to the same preset address space include a plurality of micro service programs, and the first synchronization module 603 includes:
the determining submodule is used for determining a target micro service program in the micro service programs belonging to the same preset address space;
and the synchronization submodule is used for mapping and synchronizing the actual use address of the target micro service program to a target address space corresponding to the actual use address in the client.
In a possible manner, the determining submodule is specifically configured to determine, according to history call information of micro service programs belonging to the same preset address space, a target micro service program in the micro service programs belonging to the same preset address space.
In a possible manner, the apparatus 600 further comprises:
the setting module is used for setting the calling mode of the target micro-service program as an IPC calling mode when receiving the offline request of the target micro-service program;
and the clearing module is used for clearing the mapping of the actual use address of the target micro service program in the process address space of the client under the condition that all threads of the client adopt the function calling mode to complete the calling of the target micro service program.
In a possible manner, the apparatus 600 further comprises:
the updating module is used for determining a new target micro service program in the micro service programs which belong to the same preset address space as the target micro service program after the mapping of the actual use address of the target micro service program in the process address space of the client is eliminated;
and the second synchronization module is used for mapping and synchronizing the determined actual use address of the new target micro service program to a target address space corresponding to the actual use address in the process address space of the client.
In a possible manner, the apparatus 600 further comprises:
the suspension module is used for suspending the calling of the micro service program when a preset condition occurs in the process that the client executes the calling of the micro service program by adopting the function calling mode;
and the switching module is used for switching the user mode to the kernel mode so as to continuously execute the call of the micro service program in the kernel mode.
Based on the same inventive concept, the embodiments of the present disclosure also provide a computer-readable medium, on which a computer program is stored, which, when executed by a processing device, implements the steps of the cross-process calling method described in the method embodiments.
Based on the same inventive concept, an embodiment of the present disclosure further provides an electronic device, including:
a storage device having one or more computer programs stored thereon;
one or more processing devices for executing the one or more computer programs in the storage device to implement the steps of the cross-process calling method described in the method embodiments.
Referring now to FIG. 7, shown is a schematic diagram of an electronic device 700 suitable for use in implementing embodiments of the present disclosure. The terminal device in the embodiments of the present disclosure may include, but is not limited to, a mobile terminal such as a mobile phone, a notebook computer, a digital broadcast receiver, a PDA (personal digital assistant), a PAD (tablet computer), a PMP (portable multimedia player), a vehicle terminal (e.g., a car navigation terminal), and the like, and a stationary terminal such as a digital TV, a desktop computer, and the like. The electronic device shown in fig. 7 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present disclosure.
As shown in fig. 7, electronic device 700 may include a processing means (e.g., central processing unit, graphics processor, etc.) 701 that may perform various appropriate actions and processes in accordance with a program stored in a Read Only Memory (ROM)702 or a program loaded from storage 708 into a Random Access Memory (RAM) 703. In the RAM 703, various programs and data necessary for the operation of the electronic apparatus 700 are also stored. The processing device 701, the ROM 702, and the RAM 703 are connected to each other by a bus 704. An input/output (I/O) interface 705 is also connected to bus 704.
Generally, the following devices may be connected to the I/O interface 705: input devices 706 including, for example, a touch screen, touch pad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; an output device 707 including, for example, a Liquid Crystal Display (LCD), a speaker, a vibrator, and the like; storage 708 including, for example, magnetic tape, hard disk, etc.; and a communication device 709. The communication means 709 may allow the electronic device 700 to communicate wirelessly or by wire with other devices to exchange data. While fig. 7 illustrates an electronic device 700 having various means, it is to be understood that not all illustrated means are required to be implemented or provided. More or fewer devices may alternatively be implemented or provided.
In particular, according to an embodiment of the present disclosure, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, embodiments of the present disclosure include a computer program product comprising a computer program carried on a non-transitory computer readable medium, the computer program containing program code for performing the method illustrated by the flow chart. In such embodiments, the computer program may be downloaded and installed from a network via the communication means 709, or may be installed from the storage means 708, or may be installed from the ROM 702. The computer program, when executed by the processing device 701, performs the above-described functions defined in the methods of the embodiments of the present disclosure.
It should be noted that the computer readable medium in the present disclosure can be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the present disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In contrast, in the present disclosure, a computer readable signal medium may comprise a propagated data signal with computer readable program code embodied therein, either in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: electrical wires, optical cables, RF (radio frequency), etc., or any suitable combination of the foregoing.
In some implementations, the electronic devices may communicate using any currently known or future developed network Protocol, such as HTTP (HyperText Transfer Protocol), and may be interconnected with any form or medium of digital data communication (e.g., a communications network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future developed network.
The computer readable medium may be embodied in the electronic device; or may exist separately without being assembled into the electronic device.
The computer readable medium carries one or more programs which, when executed by the electronic device, cause the electronic device to: performing address rearrangement on a process address space of an application program, wherein the application program comprises a client and a micro service program, the address rearrangement is used for limiting an actually used address of the application program to a corresponding preset address space, and the micro service program and the preset address space of the client are not overlapped with each other; after address rearrangement is completed on the process address space of the application program, loading an executable file corresponding to the application program; and mapping and synchronizing the actual use address of the micro service program to a target address space corresponding to the actual use address in the process address space of the client so that the client can call the micro service program in a function call mode through the executable file based on the target address space.
Computer program code for carrying out operations for the present disclosure may be written in any combination of one or more programming languages, including but not limited to an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The modules described in the embodiments of the present disclosure may be implemented by software or hardware. Where the name of a module does not in some cases constitute a limitation of the module itself, for example, a re-layout module may also be described as a "module that performs address re-layout on the process address space of an application".
The functions described herein above may be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs), systems on a chip (SOCs), Complex Programmable Logic Devices (CPLDs), and the like.
In the context of this disclosure, a machine-readable medium may be a tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
Example 1 provides a cross-process invocation method, according to one or more embodiments of the present disclosure, including:
performing address rearrangement on a process address space of an application program, wherein the application program comprises a client and a micro service program, the address rearrangement is used for limiting an actually used address of the application program to a corresponding preset address space, and the micro service program and the preset address space of the client are not overlapped with each other;
after address rearrangement is completed on the process address space of the application program, loading an executable file corresponding to the application program;
and mapping and synchronizing the actual use address of the micro service program to a target address space corresponding to the actual use address in the process address space of the client so that the client can call the micro service program in a function call mode through the executable file based on the target address space.
Example 2 provides the method of example 1, the application program comprising a client, the address re-laying out a process address space of the application program comprising:
limiting the actual use address of the client to a first preset area in the process address space of the client, wherein the first preset area is a continuous area including the initial address position of the process address space of the client.
Example 3 provides the method of example 2, the application program comprising a microserver, the address re-laying out a process address space of the application program comprising:
and limiting the actual use address of the micro service program in a second preset area corresponding to the micro service program in the process address space of the micro service program, wherein the process address space of the client is provided with a plurality of continuous third preset areas, and the second preset area only corresponds to one third preset area.
Example 4 provides the method of any one of examples 1 to 3, wherein the micro service programs belonging to the same preset address space include a plurality of micro service programs, and the synchronizing mapping of the actually used address of the micro service program to the target address space corresponding to the actually used address in the process address space of the client includes:
determining a target micro service program in micro service programs belonging to the same preset address space;
and mapping and synchronizing the actual use address of the target micro service program to a target address space corresponding to the actual use address in the client.
Example 5 provides the method of example 4, the determining a target micro server among micro servers belonging to the same preset address space, including:
and determining a target micro service program in the micro service programs belonging to the same preset address space according to the historical calling information of the micro service programs belonging to the same preset address space.
Example 6 provides the method of example 4, further comprising, in accordance with one or more embodiments of the present disclosure:
when receiving an offline request of the target micro service program, setting a calling mode of the target micro service program as an IPC calling mode;
and under the condition that all threads of the client call the target micro service program in the function call mode, clearing the mapping of the actual use address of the target micro service program in the process address space of the client.
Example 7 provides the method of example 6, further comprising, in accordance with one or more embodiments of the present disclosure:
after the mapping of the actual use address of the target micro service program in the process address space of the client is cleared, determining a new target micro service program in the micro service programs which belong to the same preset address space with the target micro service program;
and mapping and synchronizing the determined actual use address of the new target micro service program to a target address space corresponding to the actual use address in the process address space of the client.
Example 8 provides the method of example 4, further comprising, in accordance with one or more embodiments of the present disclosure:
when a preset condition occurs in the process that the client executes the calling of the micro service program in the function calling mode, pausing the calling of the micro service program;
and switching the user mode to a kernel mode to continuously execute the call of the micro service program in the kernel mode.
Example 9 provides, in accordance with one or more embodiments of the present disclosure, a cross-process invocation apparatus, comprising:
the device comprises a rearrangement module, a mapping module and a control module, wherein the rearrangement module is used for rearranging the address of a process address space of an application program, the application program comprises a client and a micro service program, the address rearrangement module is used for limiting the actual use address of the application program to a corresponding preset address space, and the micro service program and the preset address space of the client are not overlapped with each other;
the loading module is used for loading the executable file corresponding to the application program after the address rearrangement of the process address space of the application program is completed;
and the first synchronization module is used for mapping and synchronizing the actual use address of the micro service program to a target address space corresponding to the actual use address in the process address space of the client so that the client can call the micro service program through the executable file in a function call mode based on the target address space.
Example 10 provides the apparatus of example 9, the application program including a client, the re-layout module including a first re-layout sub-module, the first re-layout sub-module to define an actual usage address of the client to a first preset region in a process address space of the client, wherein the first preset region is a continuous region including an initial address location of the process address space of the client.
Example 11 provides the apparatus of example 10, the application program includes a micro service program, the re-layout module includes a second re-layout submodule, and the second re-layout submodule is configured to limit an actually used address of the micro service program to a second preset region, corresponding to the micro service program, in a process address space of the micro service program, where the process address space of the client is provided with a plurality of continuous third preset regions, and the second preset region uniquely corresponds to one third preset region.
Example 12 provides the apparatus of any one of examples 9-11, the microserver belonging to the same preset address space comprising a plurality, the first synchronization module comprising:
the determining submodule is used for determining a target micro service program in the micro service programs belonging to the same preset address space;
and the synchronization submodule is used for mapping and synchronizing the actual use address of the target micro service program to a target address space corresponding to the actual use address in the client.
Example 13 provides the apparatus of example 12, and the determining submodule is specifically configured to determine, according to the historical call information of the micro service programs belonging to the same preset address space, a target micro service program in the micro service programs belonging to the same preset address space.
Example 14 provides the apparatus of example 12, the apparatus further comprising, in accordance with one or more embodiments of the present disclosure:
the setting module is used for setting the calling mode of the target micro-service program as an IPC calling mode when receiving the offline request of the target micro-service program;
and the clearing module is used for clearing the mapping of the actual use address of the target micro service program in the process address space of the client under the condition that all threads of the client adopt the function calling mode to complete the calling of the target micro service program.
Example 15 provides the apparatus of example 14, the apparatus further comprising, in accordance with one or more embodiments of the present disclosure:
the updating module is used for determining a new target micro service program in the micro service programs which belong to the same preset address space as the target micro service program after the mapping of the actual use address of the target micro service program in the process address space of the client is eliminated;
and the second synchronization module is used for mapping and synchronizing the determined actual use address of the new target micro service program to a target address space corresponding to the actual use address in the process address space of the client.
Example 16 provides the apparatus of example 12, the apparatus further comprising, in accordance with one or more embodiments of the present disclosure:
the suspension module is used for suspending the calling of the micro service program when a preset condition occurs in the process that the client executes the calling of the micro service program by adopting the function calling mode;
and the switching module is used for switching the user mode to the kernel mode so as to continuously execute the call of the micro service program in the kernel mode.
Example 17 provides, in accordance with one or more embodiments of the present disclosure, a computer-readable medium having stored thereon a computer program that, when executed by a processing apparatus, performs the steps of the method of any one of examples 1-8.
Example 18 provides, in accordance with one or more embodiments of the present disclosure, an electronic device, comprising:
a storage device having one or more computer programs stored thereon;
one or more processing devices to execute the one or more computer programs in the storage device to implement the steps of the method of any of examples 1-8.
The foregoing description is only exemplary of the preferred embodiments of the disclosure and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the disclosure herein is not limited to the particular combination of features described above, but also encompasses other embodiments in which any combination of the features described above or their equivalents does not depart from the spirit of the disclosure. For example, the above features and (but not limited to) the features disclosed in this disclosure having similar functions are replaced with each other to form the technical solution.
Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order. Under certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are included in the above discussion, these should not be construed as limitations on the scope of the disclosure. Certain features that are described in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. With regard to the apparatus in the above-described embodiment, the specific manner in which each module performs the operation has been described in detail in the embodiment related to the method, and will not be elaborated here.

Claims (11)

1. A cross-process calling method, comprising:
performing address rearrangement on a process address space of an application program, wherein the application program comprises a client and a micro service program, the address rearrangement is used for limiting an actually used address of the application program to a corresponding preset address space, and the micro service program and the preset address space of the client are not overlapped with each other;
after address rearrangement is completed on the process address space of the application program, loading an executable file corresponding to the application program;
and mapping and synchronizing the actual use address of the micro service program to a target address space corresponding to the actual use address in the process address space of the client so that the client can call the micro service program in a function call mode through the executable file based on the target address space.
2. The method of claim 1, wherein the application comprises a client, and wherein the address re-laying out a process address space of the application comprises:
limiting the actual use address of the client to a first preset area in the process address space of the client, wherein the first preset area is a continuous area including the initial address position of the process address space of the client.
3. The method of claim 2, wherein the application comprises a microserver, and wherein the address re-laying out a process address space of the application comprises:
and limiting the actual use address of the micro service program in a second preset area corresponding to the micro service program in the process address space of the micro service program, wherein the process address space of the client is provided with a plurality of continuous third preset areas, and the second preset area only corresponds to one third preset area.
4. The method according to any one of claims 1 to 3, wherein multiple micro service programs belonging to the same preset address space include, and the synchronizing of mapping the real use address of the micro service program to the target address space corresponding to the real use address in the process address space of the client comprises:
determining a target micro service program in micro service programs belonging to the same preset address space;
and mapping and synchronizing the actual use address of the target micro service program to a target address space corresponding to the actual use address in the client.
5. The method of claim 4, wherein determining the target micro server program among the micro server programs belonging to the same preset address space comprises:
and determining a target micro service program in the micro service programs belonging to the same preset address space according to the historical calling information of the micro service programs belonging to the same preset address space.
6. The method of claim 4, further comprising:
when receiving an offline request of the target micro service program, setting a calling mode of the target micro service program as an IPC calling mode;
and under the condition that all threads of the client call the target micro service program in the function call mode, clearing the mapping of the actual use address of the target micro service program in the process address space of the client.
7. The method of claim 6, further comprising:
after the mapping of the actual use address of the target micro service program in the process address space of the client is cleared, determining a new target micro service program in the micro service programs which belong to the same preset address space with the target micro service program;
and mapping and synchronizing the determined actual use address of the new target micro service program to a target address space corresponding to the actual use address in the process address space of the client.
8. The method of claim 4, further comprising:
when a preset condition occurs in the process that the client executes the calling of the micro service program in the function calling mode, pausing the calling of the micro service program;
and switching the user mode to a kernel mode to continuously execute the call of the micro service program in the kernel mode.
9. A cross-process calling device, comprising:
the device comprises a rearrangement module, a mapping module and a control module, wherein the rearrangement module is used for rearranging the address of a process address space of an application program, the application program comprises a client and a micro service program, the address rearrangement module is used for limiting the actual use address of the application program to a corresponding preset address space, and the micro service program and the preset address space of the client are not overlapped with each other;
the loading module is used for loading the executable file corresponding to the application program after the address rearrangement of the process address space of the application program is completed;
and the first synchronization module is used for mapping and synchronizing the actual use address of the micro service program to a target address space corresponding to the actual use address in the process address space of the client so that the client can call the micro service program through the executable file in a function call mode based on the target address space.
10. A computer-readable medium, on which a computer program is stored, characterized in that the program, when being executed by processing means, carries out the steps of the method of any one of claims 1 to 8.
11. An electronic device, comprising:
a storage device having one or more computer programs stored thereon;
one or more processing devices for executing the one or more computer programs in the storage device to implement the steps of the method of any one of claims 1-8.
CN202111165730.3A 2021-09-30 2021-09-30 Cross-process calling method and device, storage medium and electronic equipment Active CN113886105B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111165730.3A CN113886105B (en) 2021-09-30 2021-09-30 Cross-process calling method and device, storage medium and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111165730.3A CN113886105B (en) 2021-09-30 2021-09-30 Cross-process calling method and device, storage medium and electronic equipment

Publications (2)

Publication Number Publication Date
CN113886105A true CN113886105A (en) 2022-01-04
CN113886105B CN113886105B (en) 2023-07-21

Family

ID=79005198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111165730.3A Active CN113886105B (en) 2021-09-30 2021-09-30 Cross-process calling method and device, storage medium and electronic equipment

Country Status (1)

Country Link
CN (1) CN113886105B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115422098A (en) * 2022-02-15 2022-12-02 摩尔线程智能科技(北京)有限责任公司 GPU (graphics processing Unit) memory access self-adaptive optimization method and device based on extended page table

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090320042A1 (en) * 2008-06-20 2009-12-24 Netapp, Inc. System and method for achieving high performance data flow among user space processes in storage system
CN102103526A (en) * 2011-02-14 2011-06-22 博视联(苏州)信息科技有限公司 Method and system for performing inter-process communication between server and client by service management
CN104572313A (en) * 2013-10-22 2015-04-29 华为技术有限公司 Inter-process communication method and device
CN109933441A (en) * 2019-02-28 2019-06-25 上海交通大学 Micro-kernel Inter-Process Communication method and system
US10474512B1 (en) * 2016-09-29 2019-11-12 Amazon Technologies, Inc. Inter-process intra-application communications
CN112131019A (en) * 2020-09-17 2020-12-25 国网宁夏电力有限公司营销服务中心(国网宁夏电力有限公司计量中心) Method for rapidly communicating processes of microkernel operating system
CN113064697A (en) * 2021-04-01 2021-07-02 上海交通大学 Method for accelerating communication between microkernel processes by using multiple hardware characteristics

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090320042A1 (en) * 2008-06-20 2009-12-24 Netapp, Inc. System and method for achieving high performance data flow among user space processes in storage system
CN102103526A (en) * 2011-02-14 2011-06-22 博视联(苏州)信息科技有限公司 Method and system for performing inter-process communication between server and client by service management
CN104572313A (en) * 2013-10-22 2015-04-29 华为技术有限公司 Inter-process communication method and device
US10474512B1 (en) * 2016-09-29 2019-11-12 Amazon Technologies, Inc. Inter-process intra-application communications
CN109933441A (en) * 2019-02-28 2019-06-25 上海交通大学 Micro-kernel Inter-Process Communication method and system
CN112131019A (en) * 2020-09-17 2020-12-25 国网宁夏电力有限公司营销服务中心(国网宁夏电力有限公司计量中心) Method for rapidly communicating processes of microkernel operating system
CN113064697A (en) * 2021-04-01 2021-07-02 上海交通大学 Method for accelerating communication between microkernel processes by using multiple hardware characteristics

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115422098A (en) * 2022-02-15 2022-12-02 摩尔线程智能科技(北京)有限责任公司 GPU (graphics processing Unit) memory access self-adaptive optimization method and device based on extended page table
CN115422098B (en) * 2022-02-15 2023-08-29 摩尔线程智能科技(北京)有限责任公司 GPU access self-adaptive optimization method and device based on extended page table

Also Published As

Publication number Publication date
CN113886105B (en) 2023-07-21

Similar Documents

Publication Publication Date Title
CN111475235B (en) Acceleration method, device, equipment and storage medium for function calculation cold start
WO2021027875A1 (en) Multi-window parellel computing method and apparatus, terminal, and storage medium
US20240118928A1 (en) Resource allocation method and apparatus, readable medium, and electronic device
CN111581555B (en) Document loading method, device, equipment and storage medium
CN111400068B (en) Interface control method and device, readable medium and electronic equipment
CN114595065A (en) Data acquisition method and device, storage medium and electronic equipment
CN111324376B (en) Function configuration method, device, electronic equipment and computer readable medium
CN114625536B (en) Video memory allocation method, device, medium and electronic equipment
CN113886105B (en) Cross-process calling method and device, storage medium and electronic equipment
CN113886019B (en) Virtual machine creation method, device, system, medium and equipment
CN113835992A (en) Memory leak processing method and device, electronic equipment and computer storage medium
CN112306685B (en) Task isolation method, device, electronic equipment and computer readable medium
CN113518183B (en) Camera calling method and device and electronic equipment
CN114595080A (en) Data processing method and device, electronic equipment and computer readable storage medium
CN113391882B (en) Virtual machine memory management method and device, storage medium and electronic equipment
CN111182062B (en) Service multi-activity calling method, system and electronic equipment
CN112241229B (en) Terminal display control method, device, terminal and storage medium
CN111459893B (en) File processing method and device and electronic equipment
CN111538717A (en) Data processing method and device, electronic equipment and computer readable medium
CN111241852A (en) File translation method, device, terminal and storage medium
CN115878586B (en) IPFS storage encapsulation method and device, electronic equipment and readable storage medium
WO2023131110A1 (en) Inter-process communication method and device
CN117155729A (en) Communication method, system, device and electronic equipment
CN118012470A (en) Updating method and device for power information management application, electronic equipment and medium
CN116263824A (en) Resource access method and device, storage medium and electronic equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: Tiktok vision (Beijing) Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant