Interrupt event handling methods, devices, storage media, and program products

By differentiating and processing interrupt requests related to and unrelated to the BIOS GUI, prioritizing BIOS GUI requests and delaying the processing of other requests, the problem of low BIOS GUI response efficiency is solved, thus improving the user experience.

CN120973504BActive Publication Date: 2026-01-30INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511502336.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-10-21
Publication Date
2026-01-30
Estimated Expiration
2045-10-21

AI Technical Summary

Technical Problem

The BIOS GUI has low responsiveness, resulting in a poor user experience.

Method used

By receiving interrupt requests and distinguishing them into BIOS GUI-related and non-BIOS GUI-related requests, BIOS GUI requests are processed first, while non-BIOS GUI requests are added to the delayed processing list to prevent non-BIOS GUI requests from preempting resources.

Benefits of technology

Improved BIOS GUI responsiveness, reduced interface lag, and enhanced user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120973504B_ABST
    Figure CN120973504B_ABST
Patent Text Reader

Abstract

This application discloses an interrupt event handling method, device, storage medium, and program product, relating to the field of server technology. The method includes: receiving a target interrupt request; in response to the target interrupt request being a first interrupt request, executing a first task corresponding to the first interrupt request to generate an execution result, and performing a partial update on the Basic Input / Output System (BIOS) graphical user interface based on the execution result; the first interrupt request being an interrupt request related to the BIOS GUI; and in response to the target interrupt request being a second interrupt request, adding a second task corresponding to the second interrupt request to a delayed processing list, wherein the second interrupt request and the first interrupt request are of different interrupt types. This method can improve the response efficiency of the BIOS GUI.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of server technology, and in particular to an interrupt event handling method, device, storage medium, and program product. Background Technology

[0002] The Basic Input Output System (BIOS) and its graphical user interface (GUI) emerged with the development of computer technology.

[0003] Currently, users can configure system parameters through the BIOS GUI, making parameter settings relatively convenient. However, the above method suffers from the issue of low BIOS GUI response efficiency. Summary of the Invention

[0004] This application provides interrupt event handling methods, devices, storage media, and program products to at least solve the problem of low BIOS GUI response efficiency in related technologies.

[0005] In a first aspect, this application provides an interrupt event handling method applied to an electronic device, the method comprising:

[0006] Receive the target interrupt request;

[0007] In response to the target interrupt request being the first interrupt request, the first task corresponding to the first interrupt request is executed to generate an execution result, and the basic input / output system graphical user interface is partially updated based on the execution result; the first interrupt request is an interrupt request related to the basic input / output system graphical user interface;

[0008] In response to the target interrupt request being the second interrupt request, the second task corresponding to the second interrupt request is added to the delayed processing list. The second interrupt request is a different interrupt type from the first interrupt request.

[0009] Thirdly, this application provides an interrupt event handling device applied to an electronic device, the device comprising: a receiving module, an execution module, and an update module, wherein...

[0010] The receiving module is used to receive target interrupt requests;

[0011] In response to the target interrupt request being a first interrupt request, the execution module is used to execute the first task corresponding to the first interrupt request and generate an execution result; the update module is used to perform partial updates to the basic input / output system graphical user interface based on the execution result; the first interrupt request is an interrupt request related to the basic input / output system graphical user interface;

[0012] In response to the target interrupt request being a second interrupt request, the execution module is further configured to add the second task corresponding to the second interrupt request to the delayed processing list, wherein the second interrupt request is a different interrupt type from the first interrupt request.

[0013] Thirdly, this application provides an electronic device, including: a memory for storing a computer program; and a processor for implementing the steps of any of the above-described interrupt event handling methods when executing the computer program.

[0014] Fourthly, this application also provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps of any of the above-described interrupt event handling methods.

[0015] Fifthly, this application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of any of the above-described interrupt event handling methods.

[0016] The technical solution provided in this application allows an electronic device to receive a target interrupt request. When the target interrupt request is a first interrupt request, the electronic device can execute the first task corresponding to the first interrupt request to generate an execution result, and perform a partial update to the BIOS GUI based on the execution result. When the target interrupt request is a second interrupt request, the electronic device can add the second task corresponding to the second interrupt request to a delayed processing list. In this method, the electronic device can prioritize processing interrupt requests related to the BIOS GUI and delay processing interrupt requests not related to the BIOS GUI, preventing interrupt requests not related to the BIOS GUI from preempting processing resources for interrupt requests related to the BIOS GUI. This method can improve the response efficiency of the BIOS GUI and reduce interface lag. Attached Figure Description

[0017] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0018] Figure 1 A schematic diagram of an architecture provided for an embodiment of this application;

[0019] Figure 2 A flowchart illustrating the interrupt event handling method provided in the embodiments of this application. Figure 1 ;

[0020] Figure 3A flowchart illustrating the interrupt event handling method provided in the embodiments of this application. Figure 2 ;

[0021] Figure 4 A flowchart illustrating the interrupt event handling method provided in the embodiments of this application. Figure 3 ;

[0022] Figure 5 A flowchart illustrating the interrupt event handling method provided in the embodiments of this application. Figure 4 ;

