Data processing method and system, and computing device, computer-readable storage medium and computer program product
By pointing the pointer of the target file structure to the global virtual operation function set in the virtualization architecture, the problem of high maintenance and query overhead during hot module upgrades is solved, enabling fast and efficient data processing and improving system performance and stability.
Patent Information
- Application Number
- PCT/CN2025/102678
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-07-03
- Filing Date
- 2025-06-23
- Publication Date
- 2026-01-08
AI Technical Summary
When performing hot module upgrades in a virtualization architecture, the overhead of maintaining and querying each file structure is high, leading to inconsistent system behavior and security risks.
By pointing the pointer of the target file structure to the global virtual operation function set, and determining the target operation function based on the pointers contained in the global virtual operation function set, changes to the target file structure and the global virtual operation function set are reduced, enabling fast and efficient data processing.
It reduces the overhead of maintenance and query operations, ensures system behavior consistency and security, improves system performance and stability, and supports seamless switching to the upgraded function management unit.
Smart Images

Figure CN2025102678_08012026_PF_FP_ABST
Abstract
Description
Data processing method and system, computing device, computer readable storage medium, computer program product
[0001] The present disclosure claims priority to Chinese Patent Application No. 202410891638.2, filed on July 3, 2024, with the Chinese Patent Office, entitled "Data processing method and system, computing device, computer readable storage medium, computer program product", the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD
[0002] Embodiments of the present disclosure relate to the technical field of computer technology, and particularly relate to a data processing method and system, a computing device, a computer readable storage medium, and a computer program product. BACKGROUND
[0003] In the case of hot upgrading of a module in a virtualization architecture, it is necessary to save each file structure generated by opening a device file, and update the operation function set in the file structure pointing to the original module to the operation function set pointing to the new module. At this time, in the case of many processes using virtualization devices, the overhead of operations such as maintaining and querying each file structure will be large.
[0004] At the same time, problems are also likely to occur in the upgrade, such as, when the new module implements new functions compared to the old module, if there are file structures that are not updated according to the upgrade, then the same type of files in the system may exhibit different behaviors, depending on whether these files are opened before or after the upgrade, thereby causing unpredictable application behavior or inconsistent function performance; or in the case where the new module fixes some security problems on the basis of the old module, not updating the operation function set in the file structure will mean that the opened file handle is still exposed to security problems, thereby causing serious consequences.
[0005] Therefore, there is an urgent need for a data processing method that can accurately and quickly complete the update of the operation function set when hot upgrading a module in a virtualization architecture. SUMMARY
[0006] Therefore, the present disclosure provides a data processing method. One or more embodiments of the present disclosure also relate to a data processing system, a computing device, a computer readable storage medium, and a computer program product to solve the technical defect of large maintenance and query overhead in the prior art.
[0007] According to a first aspect of an embodiment of the present disclosure, a data processing method is provided, comprising:
[0008] determining a target file structure corresponding to the data processing request, wherein the target file structure contains a first pointer pointing to a global virtual operation function set;
[0009] determining the global virtual operation function set according to the first pointer, and determining a target field pointing to a target operation function in a target function management unit in a global file structure according to a second pointer corresponding to the data processing request in the global virtual operation function set, wherein the target function management unit is obtained by upgrading an initial function management unit;
[0010] determining the target operation function according to the target field;
[0011] performing data processing on the target device according to the target operation function.
[0012] According to a second aspect of the embodiments of the present disclosure, a data processing method is provided, comprising:
[0013] loading a target function management unit upgraded from an initial function management unit, determining a target operation function in the target function management unit, and establishing an association between the target operation function and a target field in a global file structure;
[0014] determining a target file structure corresponding to the data processing request, wherein the target file structure contains a first pointer pointing to a global virtual operation function set,
[0015] determining the global virtual operation function set according to the first pointer, and determining a target field pointing to the target operation function in a global file structure according to a second pointer corresponding to the data processing request in the global virtual operation function set;
[0016] determining the target operation function according to the target field;
[0017] performing data processing on the target device according to the target operation function.
[0018] According to a third aspect of the embodiments of the present disclosure, a data processing system is provided, comprising an entry management unit and a function management unit, wherein,
[0019] the entry management unit is configured to determine a target file structure corresponding to the data processing request, wherein the target file structure contains a first pointer pointing to a global virtual operation function set,
[0020] determine the target field in the global file structure body pointing to the target operation function in the target function management unit according to the second pointer corresponding to the data processing request in the global virtual operation function set;
[0021] determine the target operation function according to the target field;
[0022] The function management unit is configured to perform data processing on the target device according to the target operation function.
[0023] According to a fourth aspect of the embodiments of the present disclosure, a computing device is provided, comprising:
[0024] a memory and a processor;
[0025] The memory is configured to store computer programs / instructions, and the processor is configured to execute the computer programs / instructions, which realize the steps of the above data processing method when executed by the processor.
[0026] According to a fifth aspect of the embodiments of the present disclosure, a computer readable storage medium is provided, which stores computer programs / instructions, which realize the steps of the above data processing method when executed by the processor.
[0027] According to a sixth aspect of the embodiments of the present disclosure, a computer program product is provided, comprising computer programs / instructions, which realize the steps of the above data processing method when executed by the processor.
[0028] The data processing method provided by the embodiment of the present disclosure determines the first pointer of the target file structure body pointing to the global virtual operation function set; and according to the second pointer corresponding to the responding data processing request in the global virtual operation function set, the target field in the global file structure body pointing to the target operation function in the target function management unit can be determined, wherein the target function management unit is obtained by upgrading the initial function management unit; thus, the target operation function in the target function management unit is determined according to the target field; without changing the target file structure body and the global virtual operation function set, the overhead of maintenance and query operations is reduced, and when the target operation function is the operation function corresponding to the target function management unit after upgrading and optimization, the data processing on the target device can be performed more effectively and quickly according to the target operation function. BRIEF DESCRIPTION OF DRAWINGS
[0029] FIG. 1 is a scene schematic diagram of a data processing method provided by an embodiment of the present disclosure;
[0030] FIG. 2 is a flowchart of a data processing method according to an embodiment of the present disclosure;
[0031] FIG. 3 is a flowchart of another data processing method according to an embodiment of the present disclosure;
[0032] FIG. 4 is a flowchart of a data processing method for module hot upgrade in a virtualization architecture according to an embodiment of the present disclosure;
[0033] FIG. 5 is a structural diagram of a data processing system according to an embodiment of the present disclosure;
[0034] FIG. 6 is a structural block diagram of a computing device according to an embodiment of the present disclosure. DETAILED DESCRIPTION
[0035] In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, the present disclosure can be practiced without the specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to obscure the present disclosure. Some portions of the detailed description are presented in terms of algorithms, procedures, logic blocks, processing and other symbolic representations of operations on data bits that can be stored within a computer memory. These algorithmic descriptions and representations can be the techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others.
[0036] The terminology used in the one or more embodiments of the present disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting of the one or more embodiments of the present disclosure. As used in the one or more embodiments of the present disclosure and the accompanying claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and / or "comprising," when used in the one or more embodiments of the present disclosure and the accompanying claims, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0037] It will be understood that, although the terms first, second, etc. can be used herein to describe various information, these terms are not intended to denote a temporal or chronological order. Rather, these terms are used solely to distinguish one from another. For example, a first entity discussed below could be termed a second entity, and, similarly, a second entity could be termed a first entity without departing from the scope of the one or more embodiments of the present disclosure. As used herein, the term "if' can be construed to mean "when" or "in response to determining" or "in response to a determination" or "in response to the fact that" that a certain condition precedent has been satisfied or obtained, unless and except the context clearly indicates otherwise.
[0038] In addition, it should be noted that the user information (including but not limited to user equipment information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in one or more embodiments of the present disclosure are all information and data authorized by the user or authorized by all parties, and the collection, use and processing of related data need to comply with relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation portal for user to choose authorization or rejection.
[0039] First, the terms involved in one or more embodiments of the present disclosure are explained.
[0040] file (file) structure: Whenever a device file is opened by a process, a file structure, also known as a file descriptor structure, is created in the kernel to represent this open file. This file structure contains all the necessary information about the file's operating state, such as the file's current read-write position, the file's open mode (such as read-only, write-only, or read-write), the file's associated file permissions, and a pointer to a file_operations structure containing all the function pointers needed to perform file operations (such as read, write, open, close, etc.).
[0041] file_operations structure: One of the core parts of a Linux device driver, this structure defines a series of function pointers that point to functions that implement specific file operations (such as opening, reading, writing, closing, etc.); each device or file type has a file_operations structure instance associated with it in the kernel, which tells the kernel how to handle various operation requests for files of that type.
[0042] Module file: A.ko file is a module file, which is the file format of a Linux kernel module (Kernel Object); in a Linux system, kernel modules are loadable, executable code that can be dynamically inserted into the kernel or removed from the kernel at runtime without the need to recompile the entire kernel.
[0043] / dev: This directory contains all external devices used in a Linux system, but it does not contain the drivers of the external devices, but a port to access these external devices; it is very convenient to access these external devices as if they were files.
[0044] / dev / tj: is a character device file accessed by the user space, and the operation of the character device file is mapped to the specific module implementation through the above hierarchical structure.
[0045] file_operations: file operation set, the key data structure that associates system calls and drivers, each member of this structure corresponds to a system call.
[0046] cdev.ops: character device driver, a structure cdev is used to describe a device, the structure contains a device number of type dev_t and a file operation set file_operations structure associated with the device.
[0047] Character device: refers to a device that transmits data in units of characters during I / O (Input / Output) transmission, such as a keyboard, a printer, etc. In UNIX systems, character devices occupy positions in the file directory tree and have corresponding nodes in the form of special files.
[0048] RCU lock: Read Copy Update, read, copy, update; the feature of RCU is that multiple readers can read shared data simultaneously, while the updater needs to copy a copy when updating shared data, then modify the copy, and replace the original shared data with the new copy, while the destruction (release) of the old data waits until all readers no longer reference the old data.
[0049] global_file_operations: internal.open,.close,.read,.write,.ioctl (Input / Output Control) function pointers eventually point to the fops field in the tj_g structure.
[0050] tj_g structure: a global structure, its fops field dynamically points to the file_operations structure of the currently activated module (such as tj_hv_0.ko or tj_hv_1.ko).
[0051] Old / new module (tj_hv_0.ko / tj_hv_1.ko): each implements a file_operations structure, defining actual operation functions such as opening, closing, reading, and writing.
[0052] Each operation of opening a device file corresponds to a file structure in the kernel, and the operation function of the device is in the f_op field of the file structure; the operation file_operations of the virtualization architecture is associated with the f_op field of the file structure, therefore, if the operation file_operations of the virtualization architecture is updated, the operation function associated with the f_op field of each opened file structure can be updated to the new operation set new_file_operations; however, if the f_op field of the file structure needs to be updated, each file structure generated by opening the device file needs to be saved, and the f_op field of each file structure needs to be updated, and if there are many processes using the virtualization device, the overhead of maintenance and query operations is also large.
[0053] Therefore, there is an urgent need for a data processing method to solve the problem of large overhead of maintenance and query operations.
[0054] In the present disclosure, two data processing methods are provided, and the present disclosure also relates to a data processing system, a computing device, a computer readable storage medium and a computer program product, which are described in detail in the following embodiments.
[0055] Referring to FIG. 1, FIG. 1 shows a scene schematic diagram of a data processing method according to an embodiment of the present disclosure.
[0056] Specifically, the data processing method is implemented by a data processing system, and the data processing system includes an entry management unit 102 and a function management unit 104. The entry management unit 102 provides a simple operation entry and does not undertake specific virtualization functions, and basically does not have the need for hot upgrade, therefore, in the case of hot upgrade of the data processing system, the target function management unit after upgrade can be replaced with the initial function management unit before upgrade by hot upgrading the function management unit 104.
[0057] The entry management unit 102 is configured to determine a target file structure corresponding to a data processing request for a target device in response to the data processing request, wherein the target file structure contains a first pointer pointing to a global virtual operation function set, the global virtual operation function set is determined according to the first pointer, and a target field pointing to a target operation function in a target function management unit in a global file structure is determined according to a second pointer corresponding to the data processing request in the global virtual operation function set, and the target operation function is determined according to the target field. In the case that the upgraded target function management unit replaces the initial function management unit, the target operation function replaces an initial operation function corresponding to the initial function management unit. The function management unit 104 is configured to perform data processing for the target device according to the target operation function.
[0058] The data processing method provided by one embodiment of the present disclosure determines the first pointer of the target file structure to point to the global virtual operation function set, and according to the second pointer corresponding to the data processing request in the global virtual operation function set, the target field pointing to the target operation function in the target function management unit in the global file structure can be determined, wherein the target function management unit is obtained by upgrading the initial function management unit, and the target operation function in the target function management unit is determined according to the target field. Without changing the target file structure and the global virtual operation function set, the maintenance and query operation overhead is reduced, and the data processing for the target device can be more effective and faster according to the target operation function which is the operation function corresponding to the upgraded and optimized target function management unit.
[0059] Referring to FIG. 2, FIG. 2 shows a flowchart of a data processing method according to one embodiment of the present disclosure, which specifically includes the following steps.
[0060] Step 202: In response to a data processing request for a target device, a target file structure corresponding to the data processing request is determined, wherein the target file structure contains a first pointer pointing to a global virtual operation function set.
[0061] The data processing request for the target device can be understood as a request initiated by an application program or a system component to interact with a specific hardware device, such as reading data on a hard disk, sending a print task to a printer, etc. These requests are initiated by system calls (such as read(), write(), ioctl(), etc.) and processed by the kernel.
[0062] The target file structure can be understood as a file structure object in the kernel, which represents an opened file or device; when a device file is opened by a process through a system call, the kernel creates such a file structure; it contains all relevant information of the current opened file, such as file offset, access mode (read, write, etc.).
[0063] The first pointer can be understood as a member in the target file structure, usually named f_op or similar, which is a pointer to a global virtual operation function set; the global virtual operation function set can be understood as a global data structure, which defines a series of function pointers, each of which points to a general or abstract device operation function (such as open, close, mmap, ioctl, etc.), and this global virtual operation function set acts as an intermediary layer connecting the specific device operation logic.
[0064] In practical applications, the embodiment of the present disclosure provides a virtualization architecture, which includes an entry management module and a function management module. The entry management module provides a simple operation entry and does not undertake specific virtualization functions, and the function is relatively simple and there is basically no need for hot upgrade. The function management module undertakes specific virtualization functions and is responsible for various functions of virtualization. The logic is relatively complex and is also a place where problems are more likely to occur. Moreover, with the evolution of the architecture, its function will become more and more complex, and the need for hot upgrade is urgent.
[0065] By splitting the virtualization architecture into two relatively independent modules, one entry management module provides an entry of the virtualization architecture, and its entry can be fixed as / dev / tj (a character device file); the other function management module is responsible for specific function management work.
[0066] Step 204: determining the global virtual operation function set according to the first pointer, and determining a target field in the global file structure that points to a target operation function in a target function management unit according to a second pointer corresponding to the data processing request in the global virtual operation function set, wherein the target function management unit is obtained by upgrading an initial function management unit.
[0067] The initial function management unit can be understood as the function management module before upgrading; and the target function management unit can be understood as the function management module after upgrading the initial function management unit.
[0068] Specifically, the function management module is a module loaded into the operating system kernel, responsible for managing and controlling various hardware resources of the computer system, and providing a system call interface for application programs to use. Through the function management module, management of system processes, memory management, device management, network management, and file system management can be achieved.
[0069] The second pointer can be understood as a function pointer defined in the global virtual operation function set, and the global file structure can be understood as a global structure, and the target field thereof stores the actual device operation function set. The target field can be understood as a pointer to the actual device operation function set. The target operation function can be understood as a device operation function in the current actual device operation function set.
[0070] Specifically, the f_op field of the file structure of each newly opened device file (such as / dev / tj) no longer directly points to the file_operations of a specific module, but uniformly points to the global virtual operation function set. In this way, no matter which device file is opened, the kernel will further indirectly call the actual device operation function pointed to by the target field in the global file structure when calling the operation through the global virtual operation function set.
[0071] Step 206: determining the target operation function according to the target field.
[0072] Specifically, the target field of the global structure points to the target operation function in the upgraded target function management unit. These target operation functions are defined in the device driver and achieve direct interaction with the hardware device to complete actual data reading, writing, and other operations.
[0073] In practical applications, when a user space program initiates a system call, the kernel first finds the corresponding file structure instance according to the file descriptor, determines the associated global virtual operation function set (for example, the global virtual operation function set is global_file_operations (which defines all device operation function pointers such as open, read, ioctl, etc.)) through the f_op (first pointer) of the file structure. According to the type of system call (such as read operation), the kernel will take out the corresponding function pointer (second pointer) from global_file_operations, such as the read function pointer.
[0074] The read function pointer is used to call the target field of the global structure (such as the fops field of the tj_g global structure), and the target field is used to call the actual device operation function (the actual device operation function is defined in the file_operations structure) to perform a data processing request, such as reading data from a hardware device to a kernel buffer.
[0075] Each open device file originally needs to independently save its corresponding file structure to save the pointer of the device operation function set in the file structure, which can cause a significant increase in memory consumption when there are a large number of concurrent accesses; by allowing all related device files to share the same set of global virtual operation functions, memory usage can be greatly reduced; and by maintaining a global and fixed entry point (global virtual operation function set), the lookup and scheduling overhead of the kernel when processing data processing requests for devices is reduced, and each operation is directly located to the specific operation function through the global entry, thereby improving the system response speed.
[0076] By introducing the global virtual operation function set and the global file structure, when the function management unit is updated, the target field in the global file structure only needs to be modified to point to the target function management unit, so that the device file operation logic can be updated in real time without changing each independent file structure, thereby reducing the overhead of the system when managing a large number of device files.
[0077] In one or more embodiments of the present disclosure, by loading the upgraded target function management unit and updating the initial operation function in the initial function management unit to the target operation function in the target function management unit, the target function management unit can be determined when the association between the target operation function and the target field is established, and the target operation function can be determined from the target function management unit through the target field. The specific implementation is as follows:
[0078] The target operation function is determined according to the target field, including:
[0079] The target function management unit is determined, and the target operation function set corresponding to the target function management unit is determined according to the target field;
[0080] The target operation function is determined from the target operation function set.
[0081] The target function management unit is determined, including:
[0082] The target function management unit is loaded after upgrading the initial function management unit, wherein the target function management unit is obtained by extending the reserved bit at the end of the data structure corresponding to the initial function management unit;
[0083] updating the initial operation function in the initial function management unit to a target operation function in the target function management unit;
[0084] establishing an association between the target operation function and a target field in the global file structure, and obtaining the target function management unit.
[0085] The target operation function set can be understood as a file_operations structure, and the specific operation function is determined from the file_operations structure.
[0086] Specifically, taking the device driver module as an example, the device driver module is upgraded.
[0087] A new version of the device driver module is written to implement improved or newly added functions, and corresponding device operation functions are defined. In the initialization function of the new version of the device driver module, the file_operations structure of the global or specific device is updated, and the new or modified target operation function that actually interacts with the device is defined in the structure. These target operation functions are responsible for processing the read, write, control and other operations of the device. The old version of the device driver module (initial function management unit) is unloaded, and then the target function management unit is loaded, which is automatically completed through the module management command or script provided by the kernel.
[0088] In the data structure corresponding to the initial function management unit, some reserved bits are usually reserved at the end of the data structure. The target function management unit after upgrading is obtained by expanding in these reserved bits. By loading the target function management unit, the initial operation function in the initial function management unit is updated to the target operation function in the target function management unit.
[0089] The association between the target operation function and the target field in the global file structure is established. In this way, by updating the pointer of the target field in the global file structure, the data processing request of the device will be redirected to the upgraded target operation function, thereby realizing seamless switching of functions.
[0090] The data processing method provided by the embodiment of the disclosure can repair the problems of the original initial function management unit and add new functions, thereby improving the performance and stability of the system as a whole. Through dynamic loading and updating, the system can complete the upgrade without restarting, ensuring the continuity of the service. Through the virtualization architecture, the function management unit in the architecture can be updated separately without affecting other units, thereby improving the modularization degree and long-term maintainability of the system.
[0091] In one or more embodiments of the present disclosure, the initial operation function in the initial function management unit needs to be replaced by the target operation function in the target function management unit to realize the replacement of each sub-function in the initial function management unit. The specific implementation is as follows:
[0092] The updating of the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises:
[0093] The initial interaction interface function in the initial function management unit is replaced by the target interaction interface function in the target function management unit, wherein the target interaction interface function is an interface function for the target function management unit to interact with other units except the target function management unit.
[0094] The initial interaction interface can be understood as an interface in the initial function management unit for communicating with other modules or system components, which is usually a series of functions. The target interaction interface can be understood as an interface in the target function management unit for communicating with other modules or system components.
[0095] Specifically, in the upgrading process, the new interface (target interaction interface) defined in the new module (target function management unit) needs to replace the old interface (initial interaction interface) in the old module (initial function management unit) to enable the loaded new module to communicate with other modules.
[0096] In one or more embodiments of the present disclosure, the replacing of the initial interaction interface function in the initial function management unit by the target interaction interface function in the target function management unit comprises:
[0097] The initial export interface function in the initial function management unit is replaced by the target export interface function in the target function management unit, wherein the target export interface function is used by other units except the target function management unit to access and / or call the target function management unit.
[0098] The initial dependent interface function in the initial function management unit is replaced by the target dependent interface function in the target function management unit, wherein the target dependent interface function is used by the target function management unit to access and / or call other units except the target function management unit.
[0099] The initial interaction interface function comprises the initial export interface function and the initial dependent interface function. The initial export interface function can be understood as a function in the initial function management unit that needs to be recognized and called by other modules or systems. The initial dependent interface function can be understood as a function in the initial function management unit that depends on other modules.
[0100] The target interaction interface includes a target export interface function and a target dependent interface function. The target export interface function can be understood as a function in the target function management unit that needs to be recognized and called by other modules or systems. The target dependent interface function can be understood as a function in the target function management unit that depends on other modules.
[0101] Specifically, when the module is upgraded, the new module can provide new or modified function functions, which need to be recognized and called by other modules or systems. Therefore, the symbol table about the functions in the system needs to be updated to ensure that the caller can find the address of the new function. If the upgraded new module depends on the functions provided by other modules, the dependencies also need to be updated to the version corresponding to the new module, which ensures that the new module can correctly work with other modules in the system.
[0102] The data processing method provided by the embodiments of the present disclosure replaces the initial interaction interface function in the initial function management unit with the target interaction interface function in the target function management unit, so that the target function management unit can communicate and interact with other modules.
[0103] In one or more embodiments of the present disclosure, the replacing the initial interaction interface function in the initial function management unit with the target interaction interface function in the target function management unit comprises:
[0104] locking the initial interaction interface function in the initial function management unit, and replacing the initial interaction interface function in the initial function management unit with the target interaction interface function in the target function management unit.
[0105] The lock can be understood as an RCU (Read-Copy Update) lock or other synchronization mechanism, which protects the updating process through the lock mechanism.
[0106] Specifically, the RCU lock is usually used for reader-writer problems, allowing multiple readers to access shared resources at the same time, but only one writer can modify it. In this case, the RCU lock is used to ensure that during the process of updating the initial interaction interface in the initial function management unit to the target interaction interface in the target function management unit, no reader (i.e. code that is executing the old function call) is interrupted or encounters inconsistent state, while also avoiding the removal of the old module.
[0107] The data processing method provided by the embodiments of the present disclosure can ensure the stability and correctness of the system by correctly updating and redirecting the interface in the case of module upgrade, and the synchronization mechanism such as RCU lock is used to protect the shared resources to avoid data inconsistency or race conditions.
[0108] In one or more embodiments of the present disclosure, the updating of the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises:
[0109] determining a target virtual machine call function in the target function management unit, wherein the target virtual machine call function is used to switch the running mode of the target processor;
[0110] updating an initial virtual machine call function in the initial function management unit to the target virtual machine call function;
[0111] After the updating of the initial virtual machine call function in the initial function management unit to the target virtual machine call function, the method further comprises:
[0112] establishing an association between the target virtual machine call function and a target virtual machine call field in the global file structure.
[0113] The target virtual machine call function can be understood as a processing function that allows the operating system to call from a non-root mode to a root mode, for example, a processing function corresponding to vmcall (virtual machine call). Vmcall is a special mechanism that allows a guest operating system running at a non-privileged level (usually referred to as user mode or non-root mode) to request the execution of operations that can only be executed at a higher level (such as root mode), such as hardware management, memory mapping, I / O processing, etc. These requests are processed by a virtual machine monitor (VMMU or Hypervisor), which executes these privileged operations in a suitable secure and isolated environment and then returns the results to the guest operating system.
[0114] The target virtual machine call field can be understood as a field in the structure that contains a pointer to an array or table of vmcall function pointers. These functions are responsible for handling specific vmcall requests. When a guest operating system issues a vmcall, the VMMU will look up the vmcall table in this global structure and execute the corresponding function to respond to the request.
[0115] Specifically, similar to the way of establishing the target operation function and the target field in the global file structure, by determining the target virtual machine calling function in the target function management unit and establishing the association between the target virtual machine calling function and the target virtual machine calling field in the global file structure, the target function management unit can correctly process the vmcall request sent by the client operating system.
[0116] In one or more embodiments of the present disclosure, the initial state information file system corresponding to the initial function management unit can be unloaded, and a target state information file system corresponding to the target function management unit can be re-built. The specific implementation is as follows:
[0117] Loading the target function management unit upgraded from the initial function management unit, unloading the initial state information file system corresponding to the initial function management unit, and building a target state information file system corresponding to the target function management unit.
[0118] The initial state information file system can be understood as a proc file system (virtual file system) corresponding to the initial function management unit, and the target state information file system can be understood as a proc file system corresponding to the target function management unit. The proc file system is a pseudo file system, which is used to provide interfaces for interacting with the kernel and obtaining kernel state information.
[0119] Specifically, by unloading the initial state information file system of the initial function management unit and building the target state information file system corresponding to the target function management unit, the current target state information file system records the kernel state information corresponding to the target function management unit.
[0120] The data processing method provided by the embodiments of the present disclosure ensures that the system administrator and the application program can access the latest module state and function by updating the proc file system when loading the upgraded target function management unit.
[0121] In one or more embodiments of the present disclosure, the updating the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises:
[0122] Updating the initial scheduling function of the initial function management unit associated with the scheduling class to the target scheduling function of the target function management unit.
[0123] The scheduling class defines a set of rules and strategies for deciding how to manage and schedule different types of processes or threads to determine their timing and order on the CPU, and each task (or process) belongs to a certain scheduling class; the scheduler distinguishes tasks with different priorities or characteristics through scheduling classes (or scheduling strategies), for example, in Linux, there are real-time scheduling classes, normal scheduling classes, etc., each scheduling class has its specific scheduling algorithm and priority.
[0124] The initial scheduling function can be understood as the original function or method in the initial function management unit associated with a specific scheduling class responsible for task scheduling, which defines how to arrange the execution order of tasks according to a certain strategy (such as priority, time slice allocation, etc.).
[0125] The target scheduling function can be understood as the original function or method in the target function management unit associated with a specific scheduling class responsible for task scheduling, which can be a new scheduling function or a scheduling function optimized from the initial scheduling function, such as introducing a more efficient scheduling algorithm, a better resource allocation strategy, or optimizing for a specific scenario.
[0126] Specifically, by replacing the initial scheduling function of the old module with the target scheduling function of the new module, the underlying tasks can be executed according to the target scheduling function of the new module, thereby improving scheduling efficiency and other effects.
[0127] The data processing method provided by the embodiments of the present disclosure improves or customizes the scheduling behavior of the operating system by replacing the initial scheduling function with the target scheduling function, aiming to improve system performance, response speed, or resource utilization, etc.
[0128] In one or more embodiments of the present disclosure, by establishing an association between the scheduling entry and the scheduling operation function of the target scheduling class, the scheduler can first consider the target scheduling class through the scheduling entry, and implement the scheduling of the target scheduling class through the scheduling operation function of the target scheduling class. The specific implementation is as follows:
[0129] After updating the initial scheduling function of the initial function management unit associated with the scheduling class to the target scheduling function of the target function management unit, the method further comprises:
[0130] In the case where the scheduling class carries a priority identifier, the target scheduling class corresponding to the target priority is determined from the scheduling class according to the priority identifier;
[0131] From the target scheduling function, a scheduling operation function corresponding to the target scheduling class is determined;
[0132] An association relationship between the scheduling entry and a scheduling operation function corresponding to the target scheduling class is established.
[0133] The target scheduling class can be understood as a scheduling class that needs to be responded immediately or is crucial to system running, and the target priority can be understood as a higher level of priority. The scheduling entry can be understood as a main scheduling loop or a scheduling decision point of an operating system scheduler, which checks the current system state through the scheduling entry to determine whether task switching is needed and which task should be selected for execution if needed.
[0134] Specifically, according to the priority identifier carried by the scheduling class, a task corresponding to a higher priority, which needs to be responded immediately or is crucial to system running, is determined from the scheduling class, and a scheduling operation function corresponding to the task is determined, so that an association relationship between the scheduling entry and the scheduling operation function is established, so that when the scheduler makes a decision at the scheduling entry, the scheduling class of the higher priority is first checked to see whether there is a task in a ready state and can be run; if so, the scheduler will directly select the task of the higher priority to execute.
[0135] The data processing method provided by the embodiments of the present disclosure establishes an association relationship between the scheduling entry and the scheduling operation function corresponding to the target scheduling class, so that at any given moment, the system always gives priority to and attempts to execute a task with a higher priority. This design ensures that the system can quickly respond to urgent or critical tasks, while reasonably allocating resources to maintain overall performance and stability.
[0136] In one or more embodiments of the present disclosure, the updating of the initial operation function in the initial function management unit to the target operation function in the target function management unit includes:
[0137] The initial cooperative scheduling operation function of the initial function management unit that interacts with the guest operating system is updated to the target cooperative scheduling operation function of the target function management unit.
[0138] Specifically, cooperative scheduling refers to the cooperation between the guest operating system (Guest OS) and the virtualization layer (Hypervisor, virtualization architecture in the embodiments of the present disclosure), especially in resource management, allocation and scheduling of CPU time slices; for example, in a virtualization environment, in order to improve efficiency and ensure quality of service (QoS), there is an exchange of time slice information between the guest operating system cooperative scheduling process and the virtualization layer, so that the guest operating system can communicate and coordinate with the virtualization layer to some extent, so as to better manage resource usage.
[0139] And there is a unified set of operation functions for these interactions, in which the cooperative scheduling operation function is defined, so the initial cooperative scheduling operation function of the initial function management unit needs to be updated to the target cooperative scheduling operation function of the target function management unit; so as to support new functions and improve the overall system performance by using the updated target cooperative scheduling operation function.
[0140] In one or more embodiments of the present disclosure, the updating of the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises:
[0141] The initial wrapping function of the initial function management unit for processing direct memory access is updated to the target wrapping function of the target function management unit.
[0142] Specifically, the custom logic (such as memory tagging, access control, etc.) for direct memory access operations is integrated into the new module to obtain the target wrapping function, which can be determined by adjusting the previously implemented initial wrapping function, and the target wrapping function of the target function management unit is replaced by the initial wrapping function of the initial function management unit.
[0143] In one or more embodiments of the present disclosure, the updating of the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises:
[0144] The initial back-end storage function of the initial function management unit corresponding to memory swap is updated to the target back-end storage function of the target function management unit.
[0145] Wherein, memory swap (Swap) is the process of moving the memory page that is not used temporarily to the external storage (such as disk) by the operating system when the physical memory is insufficient, so as to release the physical memory for more active processes.
[0146] This process involves interaction with the back-end storage device, including zero page (pre-zeroed page for fast allocation), page compression (reducing disk space occupied by pages), and direct read and write operations with the disk; therefore, in the case of module upgrade, the initial back-end storage function related to memory swap needs to be updated to the target back-end storage function of the new module.
[0147] The data processing method provided by the embodiments of the present disclosure updates the initial back-end storage function of the old module to the target back-end storage function of the new module, ensures that the new module can correctly process all back-end operations related to memory swap, and ensures that when the memory resource is tight, the system can efficiently and reliably use the disk space to expand its available memory according to the target back-end storage function.
[0148] In one or more embodiments of the present disclosure, the updating of the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises:
[0149] In a case where it is determined, by the initial loop execution function of the initial function management unit corresponding to the virtual processor, that the virtual processor has the update mark, the initial loop execution function of the initial function management unit is updated to the target loop execution function of the target function management unit, so that the execution of the virtual processor jumps to the target loop execution function of the target function management unit.
[0150] Specifically, the virtual processor can be understood as a vCPU, and the update mark is set for each vCPU, which is a trigger point indicating that the vCPU needs to be transferred to a new module for execution next time it has an opportunity. The mark can be regarded as a light signal telling the vCPU to prepare for switching at an appropriate time. In the loop execution function (i.e., the core loop controlling the behavior of the vCPU) of the vCPU, the mark is checked periodically or at a specific event. If the mark is found to exist, it indicates that migration is needed.
[0151] Once the update mark is detected, the initial loop execution function of the initial function management unit is updated to the target loop execution function of the target function management unit. At this time, the control flow of the vCPU is redirected to the vCPU loop execution function of the new module (i.e., the target loop execution function of the target function management unit), and the vCPU is set to jump to the execution function of the new module. In a case where the vCPU is detected to have the update mark, the execution of the vCPU jumps to the vCPU loop execution function of the new module and starts execution from the set position of the jump execution function. This action is accompanied by switching of the execution context, and the execution stack of the old module is discarded, meaning that the old logic is no longer returned, but the execution continues from the initial state of the new module, ensuring the continuity of the logic.
[0152] In one or more embodiments of the present disclosure, the determination of the virtual processor having the update mark by the initial loop execution function of the initial function management unit corresponding to the virtual processor comprises:
[0153] Determining state information of the virtual processor by the initial loop execution function of the initial function management unit corresponding to the virtual processor.
[0154] Determining, according to the state information, that the virtual processor has the update mark.
[0155] Specifically, when the initial loop execution function is executed each time, the state information of the virtual processor is determined, and according to the state information, it is determined whether the virtual processor has an update mark, and in the case of existence, the execution of the virtual processor is jumped to the target loop execution function of the target function management unit.
[0156] In one or more embodiments of the present disclosure, the updating of the initial loop execution function of the initial function management unit to the target loop execution function of the target function management unit further comprises:
[0157] An association relationship between a target entry in the data structure corresponding to the virtual processor and a target mode entry corresponding to the target function management unit is established, so that when the virtual processor performs mode switching, the target mode entry is used to complete the mode switching, wherein the target entry is an entry for updating the running mode of the virtual processor.
[0158] Since the virtual processor has a mode switching process, an association relationship between a target entry in the data structure corresponding to the virtual processor and a target mode entry corresponding to the target function management unit is established at the entry of the mode switching, and the target mode entry is used to complete the mode switching.
[0159] In actual application, VMCS (Virtual Machine Control Structure) is a key data structure in x86 virtualization, which stores virtual machine state information and configuration for controlling virtual machine execution; the HOST_RIP field indicates the next instruction address that should be executed when the vCPU returns to the root mode from the non-root mode due to some reasons (such as external interruption, exception or VM exit). The field is updated to the entry point of the new module, which ensures that in future VM exit events, the vCPU will directly jump to the processing logic of the new module, and the switching of the logical module is completed.
[0160] In one or more embodiments of the present disclosure, the updating of the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises:
[0161] The initial interrupt processing function in the initial function management unit associated with the interrupt timer is updated to the target interrupt processing function in the target function management unit.
[0162] After the initial interrupt processing function in the initial function management unit associated with the interrupt timer is updated to the target interrupt processing function in the target function management unit, the method further comprises:
[0163] triggering the target virtual processor to switch mode, establishing an association between a target entry in a data structure corresponding to the target virtual processor and a target mode entry corresponding to the target function management unit in a case where the target virtual processor is running in a target mode, wherein the target virtual processor implements an interrupt using the interrupt timer.
[0164] The interrupt timer can be understood as a timer capable of implementing interrupt logic processing, which includes but is not limited to setting, triggering, and corresponding interrupt processing of the timer.
[0165] In actual application, for a newly created virtual CPU, since there is no real physical CPU corresponding thereto, the processing of the LAPIC timer of the virtual CPU cannot be completed by relying on hardware, and therefore, a software method needs to be used to simulate the behavior of the LAPIC timer, including setting, triggering, and corresponding interrupt processing of the timer. When an old module is upgraded to a new module, the processing function related to the LAPIC timer also needs to be updated to ensure that the new logic or behavior can be correctly executed, which means that the old LAPIC timer processing function needs to be replaced by the corresponding function in the new module.
[0166] After the target interrupt processing function is updated to the new module, it is necessary to ensure that all running virtual CPUs can perceive the changes; for this purpose, the system triggers a mechanism to make all running virtual CPUs exit to a virtualized root mode, in which the host operating system or the virtual machine manager (VMM) can safely modify the state and data structure of the virtual CPU without affecting the running of the guest operating system.
[0167] In one or more embodiments of the present disclosure, the loading of the target function management unit upgraded from the initial function management unit comprises:
[0168] loading the target function management unit upgraded from the initial function management unit, and acquiring a global lock;
[0169] After the global lock is acquired, the method further comprises:
[0170] In a case where the loading of the target function management unit is completed, the global lock is released.
[0171] Specifically, in a case where the target function management unit is loaded, a global lock is acquired, and in a case where the above entire upgrading process is completed, the held global lock is released, and then the target function management unit (i.e., the new module) is automatically loaded.
[0172] Step 208: performing data processing for the target device according to the target operation function.
[0173] Specifically, the data processing of the target device is implemented according to the target operation function in the upgraded target function management module, so that the target function management module can complete the data processing for the target device.
[0174] For example, taking a simple operation of reading a file on a hard disk by a user as an example, the user wants to read the content of a file through a text editor, and the editor program will call a system call interface provided by an operating system, such as a read() system call in a Linux system, and the user space requests to read the file content through the read() system call.
[0175] The sys_read() function in the kernel will be called, and the target operation function in the target function management module is determined through the entry management unit. At this time, the target operation function is a read operation function. If the file is located on a hard disk, the read operation will be further delegated to a block device driver, and the driver program will process the low-level read request, including constructing an I / O request package, sending a read command to a disk controller, and waiting for data return.
[0176] The data processing method provided by one embodiment of the present disclosure points the first pointer of the target file structure to the global virtual operation function set; and according to the second pointer corresponding to the responding data processing request in the global virtual operation function set, the target field in the global file structure pointing to the target operation function in the target function management unit is determined, wherein the target function management unit is obtained by upgrading the initial function management unit, and the target operation function in the target function management unit is determined according to the target field. Without changing the target file structure and the global virtual operation function set, the overhead of maintenance and query operations is reduced, and the data processing for the target device can be more effective and faster according to the target operation function, which is the corresponding operation function of the upgraded and optimized target function management unit.
[0177] Referring to FIG. 3, FIG. 3 shows a flowchart of another data processing method provided by one embodiment of the present disclosure, which specifically includes the following steps.
[0178] Step 302: loading a target function management unit upgraded from an initial function management unit, determining a target operation function in the target function management unit, and establishing an association relationship between the target operation function and a target field in a global file structure.
[0179] Step 304: in response to the data processing request for the target device, determining a target file structure body corresponding to the data processing request, wherein the target file structure body contains a first pointer pointing to a global virtual operation function set.
[0180] Step 306: determining the global virtual operation function set according to the first pointer, and determining a target field in a global file structure body pointing to the target operation function according to a second pointer corresponding to the data processing request contained in the global virtual operation function set.
[0181] Step 308: determining the target operation function according to the target field.
[0182] Step 310: performing data processing for the target device according to the target operation function.
[0183] The specific implementation can refer to the above embodiments, which will not be repeated here.
[0184] The data processing method provided by the embodiments of the present disclosure can subsequently realize more optimal and efficient data processing by loading the upgraded target function management unit and establishing the association between the target operation function in the target function management unit and the target field in the global file structure body, and then according to the target field, using the target operation function in the target function management unit to realize more optimal and efficient data processing when receiving a data processing request.
[0185] Referring to FIG. 4, FIG. 4 shows a processing process flowchart of a data processing method for module hot upgrade under a virtualization architecture according to an embodiment of the present disclosure, which specifically includes the following steps.
[0186] The virtualization structure is composed of an entry management module and a function management module; the virtualization architecture is provided to the operating system in the form of a module; in actual application, the virtualization architecture is split into two relatively independent modules, the entry management module can be a tj.ko module, which only provides the entry of the virtualization architecture, and its entry is fixed as / dev / tj; the function management module group can be a tj_hv_x.ko module (x is the version number, which changes with the increase of the number of hot upgrades, for example, 0, 1, 2…), which is responsible for specific function management work.
[0187] The entry / dev / tj owned by the tj.ko module is itself a character device, and through the function pointers of the set of file_operations corresponding to cdev.ops, the specific management operations are linked to the tj_hv_0.ko (i.e. the initial function management unit in the above embodiment) module; therefore, if it is necessary to hot upgrade the virtualization architecture, it is only necessary to load the new tj_hv_1.ko (i.e. the target function management unit in the above embodiment) module, and assign the new_file_operations of the new virtualization management function corresponding to the module to cdev.ops, so as to replace the old module; in this way, the subsequent newly applied virtualization operations will directly go through the virtualization method of the new module.
[0188] Specifically, in the case of upgrading the old module tj_hv_0.ko to the new module tj_hv_1.ko, the new module is loaded and initialized, and the initial state of the new module is configured, including memory allocation, data structure initialization, and driver registration; during the initialization process, a global lock can be added at the beginning of the initialization function of the new module, to ensure that / dev / tj is not used by other processes for hot upgrading or other operations during the short period of time when the new module tj_hv_1.ko is loaded and initialized.
[0189] In order to ensure compatibility, all structure bodies of the virtualization architecture must ensure compatibility; both the compatibility of the structure body and the structural compatibility of the new module to the old module are ensured; for example, the size of the structure body cannot be changed in principle, so a sufficient size needs to be reserved, and subsequent functional expansion can only use the reserved fields; at the same time, the semantics of each field that has been used cannot be changed, and the position of the field in the structure body cannot be changed; for the public data structure (the public data structure corresponding to the initial function management unit before upgrading), tj_hv_1.ko needs to parse the information of the public data structure; if the new module expands the data structure and hopes to directly reuse the old data structure, the new data structure can only be expanded at the reserved bits at the end of the data structure, to avoid information parsing errors; otherwise, a special data structure parsing conversion function needs to be constructed to handle the differences between the new and old data structures.
[0190] Step 402: Assigning the device operation function to the target field of the global structure body.
[0191] In practical applications, the kernel corresponds to a file structure for each operation of opening the device file, and the operation function of the device is in the f_op field of the file structure. The specific operation file_operations of the virtualization architecture is associated with the f_op field of the file structure. After hot upgrade, if the process opens the virtualization function device through the old module tj_hv_0.ko, because the virtualization management mode of the new module tj_hv_1.ko may change, and the file structure opened by the old module manages the file_operations provided by the old module, the old memory module tj_hv_0.ko can continue to be used to manage subsequent operations.
[0192] Although theoretically, our architecture can have countless tj_hv_x.ko and continue to evolve, but in order to ensure the convenience of operation and maintenance, the common practice is to maintain two modules tj_hv_0.ko and tj_hv_1.ko for interactive upgrade, and replace one with the other each time. In order to realize this alternative upgrade, it is necessary to ensure the compatibility of the new module with the old module. Therefore, if the virtualization management function of the new module tj_hv_1.ko is compatible with the old virtualization module tj_hv_0.ko, the operation set file_operations associated with the f_op field in each opened file structure can be updated to the operation set new_file_operations of the new module, so as to release the dependence on the old module, thereby releasing the old module and ensuring that the function of the newly loaded module is effective not only for new memory but also for existing memory.
[0193] However, if the f_op field of the file needs to be updated, each file structure generated by opening the device file needs to be saved, and if there are many processes using virtualization devices, the overhead of maintenance and query operations is also large, so further optimization can be performed. The cdev.ops in the device / dev / tj is associated with a fixed total entry global_file_operations. At the same time, this total entry calls the fops field in a global structure tj_g, which is associated with the structure of each tj_hv_x.ko module. The global structure tj_g and the fixed total entry global_file_operations are also defined in the tj.ko module as part of the global entry.
[0194] So the file interface after the device is opened, the f_ops field associated with it is all global_file_operations, and then the specific operation in this operation set will call tj_g->fops, thereby calling the specific device operation function in the new module new_file_operations; in the case of module update, update the tj_g->fops field, and all processes with inventory and incremental opening of the device will go to the logic of the new module.
[0195] After the initialization of the tj_hv_1.ko related structure is completed, the new new_file_operations corresponding to tj_hv_1.ko is assigned to the global associated tj_g->fops field; according to the above compatibility principle, the size of this tj_g structure must remain unchanged, and the bit of its fops field cannot be changed.
[0196] That is, in actual application, the f_op (first pointer) of the file structure body determines the associated global_file_operations (i.e. the global virtual operation function set in the above embodiment, which defines all device operation function pointers such as open, read, mmap, ioctl, etc.); according to the type of system call (such as read operation), the kernel will take out the corresponding read function pointer from global_file_operations.
[0197] Through this read function pointer, the target field of the global structure tj_g->fops field is called, which calls the actual device operation function (these actual device operation functions are defined in the file_operations structure) to execute the data processing request, such as reading data from the hardware device to the kernel buffer.
[0198] Step 404: interface management.
[0199] Each sub-function of the virtualization management program also needs to be updated, and the exported symbols need to be updated to the symbols corresponding to the new module; at the same time, the external symbols introduced into the function management module are updated to the new module; since these symbols are all function entrances, there is a process of function call, so the update process needs to be protected by RCU lock, in addition to updating the symbol link, it also needs to wait to ensure that the old function call is completed.
[0200] Wherein, the symbol usually refers to the identifier of executable code or data, which is used to represent functions, variables, constants, etc. in the compiled binary file; for modules, the symbol is the interface provided by them, allowing other modules or applications to call their functions through these interfaces.
[0201] The exported symbol refers to the functions and variables that the module intends to let other modules or applications access and call, which can be understood as the export interface in the above embodiment. In the scenario of upgrading the virtualization module, if the new module (e.g. tj_hv_1.ko) provides new functions or improves the old functions, it is necessary to ensure that other modules or system parts that use these functions can seamlessly call the corresponding functions in the new module instead of the old implementation.
[0202] The external symbol introduced to the virtualization module refers to the function interface provided by other modules that the new module itself depends on, which can be understood as the dependent interface in the above embodiment. In the upgrading process, if these external dependent interfaces are changed, the new module also needs to be adjusted accordingly to adapt to the new interfaces.
[0203] Thus, the smooth transition of interfaces between the new and old modules is ensured, and the compatibility with the kernel and modules is maintained through symbol management, which is the basis of the virtualization architecture design, and it ensures the seamless upgrade and expansion.
[0204] Step 406: Virtual machine management and control.
[0205] The function management module provides many vmcalls that call into the root mode from the non-root mode, and registers these calling functions into the vmcall field of the global structure tj_g, which is updated to the corresponding function of the new module.
[0206] In actual application, the new module (e.g. tj_hv_1.ko) may introduce new vmcall processing logic or optimize the existing vmcall. In order to ensure that the system can utilize these new functions after upgrading, in the global structure tj_g, the pointer to the vmcall processing function of the old module is replaced with the corresponding function pointer in the new module, which ensures that the vmcall logic in the new module is executed instead of the logic of the old module.
[0207] Step 408: System monitoring and configuration.
[0208] Specifically, the exported items in the proc file system corresponding to the old module tj_hv_0.ko are unloaded, and the proc file system corresponding to the new module tj_hv_1.ko is constructed; since the proc file system is updated by the method of unloading first and then rebuilding, the proc-related structure can be updated and changed.
[0209] Among them, the exported item generally refers to a specific file or directory created by the kernel module and exposed to the user space, which is used to display or modify the specific state information, configuration item of the kernel or module. For the virtualization modules tj_hv_0.ko and tj_hv_1.ko, these exported items include but are not limited to state monitoring (providing the current runtime state information of the module, such as resource usage, active memory amount, performance indicators, etc., to facilitate system administrator monitoring and debugging), configuration management (by exporting specific files, allowing user space programs or administrators to dynamically modify the configuration of the module, such as adjusting the CPU quota, memory limit, I / O strategy of the virtual machine, without the need to restart the service or module), etc.
[0210] When upgrading from tj_hv_0.ko to tj_hv_1.ko, the proc file system exported items of the old module need to be unloaded first, that is, all the files or directories under / proc created by tj_hv_0.ko are removed, to avoid the existence of old configuration items that may no longer be applicable or replaced by the new module. Then, the proc file system corresponding to the new module tj_hv_1.ko is built, which includes creating new or updated exported items to reflect the functions and configuration options provided by the new module. This process ensures that the system can use the new functions and configuration interfaces of the new module, while also avoiding potential conflicts or compatibility issues; by integrating the virtualization module state information through the proc file system, dynamic configuration and monitoring become possible.
[0211] Step 410: task scheduling and resource management.
[0212] Since various tasks of the underlying virtualization layer are uniformly scheduled by the scheduler, the scheduling class function (i.e. the initial scheduling function in the above embodiment, which not only contains specific functions, but also includes a series of operations such as task selection, dequeuing, enqueuing, running, priority, time slice updating, etc. that can perform scheduling tasks, for example, a sched_ops operation structure) of each priority of the underlying task corresponding to each physical CPU behind (including switching CPU, virtual CPU, lru, swap, etc.) needs to be updated to the scheduling class function of the new module (i.e. the target scheduling function in the above embodiment); that is, in the case of module update, the updated new_sched_ops operation structure of each priority is associated with the new module; in actual application, the updated target scheduling function needs to ensure compatibility with the initial scheduling function, so that the running scheduling function can seamlessly transition to the scheduling logic of the new module, such as correctly calling the enqueuing function of the new module for enqueuing when the running ends.
[0213] The scheduling class total entry is associated with higher priority scheduling class functions, and after the scheduler selects a background task (each background scheduling task itself is also a structure, which also needs to be compatible, and the operation function set is updated), it will automatically go to the logic of the new module.
[0214] The scheduler has a scheduling class total entry, which is the starting point of the entire scheduling process, responsible for deciding which task to execute next; this decision is based on the current system state, including the priority of tasks in each scheduling class, and when making scheduling decisions, the scheduler first considers higher priority scheduling classes. The purpose of this design is to ensure that critical tasks or urgent operations can be responded to and processed in a timely manner.
[0215] It also ensures that the operating system kernel can take advantage of the improved functions and optimization strategies provided by the new module, especially when handling underlying virtualization tasks, by adjusting the scheduling class and its associated functions, as well as setting the scheduling priority, to improve the overall performance, response speed and resource utilization of the system.
[0216] Step 412: Cooperative scheduling management.
[0217] For the cooperative scheduling logic, there is an exchange of information between the guest operating system cooperative scheduling process and the virtualization layer to actively yield time slice information, and these interactions have a unified set of operation functions, so these operation function sets also need to be updated.
[0218] In practical applications, the guest operating system may have some mechanisms that allow it to perceive that it is running in a virtualized environment and communicate with the virtualization layer through specific interfaces. This communication may include reporting its scheduling decisions (such as the end of the time slice, actively yielding the CPU), requesting resources (such as additional time slices, memory allocation), or responding to the virtualization layer's instructions.
[0219] In order to standardize and simplify this cross-layer interaction, a set of unified operation function sets or APIs (Application Programming Interface) are usually designed, which define how the guest operating system reports its state, requests operations or responds to the virtualization layer's scheduling instructions; for example, the guest operating system may inform the virtualization layer of its current CPU occupancy, changes in the state of the ready queue, etc. through specific functions.
[0220] As specific needs change, such as introducing new scheduling algorithms, optimizing resource allocation strategies, improving security features, etc., the original operation function set may need to be updated, which involves modifying or adding functions to support new interaction logic, while ensuring backward compatibility to avoid affecting the normal operation of existing guest operating systems.
[0221] In order to realize more efficient and flexible resource scheduling, a set of unified operation function sets are needed for information exchange and cooperative work between the customer operating system and the virtualization layer. At the same time, continuous optimization and update of these interfaces and function sets are essential to support new functions and improve overall system performance, so it is necessary to replace the function set corresponding to the old module with the function set corresponding to the new module when upgrading the old module to the new module.
[0222] Step 414: Memory tagging management.
[0223] For memory tagging logic, since DMA operations need to be intercepted, a layer of wrapping is done for the kernel's dma_ops, so this logic also needs to be updated to the wrapping function of the new module.
[0224] In practical applications, "memory tagging logic" and "intercepting DMA operations" refer to a technical means for customizing management of direct memory access (DMA) operations in the Linux kernel, mainly to avoid memory used for DMA operations from being swapped out. "Wrapping the kernel's dma_ops" means that without directly modifying the kernel source code, a wrapper layer is created to cover or extend the original DMA operation interface, so as to insert custom logic or monitoring code.
[0225] In the case of upgrading the old module, custom logic for DMA operations (such as memory tagging, access control, auditing, etc.) needs to be integrated into the new module, which usually involves updating the previously implemented dma_ops wrapping function to the function corresponding to the new module; of course, in practical applications, the previously implemented dma_ops wrapping function can also be inherited, that is, without changing its logic, based on the removal of the old module, by inheriting the previously implemented dma_ops wrapping function, to ensure that the new module can be seamlessly integrated into the kernel's DMA processing flow.
[0226] By extending the wrapping layer of DMA operations, new functions or optimized memory management strategies can be integrated to ensure that the system can handle direct memory access requests more efficiently and securely.
[0227] Step 416: Memory interaction and backend storage.
[0228] For memory exchange functions, it also involves operation functions of backend storage (zero page, compression, disk), so when the module is updated, the operation set of each backend device of Swap (swap partition, which functions to virtually use the backend space as memory after the physical memory is used up) needs to be updated to the backend storage operation function of the new module.
[0229] When improving or replacing the function management module, ensure that the new module can correctly handle all Swap-related backend operations, i.e., re-implement and optimize Swap-related backend storage operations in the new module, and ensure that the system can efficiently and reliably use disk space to expand its available memory when memory resources are tight, while considering various aspects of efficiency, performance, and resource management.
[0230] Step 418: mode switching and exception handling.
[0231] For vCPUs running in virtualized root mode, it is necessary to enter non-root mode to run the guest operating system continuously, and also to continuously trap out to handle exceptions. When updating, each vCPU needs to be switched to the new module's virtualization process. To do this, first, set an update flag for each vCPU and set the location of the new module's jump execution function. The old module's running function loop does not know this location and needs to be actively updated by the new module. Then, in the vCPU's loop execution function, check if there is an update flag. If there is, the vCPU's execution jumps to the new module's vcpu loop execution function and starts execution from the set jump execution function location. At the same time, the old module's execution stack is discarded and execution returns to the initial stack position. Moreover, the new module's vCPU loop execution function updates the HOST_RIP field of its vmcs after entering, which is the entry of the vCPU's root mode running. Its value needs to be updated to the corresponding entry of the new module, ensuring that the vCPU's running logic switches to the new module.
[0232] In practical applications, in a virtualized environment, vCPUs can run in two modes: root mode (also known as VMX root operation) and non-root mode (or guest mode, VMX non-root operation). In root mode, the hypervisor (virtual machine monitor) directly controls the CPU and handles virtualization-related tasks such as memory management, I / O simulation, etc. In non-root mode, the vCPU executes the code of the guest operating system, just like on a real CPU.
[0233] When the execution logic of the vCPU needs to be migrated from the old module to the new module, it cannot simply interrupt the current running state, but rather inserts update logic at the appropriate time (usually at the boundary of vCPU state transitions, such as returning from guest mode to root mode).
[0234] An update flag is set for each vCPU, which is a trigger point marking that the vCPU needs to migrate to the new module for execution at the next opportunity. This flag can be seen as a light-weight signal telling the vCPU to prepare for switching at the right time. In the loop execution function of the vCPU (i.e. the core loop controlling the behavior of the vCPU), the flag is checked periodically or at certain events. If the flag is found, it means that migration is needed.
[0235] Once the update flag is detected, the control flow of the vCPU is redirected to the vCPU loop execution function of the new module. This action is accompanied by a switch of the execution context. The stack memory of the old module execution stack can be reused, but needs to be returned to the top to start execution again, avoiding the presence of error information of the old module in it. This means that instead of returning to the old logic, execution continues directly from the initial state of the new module, ensuring the continuity of the logic.
[0236] VMCS (Virtual Machine Control Structure) is a key data structure in x86 virtualization, which stores the state information of the virtual machine and the configuration for controlling the execution of the virtual machine; the HOST_RIP field indicates the next instruction address that should be executed when the vCPU returns to the root mode from the non-root mode due to some reasons (such as external interruption, exception or VM exit). Updating this field to the entry point of the new module ensures that in future VM exit events, the vCPU will directly jump to the processing logic of the new module, completing the switching of the logic module.
[0237] Step 420: Virtual CPU management.
[0238] In practical applications, for a newly created virtual CPU, since there is no real physical CPU corresponding to it, the processing of its LAPIC (each CPU needs to be associated with an independent interrupt chip, which is called LAPIC) timer cannot rely on hardware to complete, therefore, a software method needs to be used to simulate the behavior of the LAPIC timer, including the setting, triggering and corresponding interruption processing of the timer; when the old module is upgraded to the new module, the processing function related to the LAPIC timer also needs to be updated to ensure that the new logic or behavior can be correctly executed; this means that the old LAPIC timer processing function needs to be replaced by the corresponding function in the new module.
[0239] After updating the processing function entry, it is necessary to ensure that all running virtual CPUs can perceive the changes; for this purpose, the system triggers a mechanism so that all running virtual CPUs exit to the virtualized root mode, in which the host operating system or the virtual machine manager (VMM) can safely modify the state and data structure of the virtual CPU without affecting the operation of the guest operating system.
[0240] After all virtual CPUs exit to the root mode, the system can perform necessary update operations, such as applying a new processing function, updating the HOST_RIP field in the VMCS, etc.; the update process needs to wait for each virtual CPU to complete its exit and re-enter the non-root mode operation to ensure that all virtual CPUs apply the new settings and logic.
[0241] By waiting for all virtual CPU running switches to be updated, the system can ensure that all virtual CPUs run according to the new logic and settings, thereby avoiding potential race conditions or inconsistencies.
[0242] Step 422: update the flow control.
[0243] After all the above upgrade processes are completed, the entire hot upgrade process can be completed, the global lock is released, and then the new module is automatically loaded; after that, the newly opened device will call the virtualization function of the new module tj_hv_1.ko through the same device / dev / tj to complete; the inventory file structure will also go to the logic functions of the new module.
[0244] The data processing method provided by one embodiment of the present disclosure includes the following steps: determining a target field in a global file structure that points to a target operation function according to a second pointer corresponding to a response data processing request in a global virtual operation function set; and determining a target operation function in a target function management unit according to the target field in a case where an initial function management unit exists in the target function management unit after upgrading. The target file structure and the global virtual operation function set do not need to be changed, thereby reducing the overhead of maintenance and query operations. In a case where the target operation function is a corresponding operation function in the target function management unit after upgrading and optimization, the data processing for the target device can be more effective and faster according to the target operation function.
[0245] Corresponding to the method embodiments described above, the present disclosure also provides a data processing system embodiment. FIG. 5 shows a structural schematic diagram of a data processing system 500 according to one embodiment of the present disclosure. As shown in FIG. 5, the system includes an entry management unit 502 and a function management unit 504, wherein,
[0246] The entry management unit 502 is configured to determine a target file structure corresponding to a data processing request for a target device in response to the data processing request, wherein the target file structure contains a first pointer pointing to a global virtual operation function set, the global virtual operation function set is determined according to the first pointer, and a target field pointing to a target operation function in a target function management unit is determined in a global file structure according to a second pointer corresponding to the data processing request contained in the global virtual operation function set, wherein the target function management unit is obtained by upgrading an initial function management unit, and the target operation function is determined according to the target field.
[0247] The function management unit 504 is configured to perform data processing for the target device according to the target operation function.
[0248] The above is a schematic scheme of the data processing system of the embodiment. It should be noted that the technical scheme of the data processing system and the technical scheme of the data processing method described above belong to the same concept, and the details of the technical scheme of the data processing system which are not described in detail can be referred to the description of the technical scheme of the data processing method.
[0249] FIG. 6 shows a structural block diagram of a computing device 600 according to one embodiment of the present disclosure. The components of the computing device 600 include but are not limited to a memory 610 and a processor 620. The processor 620 is connected with the memory 610 through a bus 630, and a database 650 is used to save data.
[0250] The computing device 600 also includes an access device 640 that enables the computing device 600 to communicate via one or more networks 660. Examples of such networks include a public switched telephone network (PSTN), a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or combinations of such networks, such as the Internet. The access device 640 can include one or more of any type of network interface (for example, a network interface card (NIC)) such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, a Worldwide Interoperability for Microwave Access (Wi-MAX) interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, a Bluetooth interface, a Near Field Communication (NFC).
[0251] In one embodiment of the present disclosure, the above-mentioned components of the computing device 600 and other components not shown in FIG. 6 can also be connected to each other, for example, through a bus. It should be understood that the computing device structure block diagram shown in FIG. 6 is only for the purpose of example, and is not a limitation on the scope of the present disclosure. Those skilled in the art can add or replace other components as needed.
[0252] The computing device 600 can be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (for example, a tablet computer, a personal digital assistant, a laptop computer, a notebook computer, a netbook, and the like), a mobile phone (for example, a smartphone), a wearable computing device (for example, a smartwatch, smart glasses, and the like), or other types of mobile devices, or a stationary computing device such as a desktop computer or a personal computer (PC). The computing device 600 can also be a mobile or stationary server.
[0253] The processor 620 is configured to execute instructions of a computer program to implement the steps of the above-mentioned data processing method.
[0254] The various embodiments in the present disclosure are described in a progressive manner, and the same or similar parts among the various embodiments can be referred to each other. Each embodiment focuses on the difference from other embodiments. In particular, the computing device embodiment is described simply because it is basically similar to the data processing method embodiment, and the relevant part can be referred to the description of the data processing method embodiment.
[0255] An embodiment of the present disclosure further provides a computer readable storage medium, which stores computer programs / instructions, and the computer programs / instructions are executed by a processor to realize the steps of the above data processing method.
[0256] The various embodiments in the present disclosure are described in a progressive manner, and the same or similar parts among the various embodiments can be referred to each other. Each embodiment focuses on the difference from other embodiments. In particular, the computer readable storage medium embodiment is described simply because it is basically similar to the data processing method embodiment, and the relevant part can be referred to the description of the data processing method embodiment.
[0257] An embodiment of the present disclosure further provides a computer program product, which includes computer programs / instructions, and the computer programs / instructions are executed by a processor to realize the steps of the above data processing method.
[0258] The above is a schematic scheme of the computer program product of the embodiment. It should be noted that the technical scheme of the computer program product and the technical scheme of the above data processing method belong to the same concept, and the details of the technical scheme of the computer program product which are not described in detail can be referred to the description of the technical scheme of the data processing method.
[0259] The above describes specific embodiments of the present disclosure. Other embodiments are within the scope of the appended claims. In some cases, the acts or steps recited in the claims can be performed in a different order than the order in which they are recited and still accomplish desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve the desired results. In certain implementations, multitasking and parallel processing can be advantageous.
[0260] The computer readable medium can include any entity or apparatus capable of carrying the computer program code, recording medium, U disk, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signal, telecommunication signal, software distribution medium, etc. It should be noted that the computer readable medium can include appropriate additions or subtractions according to the requirements of patent practice. For example, according to the patent practice in some regions, the computer readable medium does not include electrical carrier signals and telecommunication signals.
[0261] It should be noted that, for the foregoing method embodiments, in order to facilitate description, each is described as a combination of a series of acts, but those skilled in the art should appreciate that the embodiments of the present disclosure are not limited by the order of the described acts, because, according to the embodiments of the present disclosure, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should appreciate that the embodiments described in the specification are all preferred embodiments, and the acts and modules involved are not necessarily essential to the embodiments of the present disclosure.
[0262] In the above embodiments, the description of each embodiment has its own focus, and the parts not described in detail in a certain embodiment can be referred to the related description of other embodiments.
[0263] The preferred embodiments of the present disclosure disclosed above are only used to help explain the present disclosure. The alternative embodiments do not describe all the details and do not limit the invention to the specific embodiments described. Obviously, according to the content of the embodiments of the present disclosure, many modifications and changes can be made. The present disclosure selects and describes these embodiments in order to better explain the principles and practical applications of the embodiments of the present disclosure, so that those skilled in the art can well understand and utilize the present disclosure. The present disclosure is limited only by the claims and their full scope and equivalents.
Claims
1. A data processing method, comprising: determining a target file structure corresponding to a data processing request for a target device in response to the data processing request, wherein the target file structure contains a first pointer pointing to a global virtual operation function set; determining the global virtual operation function set according to the first pointer, and determining a target field pointing to a target operation function in a target function management unit in a global file structure according to a second pointer contained in the global virtual operation function set and corresponding to the data processing request, wherein the target function management unit is obtained by upgrading an initial function management unit; determining the target operation function according to the target field; and performing data processing for the target device according to the target operation function. 2.The data processing method of claim 1, wherein the determining the target operation function according to the target field comprises: determining a target function management unit, and determining a target operation function set corresponding to the target function management unit according to the target field; and determining the target operation function from the target operation function set. 3.The data processing method of claim 2, wherein the determining the target function management unit comprises: loading the target function management unit obtained by extending a reserved bit at the end of a data structure corresponding to an initial function management unit; updating an initial operation function in the initial function management unit to a target operation function in the target function management unit; and establishing an association between the target operation function and the target field in the global file structure to obtain the target function management unit. 4.The data processing method of claim 3, wherein the updating the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises: replacing an initial interaction interface function in the initial function management unit with a target interaction interface function in the target function management unit, wherein the target interaction interface function is an interface function used by the target function management unit to interact with other units except the target function management unit. 5.The data processing method of claim 4, wherein the initial interaction interface function comprises an initial export interface function and an initial dependency interface function; and the replacing the initial interaction interface function in the initial function management unit with the target interaction interface function in the target function management unit comprises: replacing the initial export interface function in the initial function management unit with a target export interface function in the target function management unit, wherein the target export interface function is used by other units except the target function management unit to access and / or call the target function management unit. Replace the initial dependent interface function in the initial function management unit with a target dependent interface function in the target function management unit, wherein the target dependent interface function is used for the target function management unit to access and / or invoke other units in addition to the target function management unit.
6. The data processing method of claim 4, wherein the replacing the initial interactive interface function in the initial function management unit with a target interactive interface function in the target function management unit comprises: locking the initial interactive interface function in the initial function management unit, and replacing the initial interactive interface function in the initial function management unit with the target interactive interface function in the target function management unit.
7. The data processing method of any one of claims 3-6, wherein the updating the initial operation function in the initial function management unit to a target operation function in the target function management unit comprises: determining a target virtual machine calling function in the target function management unit, wherein the target virtual machine calling function is used to switch a running mode of a target processor; updating an initial virtual machine calling function in the initial function management unit to the target virtual machine calling function; and after the updating the initial virtual machine calling function in the initial function management unit to the target virtual machine calling function, further comprising: establishing an association between the target virtual machine calling function and a target virtual machine calling field in the global file structure.
8. The data processing method of any one of claims 3-7, further comprising: uninstalling an initial state information file system corresponding to the initial function management unit, and constructing a target state information file system corresponding to the target function management unit.
9. The data processing method of any one of claims 3-8, wherein the updating the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises: updating an initial scheduling function of the initial function management unit associated with a scheduling class to a target scheduling function of the target function management unit.
10. The data processing method of claim 9, wherein after the updating the initial scheduling function of the initial function management unit associated with the scheduling class to the target scheduling function of the target function management unit, further comprising: in a case where the scheduling class carries a priority identifier, determining a target scheduling class corresponding to a target priority from the scheduling class according to the priority identifier; determining a scheduling operation function corresponding to the target scheduling class from the target scheduling function; and establishing an association between a scheduling entry and the scheduling operation function corresponding to the target scheduling class.
11. The data processing method of any one of claims 3-10, wherein the updating the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises: updating an initial co-scheduling operation function of the initial function management unit interacting with a client operating system to a target co-scheduling operation function of the target function management unit.
12. The data processing method of any one of claims 3-11, wherein the updating of the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises: updating an initial wrapper function of the initial function management unit processing for direct memory access to a target wrapper function of the target function management unit.
13. The data processing method of any one of claims 3-12, wherein the updating of the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises: updating an initial back-end storage function of the initial function management unit corresponding to memory exchange to a target back-end storage function of the target function management unit.
14. The data processing method of any one of claims 3-13, wherein the updating of the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises: updating, in a case where it is determined, by an initial loop execution function of the initial function management unit corresponding to a virtual processor, that the virtual processor has an update mark, the initial loop execution function of the initial function management unit to a target loop execution function of the target function management unit, so as to make the virtual processor jump to the target loop execution function of the target function management unit.
15. The data processing method of claim 14, wherein the determining, by the initial loop execution function of the initial function management unit corresponding to the virtual processor, that the virtual processor has the update mark comprises: determining, by the initial loop execution function of the initial function management unit corresponding to the virtual processor, state information of the virtual processor; determining, according to the state information, that the virtual processor has the update mark.
16. The data processing method of claim 14 or 15, further comprising, after the updating of the initial loop execution function of the initial function management unit to the target loop execution function of the target function management unit: establishing an association between a target entry in a data structure corresponding to the virtual processor and a target mode entry corresponding to the target function management unit, so as to use the target mode entry to complete mode switching of the virtual processor, wherein the target entry is an entry for updating a running mode of the virtual processor.
17. The data processing method of any one of claims 3-16, wherein the updating of the initial operation function in the initial function management unit to the target operation function in the target function management unit comprises: updating an initial interrupt processing function in the initial function management unit associated with an interrupt timer to a target interrupt processing function in the target function management unit.
18. The data processing method of claim 17, after the updating the initial interrupt processing function associated with the interrupt timer in the initial function management unit to the target interrupt processing function in the target function management unit, further comprising: triggering the target virtual processor to switch modes, and establishing an association between a target entry in a data structure corresponding to the target virtual processor and a target mode entry corresponding to a target mode of the target function management unit, in a case where the target virtual processor is running in the target mode, wherein the target virtual processor implements interrupts using the interrupt timer.
19. The data processing method of any one of claims 3-18, wherein the loading the target function management unit upgraded from the initial function management unit comprises: loading the target function management unit upgraded from the initial function management unit and obtaining a global lock; after the obtaining the global lock, further comprising: releasing the global lock in a case where the loading of the target function management unit is completed, to determine the target operation function in the target function management unit according to the target field.
20. A data processing method, comprising: loading a target function management unit upgraded from an initial function management unit, determining a target operation function in the target function management unit, and establishing an association between the target operation function and a target field in a global file structure; in response to a data processing request for a target device, determining a target file structure corresponding to the data processing request, wherein the target file structure contains a first pointer pointing to a global virtual operation function set; determining the global virtual operation function set according to the first pointer, and determining a target field in a global file structure pointing to the target operation function according to a second pointer corresponding to the data processing request in the global virtual operation function set; determining the target operation function according to the target field; performing data processing for the target device according to the target operation function.
21. A data processing system, comprising an entry management unit and a function management unit, comprising: the entry management unit, in response to a data processing request for a target device, determining a target file structure corresponding to the data processing request, wherein the target file structure contains a first pointer pointing to a global virtual operation function set, determining the global virtual operation function set according to the first pointer, and determining a target field in a global file structure pointing to a target operation function in a target function management unit according to a second pointer corresponding to the data processing request in the global virtual operation function set, wherein the target function management unit is obtained by upgrading an initial function management unit; determining the target operation function according to the target field; the function management unit, performing data processing for the target device according to the target operation function.
22. A computing device, comprising: a memory and a processor; The memory is configured to store computer programs / instructions, and the processor is configured to execute the computer programs / instructions, and the computer programs / instructions, when executed by the processor, implement the steps of the data processing method according to any one of claims 1 to 20.
23. A computer readable storage medium storing computer programs / instructions, and the computer programs / instructions, when executed by a processor, implement the steps of the data processing method according to any one of claims 1 to 20.
24. A computer program product comprising computer programs / instructions, and the computer programs / instructions, when executed by a processor, implement the steps of the data processing method according to any one of claims 1 to 20.
Citation Information
Patent Citations
System data processing system and method
CN103577465A
Data processing method and device, and computing equipment
CN110851181A
Memory management system and method
CN113312170A
Method for transparent extending document system function
CN1553325A
File operation control device, system, method, and program
US20070282917A1