[0023] Figure 6 This is a schematic diagram of the structure of an interrupt event handling device provided in an embodiment of this application;

[0024] Figure 7 A schematic diagram of the structure of the electronic device provided in this application. Detailed Implementation

[0025] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0026] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0027] The technical solutions provided in this application relate to BIOS GUI. For ease of understanding, the BIOS GUI will be described first.

[0028] A BIOS GUI refers to upgrading the traditional text-based interface to a graphical interface, allowing users to operate the system through intuitive icons and menus instead of traditional command-line commands. The GUI makes it easier for users to understand and operate BIOS settings, especially during hardware configuration and system optimization. Users can visually view and adjust various settings through the graphical interface. As an upgrade from the traditional text-based interface, the core significance of the BIOS GUI lies in significantly improving user experience and operational efficiency through visual interaction, mainly in the following aspects:

[0029] (1) Operation intuitiveness and ease of use

[0030] The GUI uses icons, menus, and a visual layout, and supports mouse operation, allowing users to quickly locate settings options without having to memorize complex key commands. Compared to traditional text-based interfaces that rely on keyboard navigation, this significantly lowers the barrier to entry for users.

[0031] (2) The functions are more abundant.

[0032] Through a graphical, panelized, and layered design, the BIOS can display more advanced settings options and intuitively show hardware status information, helping users to have full control over the system's underlying configuration. For example, advanced settings options may include virtualization on / off or secure boot configuration, while hardware status information may include temperature or voltage.

[0033] (3) Modern hardware management support

[0034] The GUI is typically deeply integrated with Unified Extensible Firmware Interface (UEFI) firmware, providing configuration entry points for modern technologies such as booting from NVM Express Solid-State Drive (NVMe SSD), Secure Boot, and hardware virtualization, thus meeting the needs of high-performance computing and security.

[0035] (4) Reduce the risk of misoperation

[0036] The graphical preview function and real-time prompts reduce system instability caused by incorrect parameter input and improve setting security.

[0037] To facilitate understanding, the following will be combined with Figure 1 The hardware architecture involved in the embodiments of this application will be described. Figure 1 This is a schematic diagram of an architecture provided for an embodiment of this application. Please refer to [link / reference]. Figure 1 Electronic devices contain a processor and also run a BIOS. For example, an electronic device can be a server, and the processor can be a central processing unit (CPU).

[0038] Interrupt sources can be located externally to electronic devices. An interrupt source is a physical or logical device that generates an interrupt event. For example, an interrupt source could be a user-operated keyboard, mouse, or a virtual button on the BIOS setup interface.

[0039] The monitor can be an output device used to display the BIOS GUI. The monitor can be a separate device from the electronic equipment, or it can be integrated into the electronic equipment. Figure 1The illustration is based solely on the example of a display being independent of an electronic device and does not constitute a limitation on the technical solutions provided in the embodiments of this application.

[0040] Interrupt sources can send interrupt requests related to the BIOS GUI to the processor. Upon receiving a BIOS GUI interrupt request, the processor can execute the corresponding task and generate display data from the execution results via the BIOS. If the monitor is configured independently of the electronic device, the electronic device can also send display data to the monitor to enable it to display the BIOS GUI.

[0041] However, when users interact with electronic devices through interrupt requests related to the BIOS GUI, there is a problem with the low response efficiency of the BIOS GUI, resulting in a poor user experience.

[0042] In view of this, embodiments of this application provide an interrupt event handling method to improve the response efficiency of the BIOS GUI, thereby improving the user experience.

[0043] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0044] Figure 2 A flowchart illustrating the interrupt event handling method provided in the embodiments of this application. Figure 1 The execution subject of this method can be an electronic device or an interrupt event handling device installed within the electronic device. The interrupt event handling device can be implemented in software or a combination of hardware and software. The following explanation uses an electronic device as the execution subject. Please refer to... Figure 2 The method may include:

[0045] S201, Receive target interrupt request.

[0046] The target interrupt request can be an interrupt request to be processed received by the electronic device.

[0047] The interrupt source that generates the target interrupt request can be a hardware interrupt source or a software interrupt source. For example, a hardware interrupt source can be a keyboard or mouse, while a software interrupt source can be a system running in an electronic device.

[0048] In some embodiments, the target interrupt request may be a first interrupt request. The first interrupt request may be a BIOSGUI-related interrupt request.

[0049] For example, a user can generate the first interrupt request by clicking the mouse or performing other actions.

[0050] In some embodiments, the target interrupt request can be a second interrupt request. The second interrupt request is a different interrupt type from the first interrupt request. That is, the second interrupt request can be a non-BIOS GUI related interrupt request.

[0051] For example, the second interrupt request could be a background logging request or a hardware monitoring request.

[0052] In this embodiment, if the target interrupt request is a first interrupt request, S202 is executed; if the target interrupt request is a second interrupt request, S203 is executed.

[0053] S202. Execute the first task corresponding to the first interrupt request to generate the execution result, and perform a partial update to the BIOSGUI based on the execution result.

[0054] The first task can be the processing operation associated with the first interrupt request. For example, the first task could be updating parameter values ​​or refreshing the displayed content.

[0055] The execution result can be the output after the first task is completed. For example, the execution result can be new parameter values, etc.

[0056] Partial updates refer to updating only the changed parts of the BIOS GUI, rather than the entire BIOS GUI. This reduces resource consumption and improves the response speed of the first interrupt request.

[0057] In this embodiment, if the target interrupt request is the first interrupt request, the electronic device can immediately execute the corresponding first task to generate the execution result, and can perform a partial update to the BIOS GUI based on the execution result.

[0058] For example, if the first task corresponding to the first interrupt request is to adjust the CPU frequency, the electronic device can execute the first task to calculate the new frequency value.

[0059] In this embodiment, when the first task corresponding to the first interrupt request generates the execution result, the electronic device can stop the currently executing third task; save the context of the third task, which is used to restore the third task; call the interrupt service routine corresponding to the first interrupt request, execute the first task, and generate the execution result.

[0060] The third task can be the task that the electronic device is performing before receiving the target interrupt request. For example, the third task can be a file read / write task.

[0061] The context of the third task can be the status information during its execution. The context of the third task may include the register values ​​corresponding to the third task.

[0062] An interrupt service routine (ISR) can be a code routine specifically designed to handle the first interrupt request.

[0063] Specifically, upon receiving the first interrupt request, the electronic device can immediately interrupt the third task, save the context of the third task, call the ISR corresponding to the first interrupt request to execute the first task, and generate the execution result.

[0064] In this embodiment, the electronic device can also record the execution time of the first task; if the execution time exceeds the time threshold, an alarm message is generated, which is used to indicate that the first interrupt request processing is abnormal.

[0065] The duration threshold can be a preset time limit. The duration threshold can be used to detect anomalies. For example, the duration threshold can be 10ms or 50ms, etc.

[0066] Specifically, if the execution of the first interrupt request frequently exceeds a certain time threshold, the electronic device can generate an alarm message. This allows for timely detection of system problems, resulting in higher system reliability.

[0067] S203. Add the second task corresponding to the second interrupt request to the delayed processing list.

[0068] The second task can be the processing operation associated with the second interrupt request.

[0069] The deferred processing list is a data structure, such as a queue or a linked list.

[0070] It should be noted that the delayed processing list can be independent of the processing stack during interrupt reception, and can instead use a separate stack. This reduces the risk of system crashes in electronic devices due to insufficient stack space.

[0071] Specifically, if the target interrupt request is the second interrupt request, the electronic device may not immediately execute the second task, but instead add the second task to the delayed processing list. This avoids the second interrupt request preempting interrupt processing resources, thus achieving the goal of prioritizing the processing of the first terminal request.

[0072] In this embodiment, interrupt requests can be divided into first interrupt requests and second interrupt requests. The electronic device can maintain separate code for handling each type of interrupt request, resulting in high code maintainability.

[0073] The interrupt event handling method provided in this embodiment allows an electronic device to receive a target interrupt request. If the target interrupt request is a first interrupt request, the electronic device can execute the first task corresponding to the first interrupt request to generate an execution result and perform a partial update to the BIOS GUI based on the execution result. If the target interrupt request is a second interrupt request, the electronic device can add the second task corresponding to the second interrupt request to a delayed processing list. In this method, the electronic device can prioritize processing interrupt requests related to the BIOS GUI and delay processing interrupt requests not related to the BIOS GUI, preventing interrupt requests not related to the BIOS GUI from preempting processing resources for interrupt requests related to the BIOS GUI. This method can improve the response efficiency of the BIOS GUI and reduce interface lag.

[0074] Based on the above embodiments, the following is combined with Figure 3 An example is given of a method for determining the interrupt type of a target interrupt request.

[0075] Figure 3 A flowchart illustrating the interrupt event handling method provided in the embodiments of this application. Figure 2 The execution subject of this method can be an electronic device or an interrupt event handling device installed within the electronic device. The interrupt event handling device can be implemented in software or a combination of hardware and software. The following explanation uses an electronic device as the execution subject. Please refer to... Figure 3 The method may include:

[0076] S301. Obtain the target interrupt identifier from the target interrupt request.

[0077] The target interrupt identifier can be a field included in the target interrupt request. The target interrupt identifier can be used to indicate the interrupt source that generated the target interrupt request. For example, the target interrupt identifier can be an Interrupt Request (IRQ) number or extended Message Signaled Interrupt (MSI) data.

[0078] Specifically, after receiving a target interrupt request, the electronic device can parse the target interrupt request and extract the target interrupt identifier from it. For example, the electronic device can read the target interrupt identifier from the target interrupt request through the interrupt controller.

[0079] S302. Based on the first mapping relationship and the target interrupt identifier, determine whether the target interrupt request is a first interrupt request or a second interrupt request.

[0080] The first mapping relationship can store the association between the identifiers of multiple target interrupt sources and their corresponding first interrupt identifiers.

[0081] The first mapping is used to query the interrupt type during interrupt handling.

[0082] The target interrupt source can be a hardware or software entity that generates the first interrupt request. For example, the target interrupt source can be a keyboard controller or a BIOS GUI driver, and the identifier of the target interrupt source can be its ID, etc.

[0083] The first interrupt identifier can be a symbol that uniquely identifies the target interrupt source. For example, the first interrupt identifier can be an IRQ number or MSI data.

[0084] In this embodiment, a first interrupt identifier can be pre-assigned to each target interrupt source, and a first mapping relationship can be generated based on each target interrupt source and the corresponding first interrupt identifier.

[0085] In practice, the electronic device can query the first mapping relationship. If the target interrupt identifier matches a first interrupt identifier in the first mapping relationship, the target interrupt request can be determined to be a first interrupt request. If the target interrupt identifier does not match a first interrupt identifier in the first mapping relationship, the target interrupt request can be determined to be a second interrupt request.

[0086] The interrupt event handling method provided in this embodiment allows an electronic device to obtain a target interrupt identifier from a target interrupt request and determine whether the target interrupt request is a first interrupt request or a second interrupt request based on a first mapping relationship and the target interrupt identifier. This method automatically determines the interrupt type of the target interrupt request, resulting in faster interrupt classification.

[0087] Based on any of the above embodiments, the following is combined with Figure 4 The method for executing the second task in the delayed processing list is described below.

[0088] Figure 4 A flowchart illustrating the interrupt event handling method provided in the embodiments of this application. Figure 3 The execution subject of this method can be an electronic device or an interrupt event handling device installed within the electronic device. The interrupt event handling device can be implemented in software or a combination of hardware and software. The following explanation uses an electronic device as the execution subject. Please refer to... Figure 4 The method may include:

[0089] S401. Write the second task corresponding to the second interrupt request to the end of the delayed processing list according to the arrival time order of the second interrupt request.

[0090] The arrival time order of the second interrupt request can be the timestamp order in which the electronic device receives the second interrupt request.

[0091] Specifically, when the second interrupt request arrives, the electronic device can add the second task corresponding to the second interrupt request to the end of the delayed processing list based on the arrival time of the second interrupt request.

[0092] S402. Determine the status of electronic devices in real time.

[0093] In this embodiment, the electronic device can be determined to be in a first idle state when the following conditions are met: the electronic device does not receive a first interrupt request within a preset time period; and the utilization rate of the electronic device is greater than the utilization rate threshold.

[0094] The first idle state refers to an electronic device in an idle state with a high system load. For example, in the first idle state, the CPU utilization of the electronic device is greater than the utilization threshold, but there are no BIOS GUI-related interrupts.

[0095] In this embodiment, the electronic device can be determined to be in a second idle state when the following conditions are met: the electronic device does not receive a first interrupt request within a preset time period; and the utilization rate of the electronic device is less than or equal to the utilization rate threshold.

[0096] The second idle state refers to an electronic device in a low-load idle state. For example, in the second idle state, the CPU utilization of the electronic device is less than or equal to the utilization threshold, and there are no BIOS GUI-related interrupts.

[0097] S403. Based on the state of the electronic device, execute the second task in the delayed processing list.

[0098] In this embodiment, when the electronic device is determined to be in a first idle state, the second tasks in the delayed processing list can be executed sequentially according to their arrival times; when the electronic device is determined to be in a second idle state, the second tasks in the delayed processing list can be executed in batches. It should be understood that the load on the electronic device in the second idle state is less than the load on the electronic device in the first idle state.

[0099] When executing the second task in the delayed processing list in the order of arrival time, the electronic device can process the second task one by one, and only process the next task after the first one is completed.

[0100] When batch executing the second task in the delayed processing list, the electronic device can determine a preset number of second tasks in the delayed processing list according to their arrival time, and the preset number of second tasks are of the same type; then, the preset number of second tasks can be batch executed. For example, the electronic device can batch execute two preset log-type tasks.

[0101] It should be noted that batch execution can reduce task switching overhead, thereby increasing the execution efficiency of the second task.

[0102] Optionally, for any second task, after the electronic device executes the second task, it can also remove the second task from the delayed processing list and redetermine the state of the electronic device.

[0103] Deleting a second task means removing a completed second task from the list of delayed tasks.

[0104] Re-determining the state of the electronic device refers to re-determining the state of the electronic device in order to adjust the method for executing the second task in the delayed processing list in a timely manner.

[0105] Specifically, after completing each second task, the electronic device can remove the second task from the delayed processing list and re-determine the state of the electronic device. For example, after executing a second task, if the electronic device receives a first interrupt request, it can pause the processing of the second task. This enables dynamic resource management and avoids excessive resource consumption.

[0106] The interrupt event handling method provided in this embodiment allows the electronic device to write the second task corresponding to the second interrupt request to the end of the delayed processing list according to the arrival time sequence of the second interrupt request; it can determine the state of the electronic device in real time; and it can execute the second task in the delayed processing list according to the state of the electronic device. In the above method, the execution method of the second task can be dynamically adjusted according to the state of the electronic device. This achieves the goal of rationally utilizing the resources of the electronic device and avoids the second task excessively consuming the resources of the electronic device.

[0107] Based on any of the above embodiments, the following is combined with Figure 5 This section explains the method for performing partial updates to the BIOS GUI.

[0108] Figure 5 A flowchart illustrating the interrupt event handling method provided in the embodiments of this application. Figure 4 The execution subject of this method can be an electronic device or an interrupt event handling device installed within the electronic device. The interrupt event handling device can be implemented in software or a combination of hardware and software. The following explanation uses an electronic device as the execution subject. Please refer to... Figure 5 The method may include:

[0109] S501, Obtain multiple first parameter items.

[0110] The first parameter can refer to the content displayed in the BIOS GUI before the first task is executed.

[0111] The first parameter item can include a first parameter name and a corresponding first parameter value. For example, the first parameter name can be "CPU frequency" and the corresponding first parameter value can be "3.0GHz".

[0112] Optionally, the electronic device may retrieve multiple first parameter items from its memory, or the electronic device may retrieve multiple first parameter items from a configuration file.

[0113] S502. Determine multiple second parameter items based on the execution results.

[0114] The second parameter can refer to the content that the BIOS GUI should display after the first task is executed.

[0115] The second parameter field includes the name of the second parameter and its corresponding value. For example, if the execution result changes the CPU frequency to "3.5GHz", then the second parameter field can be [ {"second parameter name": "CPU frequency", "second parameter value": "3.5GHz"}.

[0116] S503. Determine at least one variation term based on multiple first parameter terms and multiple second parameter terms.

[0117] Changes refer to parameters that change in the BIOS GUI after the first task is executed. Changes can include deleted parameters, added parameters, and modified parameters.

[0118] In this embodiment, when determining at least one change item, the first hash value of the first parameter name in each first parameter item can be determined to obtain multiple first hash values; the second hash value of the second parameter name in each second parameter item can be determined to obtain multiple second hash values; at least one change item can be determined based on the multiple first hash values, the first parameter value corresponding to each first hash value, the multiple second hash values, and the second parameter value corresponding to each second hash value.

[0119] The first hash value of the first parameter name can be a fixed-length string obtained by calculating the first parameter name using a hash algorithm.

[0120] The second hash value of the second parameter name can be a fixed-length string obtained by calculating the second parameter name using a hash algorithm.

[0121] In this embodiment, the electronic device can calculate the first hash value corresponding to each first parameter name and the second hash value corresponding to each second parameter name. For example, the hash value of "CPU frequency" is H1, and the hash value of "memory size" is H2. This simplifies the process of comparing the first parameter name and the second parameter name.

[0122] In this embodiment, for any first hash value, if there is no second hash value that is the same as the first hash value, the first parameter item corresponding to the first hash value is determined to be a deleted parameter item; for any second hash value, if there is no first hash value that is the same as the second hash value, the second parameter item corresponding to the second hash value is determined to be a newly added parameter item; for any second hash value, if there is a first hash value that is the same as the second hash value, the second parameter value corresponding to the second hash value and the first parameter value corresponding to the first hash value are used to determine whether the second parameter item corresponding to the second hash value is a changed parameter item.

[0123] Specifically, if the second parameter value corresponding to the second hash value is the same as the first parameter value corresponding to the first hash value, the second parameter item corresponding to the second hash value is determined to be a variable parameter item; if the second parameter value corresponding to the second hash value is different from the first parameter value corresponding to the first hash value, the second parameter item corresponding to the second hash value is determined to be a variable parameter item.

[0124] S504. Perform a partial update to the BIOS GUI based on at least one change.

[0125] In this embodiment, the electronic device can obtain a second mapping relationship, which includes multiple variables on the graphical user interface of the basic input / output system and the interface display area corresponding to each variable, wherein the variable is a parameter or parameter value; based on the second mapping relationship and at least one change item, an update area is determined on the graphical user interface of the basic input / output system; and the update area is updated.

[0126] The interface display area corresponding to a variable can be represented by the coordinates of the variable in the BIOS GUI. For example, the interface display area corresponding to a variable can be represented by the coordinates of the upper left and lower right corners of the variable in the BIOS GUI, or by the coordinates of the lower left and upper right corners of the variable in the BIOS GUI, etc.

[0127] When determining the update area on the BIOS GUI, for any given change, the electronic device can determine multiple coordinates of the interface display area corresponding to the change based on the second mapping relationship, and determine the rectangular range corresponding to the change based on the multiple coordinates; in addition, the update area includes: the rectangular range corresponding to each change.

[0128] Specifically, for each change, the electronic device can query the second mapping relationship to obtain multiple coordinates corresponding to the interface display area of ​​the change, and can calculate the rectangular range based on the multiple coordinates. Furthermore, the electronic device can determine the rectangular ranges corresponding to all changes as the update area.

[0129] In this embodiment, when the electronic device updates the update area, it can invoke the graphics driver and render only the update area. This avoids a full update of the BIOS GUI, resulting in higher update efficiency for the BIOS GUI.

[0130] The interrupt event handling method provided in this embodiment allows the electronic device to acquire multiple first parameter items and determine multiple second parameter items based on the execution result. The electronic device can determine at least one change item based on the multiple first and second parameter items, and can perform a partial update of the BIOS GUI based on at least one change item. This method enables faster BIOS GUI updates, further improving the BIOS GUI's response efficiency.

[0131] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.

[0132] Figure 6 This is a schematic diagram of an interrupt event handling device provided in an embodiment of this application. The interrupt event handling device 10 is applied to an electronic device and includes: a receiving module 11, an execution module 12, and an updating module 13, wherein:

[0133] The receiving module 11 is used to receive the target interrupt request;

[0134] In response to the target interrupt request being a first interrupt request, the execution module 12 is used to execute the first task corresponding to the first interrupt request and generate an execution result; the update module 13 is used to perform a partial update on the basic input / output system graphical user interface based on the execution result; the first interrupt request is an interrupt request related to the basic input / output system graphical user interface;

[0135] In response to the target interrupt request being a second interrupt request, the execution module 12 is further configured to add the second task corresponding to the second interrupt request to the delayed processing list, wherein the second interrupt request is a different interrupt type from the first interrupt request.

[0136] The interrupt event handling device provided in this embodiment can execute the interrupt event handling method in any of the above method embodiments. Its implementation principle and technical effect are similar, and will not be described in detail here.

[0137] In one possible implementation, execution module 12 is further configured to:

[0138] Configure a first interrupt identifier for the target interrupt source. The target interrupt source is used to generate a first interrupt request. The first interrupt identifier is either an interrupt request number or message signal interrupt data.

[0139] Generate a first mapping relationship, which includes the identifiers of multiple target interrupt sources and the first interrupt identifier corresponding to each target interrupt source.

[0140] In one possible implementation, the receiving module 11 is further configured to:

[0141] From the target interrupt request, obtain the target interrupt identifier included in the target interrupt request. The target interrupt identifier is used to indicate the interrupt source that generated the target interrupt identifier.

[0142] Based on the first mapping relationship and the target interrupt identifier, the target interrupt request is determined to be either the first interrupt request or the second interrupt request.

[0143] In one possible implementation, execution module 12 is specifically used for:

[0144] Stop the currently executing third task;

[0145] Save the context of the third task; the context is used to restore the third task.

[0146] Invoke the interrupt service routine corresponding to the first interrupt request, execute the first task, and generate the execution result.

[0147] In one possible implementation, execution module 12 is further configured to:

[0148] Record the execution time of the first task;

[0149] If the execution time exceeds the time threshold, an alarm message is generated to indicate that the first interruption request processing is abnormal.

[0150] In one possible implementation, execution module 12 is specifically used for:

[0151] According to the arrival time of the second interrupt request, the second task corresponding to the second interrupt request is written to the end of the delayed processing list;

[0152] The status of the electronic device is determined in real time, and the second task in the delayed processing list is executed based on the status of the electronic device.

[0153] In one possible implementation, execution module 12 is specifically used for:

[0154] When the electronic device is determined to be in the first idle state, the second task in the delay processing list is executed sequentially according to the order of arrival time;

[0155] When the electronic device is determined to be in the second idle state, the second task in the delayed processing list is executed in batches.

[0156] In the second idle state, the load of the electronic device is less than the load of the electronic device in the first idle state.

[0157] In one possible implementation, the electronic device is determined to be in a first idle state when the following condition is met:

[0158] The electronic device does not receive the first interrupt request within a preset time period; and,

[0159] The utilization rate of electronic devices is greater than the utilization rate threshold.

[0160] In one possible implementation, the electronic device is determined to be in the second idle state when the following condition is met:

[0161] The electronic device does not receive the first interrupt request within a preset time period; and,

[0162] The utilization rate of electronic devices is less than or equal to the utilization rate threshold.

[0163] In one possible implementation, execution module 12 is specifically used for:

[0164] Based on the order of arrival time, a preset number of second tasks are determined in the delay processing list, and the preset number of second tasks have the same task type;

[0165] Batch execute a preset number of second tasks.

[0166] In one possible implementation, for any second task, execution module 12 is further configured to:

[0167] After executing the second task, remove the second task from the delayed processing list and re-determine the status of the electronic device.

[0168] In one possible implementation, update module 13 is specifically used for:

[0169] Obtain multiple first parameter items, each of which includes a first parameter name and a corresponding first parameter value. The first parameter item is the content displayed in the graphical user interface of the basic input / output system before executing the first task.

[0170] Based on the execution result, multiple second parameter items are determined. The second parameter items include the second parameter name and the corresponding second parameter value. The second parameter items are the content displayed in the graphical user interface of the basic input / output system after the execution of the first task.

[0171] At least one variable is determined based on multiple first parameter items and multiple second parameter items. The variable is used to indicate the parameter item that changes in the graphical user interface of the basic input / output system after the execution of the first task.

[0172] The graphical user interface of the basic input / output system is partially updated based on at least one change.

[0173] In one possible implementation, update module 13 is specifically used for:

[0174] Determine the first hash value of the first parameter name in each first parameter item to obtain multiple first hash values;

[0175] Determine the second hash value of the second parameter name in each second parameter item to obtain multiple second hash values;

[0176] Based on multiple first hash values, the first parameter value corresponding to each first hash value, multiple second hash values, and the second parameter value corresponding to each second hash value, at least one variable is determined.

[0177] In one possible implementation, update module 13 is specifically used for:

[0178] For any first hash value, if there is no second hash value that is the same as the first hash value, the first parameter item corresponding to the first hash value is determined to be the parameter item to be deleted.

[0179] For any second hash value, if there is no first hash value that is the same as the second hash value, the second parameter item corresponding to the second hash value is determined to be a newly added parameter item;

[0180] For any second hash value, if there exists a first hash value that is the same as the second hash value, determine whether the second parameter item corresponding to the second hash value is a variable parameter item based on the second hash value, the first hash value that is the same as the second hash value, the second parameter value corresponding to the second hash value, and the first parameter value corresponding to the first hash value.

[0181] Among them, at least one change item includes: deleting a parameter item, adding a parameter item, and changing a parameter item.

[0182] In one possible implementation, update module 13 is specifically used for:

[0183] If the second parameter value corresponding to the second hash value is the same as the first parameter value corresponding to the first hash value, it is determined that the second parameter item corresponding to the second hash value is not a variable parameter item.

[0184] If the second parameter value corresponding to the second hash value is different from the first parameter value corresponding to the first hash value, the second parameter item corresponding to the second hash value is determined to be a variable parameter item.

[0185] In one possible implementation, update module 13 is specifically used for:

[0186] Obtain the second mapping relationship, which includes multiple variables on the graphical user interface of the basic input / output system and the interface display area corresponding to each variable, where the variable is a parameter or parameter value;

[0187] Based on the second mapping relationship and at least one change term, determine the update area on the graphical user interface of the basic input / output system;

[0188] Update the updated area.

[0189] In one possible implementation, update module 13 is specifically used for:

[0190] For any given change, determine multiple coordinates of the interface display area corresponding to the change based on the second mapping relationship, and determine the rectangular range corresponding to the change based on the multiple coordinates.

[0191] The updated area includes the rectangular range corresponding to each change item.

[0192] The interrupt event handling device provided in this embodiment can execute the interrupt event handling method in any of the above method embodiments. Its implementation principle and technical effect are similar, and will not be described in detail here.

[0193] Figure 7 A schematic diagram of the structure of the electronic device provided in this application. Figure 7 As shown, the electronic device 50 provided in this embodiment includes at least one processor 501 and a memory 502. Optionally, the electronic device 50 further includes a communication component 503. The processor 501, memory 502, and communication component 503 are connected via a bus.

[0194] In a specific implementation, at least one processor 501 executes computer execution instructions stored in memory 502, causing at least one processor 501 to execute the above-described interrupt event handling method embodiment.

[0195] The specific implementation process of processor 501 can be found in the above method embodiments, and its implementation principle and technical effect are similar. It will not be repeated here.

[0196] In the above embodiments, it should be understood that the processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the application can be directly manifested as being executed by a hardware processor, or executed by a combination of hardware and software modules within the processor.

[0197] The memory may include random access memory (RAM) and may also include non-volatile memory (NVM), such as at least one disk storage device.

[0198] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, the buses shown in the accompanying drawings are not limited to a single bus or a single type of bus.

[0199] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above-described interrupt event handling method embodiments when it runs.

[0200] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0201] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above-described interrupt event handling method embodiments.

[0202] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the above-described interrupt event handling method embodiments.

[0203] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0204] The above provides a detailed description of the interrupt event handling method, device, storage medium, and program product provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are merely for the purpose of helping to understand the method and its core ideas. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. A method of interrupt event handling, characterized by, The method is applied to an electronic device, and the method comprises: receiving a target interrupt request; in response to the target interrupt request being a first interrupt request, performing a first task corresponding to the first interrupt request to generate an execution result, and performing a partial update on a basic input / output system graphical user interface according to the execution result; the first interrupt request is an interrupt request related to the basic input / output system graphical user interface; in response to the target interrupt request being a second interrupt request, adding a second task corresponding to the second interrupt request to a delay processing list, the second interrupt request being of a different interrupt type from the first interrupt request; performing a partial update on the basic input / output system graphical user interface according to the execution result, comprising: obtaining a plurality of first parameter items, the first parameter items comprising first parameter names and corresponding first parameter values, the first parameter items being contents displayed by the basic input / output system graphical user interface before the first task is performed; determining a plurality of second parameter items according to the execution result, the second parameter items comprising second parameter names and corresponding second parameter values, the second parameter items being contents displayed by the basic input / output system graphical user interface after the first task is performed; determining at least one changed item according to the plurality of first parameter items and the plurality of second parameter items, the changed item being used to indicate a parameter item that has changed in the basic input / output system graphical user interface after the first task is performed; obtaining a second mapping relationship, the second mapping relationship comprising a plurality of variables on the basic input / output system graphical user interface and corresponding interface display areas of the variables, the variables being parameters or parameter values; determining an update area on the basic input / output system graphical user interface according to the second mapping relationship and the at least one changed item; updating the update area; wherein determining the update area on the basic input / output system graphical user interface according to the second mapping relationship and the at least one changed item comprises: for any one changed item, determining a plurality of coordinates of an interface display area corresponding to the changed item according to the second mapping relationship, and determining a rectangular range corresponding to the changed item according to the plurality of coordinates; wherein the update area comprises the rectangular range corresponding to each changed item.

2. The method of claim 1, wherein, The method further comprises: configuring a first interrupt identifier for a target interrupt source, the target interrupt source being used to generate the first interrupt request, the first interrupt identifier being an interrupt request number or message signal interrupt data; generating a first mapping relationship, the first mapping relationship comprising identities of a plurality of target interrupt sources and first interrupt identifiers corresponding to the target interrupt sources.

3. The method of claim 2, wherein, The method further comprises: obtaining a target interrupt identifier included in the target interrupt request from the target interrupt request, the target interrupt identifier being used to indicate an interrupt source generating the target interrupt identifier; determining, according to the first mapping relationship and the target interrupt identifier, whether the target interrupt request is the first interrupt request or the second interrupt request.

4. The method of claim 1, wherein, performing the first task corresponding to the first interrupt request to generate the execution result comprises: stopping a third task currently being executed; saving a context of the third task, the context being used to resume the third task; calling an interrupt service routine corresponding to the first interrupt request, executing the first task, and generating the execution result.

5. The method of claim 4, wherein, The method further includes: recording an execution duration of the first task; generating an alarm information if the execution duration is greater than a duration threshold, the alarm information being used to prompt a first interrupt request processing exception.

6. The method of claim 1, wherein, adding a second task corresponding to the second interrupt request into a delay processing list, including: writing the second task corresponding to the second interrupt request into a tail of the delay processing list in a time sequence of arrival of the second interrupt request; determining a state of the electronic device in real time, and executing the second task in the delay processing list according to the state of the electronic device.

7. The method of claim 6, wherein, executing the second task in the delay processing list according to the state of the electronic device, including: when the electronic device is in a first idle state, executing the second task in the delay processing list in a time sequence of arrival of the second interrupt request; when the electronic device is in a second idle state, executing the second task in the delay processing list in batches; wherein a load of the electronic device in the second idle state is less than a load of the electronic device in the first idle state.

8. The method of claim 7, wherein, when the electronic device satisfies the following conditions, determining that the electronic device is in the first idle state: the electronic device does not receive the first interrupt request within a preset duration; and a utilization rate of the electronic device is greater than a utilization rate threshold.

9. The method of claim 7, wherein, when the electronic device satisfies the following conditions, determining that the electronic device is in the second idle state: the electronic device does not receive the first interrupt request within a preset duration; and the utilization rate of the electronic device is less than or equal to the utilization rate threshold.

10. The method according to claim 7 or 9, characterized in that, executing the second task in the delay processing list in batches, including: determining a preset number of second tasks in the delay processing list in a time sequence of arrival of the second interrupt request, the preset number of second tasks being of a same task type; executing the preset number of second tasks in batches.

11. The method of claim 7, wherein, for any one second task, the method further includes: after executing the second task, deleting the second task from the delay processing list, and re-determining the state of the electronic device.

12. The method of claim 1, wherein, determining at least one change item according to the plurality of first parameter items and the plurality of second parameter items, including: determining a first hash value of a first parameter name in each first parameter item, to obtain a plurality of first hash values; determining a second hash value of a second parameter name in each second parameter item, to obtain a plurality of second hash values; determining the at least one change item according to the plurality of first hash values, a first parameter value corresponding to each first hash value, the plurality of second hash values, and a second parameter value corresponding to each second hash value.

13. The method of claim 12, wherein, determining the at least one change item according to the plurality of first hash values, a first parameter value corresponding to each first hash value, the plurality of second hash values, and a second parameter value corresponding to each second hash value, including: For any one first hash value, if there is no second hash value identical to the first hash value, it is determined that the first parameter corresponding to the first hash value is a deletion parameter; For any one second hash value, if there is no first hash value identical to the second hash value, it is determined that the second parameter corresponding to the second hash value is an addition parameter; For any one second hash value, if there is a first hash value identical to the second hash value, it is determined whether the second parameter corresponding to the second hash value is a change parameter according to the second hash value, the first hash value identical to the second hash value, the second parameter value corresponding to the second hash value, and the first parameter value corresponding to the first hash value. The at least one change item includes the deletion parameter, the addition parameter, and the change parameter.

14. The method of claim 13, wherein, Determining whether the second parameter corresponding to the second hash value is a change parameter according to the second hash value, the first hash value identical to the second hash value, the second parameter value corresponding to the second hash value, and the first parameter value corresponding to the first hash value includes: If the second parameter value corresponding to the second hash value is identical to the first parameter value corresponding to the first hash value, it is determined that the second parameter corresponding to the second hash value is not the change parameter; If the second parameter value corresponding to the second hash value is not identical to the first parameter value corresponding to the first hash value, it is determined that the second parameter corresponding to the second hash value is the change parameter.

15. An electronic device, comprising: It includes: A memory for storing a computer program; A processor for executing the computer program to implement the method of any one of claims 1 to 14.

16. A computer-readable storage medium, characterized in that, The computer program is stored in the computer readable storage medium, and when the computer program is executed by the processor, the method of any one of claims 1 to 14 is implemented.

17. A computer program product comprising a computer program, characterized in that, The computer program is executed by the processor to implement the method of any one of claims 1 to 14.

Citation Information

Patent Citations

  • Virtual interrupt processing method and device, equipment and medium

    CN114153560A

  • Driver having multiple deferred procedure calls for interrupt processing and method for interrupt processing

    US20020144004A1