Electronic device and method for process management

The electronic device and method address embedded system performance degradation by accurately determining process delays and resource allocation, allowing for efficient termination of abnormal processes to maintain system stability.

WO2026023978A1PCT designated stage Publication Date: 2026-01-29SAMSUNG ELECTRONICS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2025/010358
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-23
Filing Date
2025-07-15
Publication Date
2026-01-29

AI Technical Summary

Technical Problem

Embedded systems face performance degradation due to process delays and resource insufficiencies, leading to chain delays and instability, necessitating accurate detection and termination of delayed processes to prevent system-wide issues.

Method used

An electronic device and method that determines process delays by monitoring notification cycles, updating reference times based on system resource allocation status, and terminating processes if delays exceed updated thresholds, thereby preventing system performance degradation.

Benefits of technology

Prevents premature termination of processes by accurately assessing delays in relation to system resource availability, maintaining system stability and performance by ensuring timely termination of abnormal processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025010358_29012026_PF_FP_ABST
    Figure KR2025010358_29012026_PF_FP_ABST
Patent Text Reader

Abstract

An electronic device according to one embodiment of the present disclosure can receive, on the basis of the preset period, a notification from a process requested to be executed, determine whether a delay time from a time point at which the preset period starts to a time point at which the notification is received exceeds a reference time, identify information about a system resource allocation state on the basis of the delay time exceeding the reference time, update the reference time on the basis of the identified information, and determine whether to terminate the process on the basis of whether the delay time exceeds the updated reference time.
Need to check novelty before this filing date? Find Prior Art

Description

Electronic devices and methods for process management

[0001] The present disclosure relates to an electronic device and method for process management.

[0002] In embedded systems, the kernel, as a component of the operating system, can provide various functions that facilitate seamless interaction between hardware and software. For example, the kernel can manage system resources or processes, support inter-process communication, or manage and process hardware or software interrupts. Based on these diverse functions, the kernel can enable efficient and stable operation of embedded systems.

[0003] Embedded systems provide features that allow each process to perform its assigned task regardless of system conditions. However, if a deadlock occurs or system resources are insufficient, process operations may be delayed. A delay in one process can cause delays in other processes. A chain of delays among processes can cause system-wide delays, degrading system performance. Therefore, to prevent system performance degradation, it is necessary to accurately determine whether a process is delayed and terminate the delayed process accordingly.

[0004] One embodiment of the present disclosure may provide an electronic device and method for process management.

[0005] One embodiment of the present disclosure can provide an electronic device and method capable of accurately determining whether there is an operation delay in a process.

[0006] One embodiment of the present disclosure can provide an electronic device and method that can prevent a process whose operation is delayed due to a system situation from being terminated based on a system resource allocation status.

[0007] One embodiment of the present disclosure can provide an electronic device and method capable of securing system resources occupied by a malfunctioning process or an abnormal process by terminating the process.

[0008] One embodiment of the present disclosure can provide an electronic device and method that can prevent a performance degradation problem of a system due to a delay in a serial process operation.

[0009] An electronic device according to one embodiment of the present disclosure comprises: a memory; and at least one processor electrically connected to the memory and including a processing circuit that executes instructions of a program stored in the memory, wherein the at least one processor is configured to: receive a notification from a process requested to be executed based on a preset period; determine whether a delay time from a time point at which the preset period starts to a time point at which the notification is received exceeds a reference time; identify information on a system resource allocation status based on whether the delay time exceeds the reference time; update the reference time based on the identified information; and determine whether to terminate the process based on whether the delay time exceeds the updated reference time.

[0010] According to one embodiment, the at least one processor can determine the reference time based on the preset period.

[0011] According to one embodiment, the information about the system resource allocation status includes a task delay value associated with the system resource allocation status, and the task delay value can be determined based on the number of processes that are delayed due to operations associated with the system resources.

[0012] According to one embodiment, the task delay value may be determined based on the number of CPUs (Central Processing Units) included in the electronic device and the number of processes that are delayed due to operations associated with the system resources.

[0013] According to one embodiment, the task delay value is determined for each system resource, and the system resource may include at least one of a CPU, memory, or an input / output (I / O) device.

[0014] According to one embodiment, the at least one processor may be configured to determine whether the task delay value exceeds a threshold value, and increase the reference time by a preset amount of time based on the task delay value exceeding the threshold value.

[0015] According to one embodiment, the at least one processor may be configured to determine whether the task delay value exceeds a threshold value, check the delay time of a reference process based on the task delay value exceeding the threshold value, and increase the reference time by the checked delay time.

[0016] According to one embodiment, the at least one processor may be configured to determine to terminate the process based on the task delay value not exceeding the threshold value.

[0017] According to one embodiment, the information about the system resource allocation status includes at least one task delay value associated with the system resource allocation status, and the at least one task delay value can be determined based on the number of processes that are delayed due to operations associated with the system resources.

[0018] According to one embodiment, the at least one task delay value may be determined based on the number of CPUs (Central Processing Units) included in the electronic device and the number of processes that are delayed due to operations associated with the system resources.

[0019] According to one embodiment, each of the at least one task delay value is determined for each system resource, and the system resource may include at least one of a CPU, a memory, or an input / output (I / O) device.

[0020] According to one embodiment, the at least one processor may be configured to determine whether each of the at least one task delay values ​​exceeds a corresponding threshold value, and to increase the reference time by a preset amount of time based on each of the at least one task delay values ​​exceeding the corresponding threshold value.

[0021] According to one embodiment, the at least one processor may be configured to determine whether each of the at least one task delay values ​​exceeds a corresponding threshold value, check a delay time of a reference process based on each of the at least one task delay values ​​exceeding the corresponding threshold value, and increase the reference time by the checked delay time.

[0022] According to one embodiment, the at least one processor may be configured to determine to terminate the process based on each of the at least one task delay values ​​not exceeding the corresponding threshold value.

[0023] According to one embodiment, the at least one processor may be configured to determine to terminate the process based on the delay time exceeding the updated reference time.

[0024] According to one embodiment, the at least one processor may be configured to determine not to terminate the process based on the delay time not exceeding the updated reference time.

[0025] A process management method of an electronic device according to one embodiment of the present disclosure may include: receiving a notification from a process requested to be executed based on a preset cycle; determining whether a delay time from a time point at which the preset cycle starts to a time point at which the notification is received exceeds a reference time; identifying information on a system resource allocation status based on the delay time exceeding the reference time; updating the reference time based on the identified information; and determining whether to terminate the process based on whether the delay time exceeds the updated reference time.

[0026] According to one embodiment, the reference time may be determined based on the preset cycle.

[0027] According to one embodiment, the information about the system resource allocation status includes a task delay value associated with the system resource allocation status, and the task delay value can be determined based on the number of processes that are delayed due to operations associated with the system resources.

[0028] According to one embodiment, the task delay value may be determined based on the number of CPUs (Central Processing Units) included in the electronic device and the number of processes that are delayed due to operations associated with the system resources.

[0029] According to one embodiment, the task delay value is determined for each system resource, and the system resource may include at least one of a CPU, memory, or an input / output (I / O) device.

[0030] According to one embodiment, the operation of updating the reference time may include an operation of determining whether the task delay value exceeds a threshold; and an operation of increasing the reference time by a preset amount of time based on the task delay value exceeding the threshold.

[0031] According to one embodiment, the operation of updating the reference time may include: an operation of determining whether the task delay value exceeds a threshold value; an operation of checking the delay time of the reference process based on whether the task delay value exceeds the threshold value; and an operation of increasing the reference time by the checked delay time.

[0032] According to one embodiment, the method may further include an action of determining to terminate the process based on the task delay value not exceeding the threshold value.

[0033] In one embodiment, the operation of determining whether to terminate the process may include an operation of determining to terminate the process based on whether the delay time exceeds the updated reference time.

[0034] In one embodiment, the operation of determining whether to terminate the process may include an operation of determining not to terminate the process based on the delay time not exceeding the updated reference time.

[0035] Figure 1 is a block diagram of an electronic device according to one embodiment.

[0036] Figure 2a is a graph for explaining the notification cycle per process according to one embodiment.

[0037] FIG. 2b is a graph illustrating how a process management module determines the operation delay of a process according to one embodiment.

[0038] Figure 3 is a block diagram of a process management module according to one embodiment.

[0039] Figure 4 is a flowchart illustrating a process management operation according to one embodiment.

[0040] FIG. 5 is a flowchart illustrating a process management operation considering a system resource allocation status according to one embodiment.

[0041] FIG. 6 is a flowchart illustrating a process management operation considering the delay time of a reference process according to one embodiment.

[0042] FIG. 7 is a graph for explaining process management operations based on process operation delay according to one embodiment.

[0043] The following description refers to the attached drawings, and specific examples of implementations are illustrated within the drawings. Furthermore, other examples may be utilized and structural changes may be made without departing from the scope of the various examples.

[0044] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings so that those skilled in the art can easily implement the present disclosure. However, the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein. In connection with the description of the drawings, the same or similar reference numerals may be used for identical or similar components. Furthermore, in the drawings and related descriptions, descriptions of well-known functions and configurations may be omitted for clarity and conciseness.

[0045] Figure 1 is a block diagram of an electronic device according to one embodiment.

[0046] Referring to FIG. 1, the electronic device (100) may include a display (102), a memory (104), and a processor (106). In one example, the electronic device (100) may include additional components (e.g., a user interface (UI)) in addition to the illustrated components, or may omit at least one of the illustrated components.

[0047] The display (102) can perform various display operations according to the function of the electronic device (100). For example, the display (102) can display at least one of various service information, text information, or media information according to the execution of software (e.g., system software or application software) or an application.

[0048] The memory (104) can store various information or data related to the operation of the electronic device (100). The memory (104) can store at least one program. For example, the memory (104) can store at least one program for processing and controlling the processor (106), and can store input and / or output data.

[0049] The memory (104) may also store an artificial intelligence (AI) model. The memory (104) may include a storage medium including at least one of a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., Secure Digital (SD) or eXtreme Digital (XD) memory, etc.), a random access memory (RAM), a static random access memory (SRAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a programmable read-only memory (PROM), a magnetic memory, a magnetic disk, and an optical disk.

[0050] The processor (106) can control the overall operation of the electronic device (100). In one example, the processor (106) can perform a process management operation based on an operating system. For example, the process management operation may include an operation of creating, executing, or terminating a process, an operation of performing process scheduling, an operation of managing information about a process state (e.g., created, prepared, executing, waiting, or terminated), an operation of supporting synchronization between processes or communication between processes, or an operation of determining (or judging) whether the operation of a process is delayed.

[0051] The processor (106) may be electrically connected to the display (102) and the memory (104), respectively, and may execute instructions of a program stored in the memory (104). There may be one or more processors (106) and may include a processing circuit that executes instructions of the program stored in the memory (104).

[0052] The processor (106) may include at least one of a central processing unit (CPU), a neural processing unit (NPU), a graphics processing unit (GPU), a micro processing unit (MPU), a micro controller unit (MCU), an application processor (AP), a communication processor (CP), a system on chip (SoC), or an integrated circuit (IC), a sensor hub, a supplementary processor, a communication processor, an application processor, an application specific integrated circuit (ASIC), or a field programmable gate array (FPGA), and may have multiple cores.

[0053] The electronic device (100) configured as described above may be one of a TV, a desktop, a laptop, a smartphone, a tablet, or a wearable device, but is not limited thereto and may be various types of electronic devices.

[0054] According to one example, in the electronic device (100), the process management operation may be performed by the processor (106) of the electronic device (100), or may be performed by a process management module (or process management program or process management circuit) that is controlled by the processor (106) and operates in the operating system. For convenience of explanation, the process management operation is described below as being performed by the process management module, but the operation of the process management module may substantially correspond to the operation of the processor (106).

[0055] The process management module may perform an operation to determine whether a process is delayed in operation to prevent system performance degradation. The process management module may determine whether an operation is delayed for each of one or more processes. The one or more processes are target processes to be monitored for delays, and may include newly created processes, processes whose execution has been requested or has begun, processes in a ready or waiting state. The one or more processes may include predetermined processes. The predetermined processes may include, for example, processes on a list set by a user, or processes selected based on preset criteria (e.g., process priority).

[0056] For example, the process management module can determine whether the operation of each process is delayed based on whether notifications are periodically received from each of one or more processes. The operation of the process management module in this regard is described with reference to FIGS. 2A and 2B.

[0057] Figure 2a is a graph for explaining the notification cycle per process according to one embodiment.

[0058] Referring to Figure 2a, the process management module can receive notifications from one or more processes based on a preset notification cycle. The notification cycle for each of the one or more processes can be determined based on at least one of the following: the characteristics of the process, its workload or resource usage, its priority, or a user setting. The notification cycles for one or more processes can be determined to be the same or different.

[0059] In one example, the one or more processes may include a first process (210), a second process (220), or a third process (230). The first process (210), the second process (220), or the third process (230) may transmit notifications at different notification cycles.

[0060] For example, the first process (210) can transmit a notification every 40 us based on a notification cycle of 40 us.

[0061] For example, the second process (220) can transmit a notification every 20 us based on a notification cycle of 20 us.

[0062] For example, the third process (230) can send a notification every 10 us based on a notification cycle of 10 us.

[0063] The process management module may receive notifications from the first process (210), the second process (220), or the third process (230) at each notification cycle, as illustrated in FIG. 2A. In this case, the process management module may determine that no process is delayed in its operation.

[0064] FIG. 2b is a graph illustrating how a process management module determines the operation delay of a process according to one embodiment.

[0065] Referring to FIG. 2b, the process management module can determine whether the operation of each process is delayed based on whether a notification based on each notification cycle is received from the first process (210), the second process (220), or the third process (230).

[0066] In one example, the process management module may determine that the operation of the first process (210) is not delayed based on receiving a notification from the first process (210) at a time (e.g., corresponding to 40 us and / or 80 us) based on a notification cycle (e.g., 40 us).

[0067] For example, the process management module may determine that the operation of the third process (230) is not delayed based on receiving a notification from the third process (230) at a time point (e.g., corresponding to each of 10 us and 80 us) based on a notification cycle (e.g., 10 us).

[0068] For example, the process management module may determine that the operation of the second process (220) is delayed if it does not receive a notification from the second process (220) at a time (e.g., 60 us) (222) based on the notification cycle (e.g., 20 us) or if it receives a notification at a time (e.g., 70 us) (224) later than the time (222) based on the notification cycle.

[0069] For example, the process management module may terminate a second process (220) determined to have an operation delay, or determine whether to terminate the process after checking the system status. For example, the process management module may determine whether the operation delay of the second process (220) is related to system resources and, based on the determination result, determine whether to terminate the second process (220). The related operations will be described in detail below.

[0070] Figure 3 is a block diagram of a process management module according to one embodiment.

[0071] Referring to FIG. 3, the process management module (300) may include a process operation monitoring module (310), a process operation delay determination module (320), a process termination module (330), or a system resource monitoring module (340).

[0072] The process operation monitoring module (310) may receive a registration request notification from a process. In one example, the process operation monitoring module (310) may receive a registration request notification from a newly created process, a process with an execution request, or a predetermined process.

[0073] The process operation monitoring module (310) can identify the process that sent the registration request notification and register the identified process in the management process list. The process operation monitoring module (310) can manage the process registered in the management process list as a target process for determining whether or not there is an operation delay.

[0074] The process operation monitoring module (310) can monitor the operation of the target process. The process operation monitoring module (310) can monitor whether a notification is received based on the notification cycle of the target process, and transmit monitoring information including the monitoring result to the process operation delay determination module (320). According to an example, the monitoring information can include the PID (process identifier) ​​of the target process, information about the notification cycle of the target process, or information about the delay time from the start time of the notification cycle to the time when the notification of the target process is received.

[0075] The process operation delay determination module (320) can receive monitoring information from the process operation monitoring module (310) and perform operations based on the received monitoring information. For example, the process operation delay determination module (320) can identify a target process based on a PID included in the monitoring information, determine a reference time associated with the target process based on information about a notification cycle included in the monitoring information, and identify a delay time associated with the operation of the target process based on information about a delay time included in the monitoring information.

[0076] For example, the reference time may be determined for each process based on the notification cycle. For example, in FIG. 2B, the reference time of the first process (210) may correspond to the notification cycle of the first process (210) (e.g., 40 us), the reference time of the second process (220) may correspond to the notification cycle of the second process (220) (e.g., 20 us), and the reference time of the third process (220) may correspond to the notification cycle of the third process (220) (e.g., 10 us).

[0077] The process operation delay determination module (320) can compare the delay time of the target process with a reference time and determine whether there is an operation delay for the target process based on the comparison result. For example, the process operation delay determination module (320) can determine that the operation of the target process is delayed if the delay time exceeds the reference time. For example, the process operation delay determination module (320) can determine that the operation of the target process is not delayed if the delay time does not exceed the reference time.

[0078] For example, the target process's operation may be delayed if a deadlock occurs, system resources are insufficient, or there is a delay due to process priority.

[0079] When it is determined that the operation of the target process is delayed, the process operation delay determination module (320) can perform an operation to terminate the target process or an operation to determine whether the operation delay of the target process is related to system resources.

[0080] According to one example, an action for terminating a target process may include an action in which a process operation delay determination module (320) transmits information about the target process (e.g., PID) to a process termination module (330) for terminating the target process.

[0081] According to one example, the operation of determining whether the operation delay of the target process is related to system resources may include an operation of the process operation delay determination module (320) to determine whether the operation delay of the target process is related to the system resource allocation state (or the system resource utilization state).

[0082] The process operation delay determination module (320) can receive information on the system resource allocation status from the system resource monitoring module (340). The process operation delay determination module (320) can compare a task delay value included in the received information (e.g., a task delay value associated with system resource allocation) with a threshold value, and determine whether the operation delay of the target process is associated with the system resource allocation status based on the comparison result. For example, if the received task delay value exceeds the threshold value, the process operation delay determination module (320) can determine that the operation delay of the target process is associated with the system resource allocation status. Based on this, the process operation delay determination module (320) can update the reference time.

[0083] In one example, the process operation delay determination module (320) can update the reference time based on a preset time. For example, the process operation delay determination module (320) can increase (or extend) the reference time by a preset time.

[0084] For example, the process operation delay determination module (320) may update the reference time based on the delay time of the reference process. For example, the process operation delay determination module (320) may increase the reference time by the delay time of the reference process.

[0085] For example, a reference process may be a reference process that can be referenced to update a reference time. The reference process may be a process that takes a fixed amount of time to complete execution, or a process that sends periodic notifications. If the reference process fails to send periodic notifications, a system-wide delay (e.g., a delay associated with system resource allocation) may be identified. The system-wide delay may be identified based on the delay time of the reference process. For example, the delay time of the reference process may be identified based on the difference between the expected time taken based on the notification period of the reference process and the actual time taken by the reference process. The delay time of the reference process may be identified during the most recent time interval based on the notification period.

[0086] For example, the process operation delay determination module (320) may compare the delay time of the target process with the updated reference time based on the updated reference time. The process operation delay determination module (320) may determine whether or not there is an operation delay for the target process based on the comparison result between the delay time of the target process and the updated reference time.

[0087] For example, the process operation delay determination module (320) may determine that the operation of the target process is delayed if the delay time of the target process exceeds the updated reference time. Based on the fact that the operation of the target process is delayed, the process operation delay determination module (320) may transmit information about the target process to the process termination module (330) for termination of the target process.

[0088] For example, the process operation delay determination module (320) may determine that the operation of the target process is not delayed if the delay time of the target process does not exceed the updated reference time. Based on the fact that the operation of the target process is not delayed, the process operation delay determination module (320) may determine that the operation of the target process is normal and receive periodic notifications from the target process.

[0089] The process termination module (330) can receive information (e.g., PID) about a target process whose operation is delayed from the process operation delay determination module (320) and terminate the target process corresponding to the received information.

[0090] The system resource monitoring module (340) can monitor the allocation status of system resources and transmit the monitoring results to the process operation delay determination module (320). For example, the system resource monitoring module (340) can transmit information on the system resource allocation status as a monitoring result to the process operation delay determination module (320).

[0091] Information about the system resource allocation status may include information indicating the allocation status of the system resources or system delay information. The system delay information may include information indicating the degree of delay in tasks associated with the system resources or information based on the number of processes that are delayed due to operations associated with the system resources. The system resources may include at least one of a central processing unit (CPU), memory, or input / output (I / O) device.

[0092] Information about the system resource allocation status may include information about the allocation status of each system resource. For example, information about the allocation status of each system resource may include at least one of information about the CPU allocation status, information about the memory allocation status, or information about the I / O device allocation status. Information about the allocation status of each system resource may be used to identify the task delay value (or task congestion level) of each system resource.

[0093] For example, the task delay value per system resource may include PSI (Pressure Stall Information) available in the Linux kernel, and may be determined based on the following [Mathematical Formula 1].

[0094]

[0095] Referring to [Mathematical Formula 1], the number of CPUs may indicate the number of CPUs included in the electronic device (100). The number of delayed processes may indicate the number of delayed processes associated with any one of the CPU, memory, or I / O devices.

[0096] For example, if there are 4 CPUs and the delay in operation of 2 out of 6 processes occurs in relation to the CPU during a specific time, the PSI (PSI_ CPU) of the CPU based on [Mathematical Formula 1] can be determined as “PSI_ CPU = (2 / 4) * 100 = 50%”.

[0097] For example, if there are 4 CPUs and the delay in operation of 1 process out of 5 processes during a specific time is related to memory, the PSI (PSI_MEMORY) of the memory based on [Mathematical Formula 1] can be determined as “PSI_MEMORY = (1 / 4) * 100 = 25%”.

[0098] For example, if there are three CPUs and the delay in operation of one of the four processes during a specific time occurs due to an I / O device, the PSI (PSI_I / O) of the I / O device based on [Mathematical Formula 1] can be determined as “PSI_I / O = (1 / 3) * 100 = 33.3%.”

[0099] In one example, the PSI per system resource can be passed to the process operation delay determination module (320) and compared with a threshold value by the process operation delay determination module (320). For example, PSI_CPU can be compared with a first PSI threshold value (e.g., 60%), PSI_MEMORY can be compared with a second PSI threshold value (e.g., 40%), and PSI_I / O can be compared with a third PSI threshold value (e.g., 40%).

[0100] As illustrated in FIG. 3, the process management module (300) may be configured to include, but is not limited to, a process operation monitoring module (310), a process operation delay determination module (320), a process termination module (330), or a system resource monitoring module (340). For example, the process management module (300) may be configured as a single integrated module that performs the operations of the process operation monitoring module (310), the process operation delay determination module (320), the process termination module (330), or the system resource monitoring module (340). For convenience of explanation, the process management operation will be described below as being performed by the process management module (300).

[0101] Figure 4 is a flowchart illustrating a process management operation according to one embodiment.

[0102] Referring to FIG. 4, in operation 402, the process management module (300) may identify a target process. In one example, the target process may be a process included in the management process list and may be a process requested for execution.

[0103] In operation 404, the process management module (300) may set a reference time for the target process. The reference time may indicate a time that serves as a reference for determining whether the target process is delayed in operation. The process management module (300) may set the reference time based on the notification cycle of the target process.

[0104] In operation 406, the process management module (300) may identify a delay time associated with the operation of the target process. For example, the process management module (300) may identify the delay time by receiving a notification from the target process based on a preset cycle (or notification cycle). The process management module (300) may identify the delay time as the time from the start of the notification cycle to the time when the notification is received from the target process.

[0105] In operation 408, the process management module (300) can determine whether the identified delay time exceeds the reference time.

[0106] The process management module (300) determines that the operation of the target process is abnormal based on the identified delay time exceeding the reference time, and can terminate the target process in operation 410. For example, if the operation of the target process is delayed exceeding the reference time, the process management module (300) can determine that a problem such as a bug, error, malware, deadlock, or priority inversion has occurred. Accordingly, the process management module (300) can prevent the possibility of chain operation delays of other processes due to the target process, system performance degradation, stability issues, or security risks by terminating the target process.

[0107] The process management module (300) may determine that the target process is operating normally based on the identified delay time not exceeding the reference time, and periodically check whether the target process is delayed. For example, the process management module (300) may re-perform operations 406 and below.

[0108] When system resources such as CPU or memory are insufficient due to hardware issues, or when there are too many processes running simultaneously, a normally operating process may be terminated. For example, if a normally operating process is waiting due to not being allocated system resources, the process may be incorrectly judged as an abnormal process and terminated. Even if separate judgment criteria change each time depending on hardware resources, a normally operating process may be incorrectly judged as an abnormal process depending on the system resource allocation status. Taking these factors into account, a process management operation that considers the system resource allocation status, such as that shown in FIG. 5 or FIG. 6, may be performed.

[0109] FIG. 5 is a flowchart illustrating a process management operation considering a system resource allocation status according to one embodiment.

[0110] Referring to FIG. 5, in operation 502, the process management module (300) may identify a target process. In one example, the target process may be a process included in the management process list and may be a process requested for execution.

[0111] In operation 504, the process management module (300) can set a reference time for the target process. The process management module (300) can set the reference time based on the notification cycle of the target process.

[0112] In operation 506, the process management module (300) may identify a delay time associated with the operation of the target process. For example, the process management module (300) may identify the delay time by receiving a notification from the target process based on a preset cycle (or notification cycle). The process management module (300) may identify the delay time as the time from the start of the notification cycle to the time when the notification is received from the target process.

[0113] In operation 508, the process management module (300) can determine whether the delay time exceeds the reference time.

[0114] The process management module (300) can perform operation 506 again based on the delay time not exceeding the reference time.

[0115] The process management module (300) may identify a task delay value associated with a system resource allocation status at operation 510 based on the delay time exceeding a reference time. In one example, the process management module (300) may identify a system resource (e.g., CPU, memory, or I / O device) associated with the operation delay of the target process, and may identify a task delay value (e.g., PSI_CPU, PSI_MEMORY, or PSI_I / O) associated with the identified system resource.

[0116] In operation 512, the process management module (300) may determine whether the task delay value exceeds a threshold (e.g., a first PSI threshold, a second PSI threshold, or a third PSI threshold). Based on the fact that the task delay value does not exceed the threshold, the process management module (300) may determine that the task delay of the target process is not related to the system resource allocation status, and may terminate the target process in operation 518.

[0117] The process management module (300) determines that the operation delay of the target process is related to the system resource allocation status based on the operation delay value exceeding the threshold value, and can update the reference time in operation 514. For example, the process management module (300) can update the reference time by increasing the reference time by a preset amount of time.

[0118] In operation 516, the process management module (300) can determine whether the delay time exceeds the updated reference time.

[0119] The process management module (300) determines that the operation of the target process is a normal operation based on the fact that the delay time does not exceed the updated reference time, and can perform operation 506 and below again.

[0120] The process management module (300) determines that the operation of the target process is abnormal based on the delay time exceeding the updated reference time, and can terminate the target process in operation 518.

[0121] For example, the process management module (300) may identify the status of a target process based on whether the delay time exceeds the updated reference time, and may determine whether to terminate the target process based on the identification result.

[0122] For example, if the delay time of the target process exceeds the updated reference time while the target process is in a state where it can be scheduled (e.g., a ready state, a running state, or a state included in a run queue) or a waiting state (e.g., a state included in a waiting queue), the process management module (300) may determine that the operation of the target process is abnormal and terminate the target process in operation 518.

[0123] For example, the process management module (300) may not terminate the target process or stop monitoring the operation delay for the target process if the delay time exceeds the updated reference time while the target process is in a state where it cannot be scheduled (e.g., a frozen state).

[0124] FIG. 6 is a flowchart illustrating a process management operation considering the delay time of a reference process according to one embodiment.

[0125] Referring to FIG. 6, in operation 602, the process management module (300) can identify a target process. In one example, the target process may be a process included in the management process list and may be a process requested for execution.

[0126] In operation 604, the process management module (300) can set a reference time for the target process. The process management module (300) can set the reference time based on the notification cycle of the target process.

[0127] In operation 606, the process management module (300) may identify a first delay time associated with the operation of the target process. For example, the process management module (300) may identify the first delay time by receiving a notification from the target process based on a preset cycle (or notification cycle). The process management module (300) may identify the time from the start of the notification cycle to the time when the notification is received from the target process as the first delay time.

[0128] In operation 608, the process management module (300) may determine whether the first delay time exceeds the reference time. Based on the fact that the first delay time does not exceed the reference time, the process management module (300) may perform operation 606 again.

[0129] The process management module (300) may identify a task delay value associated with a system resource allocation status at operation 610 based on the first delay time exceeding the reference time. In one example, the process management module (300) may identify a system resource (e.g., CPU, memory, or I / O device) associated with the operation delay of the target process, and may identify a task delay value (e.g., PSI_CPU, PSI_MEMORY, or PSI_I / O) associated with the identified system resource.

[0130] In operation 612, the process management module (300) may determine whether the task delay value exceeds a threshold value (e.g., a first PSI threshold value, a second PSI threshold value, or a third PSI threshold value). Based on the fact that the task delay value does not exceed the threshold value, the process management module (300) may determine that the task delay of the target process is not related to the system resource allocation status, and may terminate the target process in operation 620.

[0131] The process management module (300) determines that the operation delay is related to the system resource allocation status based on the operation delay value exceeding the threshold value, and in operation 614, can identify the second delay time of the reference process. For example, the process management module (300) can identify the second delay time (e.g., 5 us) of the reference process based on the difference between the expected time required (e.g., 15 us) based on the notification period (e.g., 15 us) of the reference process and the actual time required (e.g., 20 us) of the reference process. The second delay time of the reference process may be identified during the most recent time period based on the notification period.

[0132] In operation 616, the process management module (300) may update the reference time based on the second delay time. For example, the process management module (300) may update the reference time by increasing the reference time by the second delay time.

[0133] In operation 618, the process management module (300) can determine whether the first delay time of the target process exceeds the updated reference time.

[0134] The process management module (300) determines that the operation of the target process is a normal operation based on the fact that the first delay time does not exceed the updated reference time, and can perform operation 606 and below again.

[0135] The process management module (300) determines that the operation of the target process is abnormal based on the delay time exceeding the updated reference time, and can terminate the target process in operation 620.

[0136] For example, the process management module (300) may identify the status of a target process based on whether the delay time exceeds the updated reference time, and may determine whether to terminate the target process based on the identification result.

[0137] For example, if the delay time of the target process exceeds the updated reference time while the target process is in a state where it can be scheduled (e.g., a running state or a state included in a run queue) or a waiting state (e.g., a state included in a waiting queue), the process management module (300) may determine that the operation of the target process is abnormal and terminate the target process in operation 620.

[0138] For example, the process management module (300) may not terminate the target process or stop monitoring the operation delay for the target process if the delay time exceeds the updated reference time while the target process is in a state where it cannot be scheduled (e.g., a frozen state).

[0139] FIG. 7 is a graph for explaining process management operations based on process operation delay according to one embodiment.

[0140] Referring to FIG. 7, the process management module (300) can receive notifications from a target process based on a preset notification cycle. For example, the target process may be a process that transmits a notification cycle every 10 microseconds based on a notification cycle of 10 microseconds.

[0141] The process management module (300) may be used to determine the notification cycle of the target process as a reference time (702) for the target process. For example, the process management module (300) may set the reference time (702) to 10 us corresponding to the notification cycle.

[0142] For example, the process management module (300) can identify that the target process is operating normally if a notification from the target process is received at a time that does not exceed the reference time (702).

[0143] In one example, the process management module (300) may identify an operation delay (704) of the target process if a notification of the target process is received at a time exceeding a reference time (702). The process management module (300) may terminate the target process based on the identification of the operation delay (704) of the target process.

[0144] For example, if a notification of a target process is received at a time exceeding a reference time (702), the process management module (300) can determine whether the operation delay (704) of the target process is related to the system resource allocation status.

[0145] The process management module (300) can determine that the operation delay of the target process is not related to the system resource allocation status and terminate the target process based on the fact that the operation delay value (e.g., PSI_CPU) does not exceed a threshold value (e.g., 60%).

[0146] The process management module (300) can determine that the operation delay is related to the system resource allocation status based on the operation delay value (e.g., PSI_CPU) exceeding a threshold value (e.g., 60%). If the process management module (300) determines that the operation delay (704) of the target process is related to the system resource allocation status, the process management module (300) can update (706) the reference time (702). For example, the process management module (300) can obtain an updated reference time (e.g., 30us) by increasing the reference time (e.g., 10us) (702) by a preset time (e.g., 20us), or by increasing the reference time (702) by the delay time of the reference process (e.g., 20us).

[0147] The process management module (300) can identify that the target process is operating normally if the delay time of the target process does not exceed the updated reference time. Based on the identification that the target process is operating normally, the process management module (300) can receive periodic notifications from the target process again.

[0148] The process management module (300) can identify that the target process is not operating normally if the delay time of the target process exceeds the updated reference time. Based on the identification that the target process is not operating normally, the process management module (300) can terminate the target process.

[0149] According to various embodiments as described above, the electronic device (100) can prevent termination of a process due to temporary system delay by performing a fluid determination that takes into account the system resource allocation status rather than simply determining whether the process is delayed based on a set value.

[0150] According to various embodiments, the electronic device (100) can improve overall system performance by preemptively terminating a malfunctioning process or an abnormal process, thereby securing system resources occupied by the process.

[0151] According to various embodiments, the electronic device (100) can preemptively block a chain reaction of process delays, thereby preventing a situation in which a malfunction of a specific process may lead to a system-wide delay.

[0152] The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.

[0153] The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

[0154] According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

Claims

1. In electronic devices, memory; and At least one processor electrically connected to the memory and including a processing circuit for executing instructions of a program stored in the memory, At least one processor of the above: Based on a preset cycle, receive notifications from the requested process, Determine whether the delay time from the start of the preset cycle to the time of receiving the notification exceeds the reference time, Based on the above delay time exceeding the above reference time, information about the system resource allocation status is identified, Update the reference time based on the above identified information, An electronic device configured to determine whether to terminate the process based on whether the delay time exceeds the updated reference time.

2. In paragraph 1, At least one processor, An electronic device that determines the reference time based on the preset cycle.

3. In paragraph 1 or 2, Information about the above system resource allocation status includes at least one task delay value associated with the above system resource allocation status, An electronic device wherein at least one of the above task delay values ​​is determined based on the number of processes that are delayed due to operations associated with system resources.

4. In paragraph 1 or 2, Information about the above system resource allocation status includes at least one task delay value associated with the above system resource allocation status, An electronic device, wherein the at least one task delay value is determined based on the number of CPUs (Central Processing Units) included in the electronic device and the number of processes that are delayed due to operations associated with the system resources.

5. In paragraph 3 or 4, Each of the above at least one task delay value is determined per system resource, An electronic device, wherein the system resources include at least one of a CPU, memory, or input / output (I / O) device.

6. In any one of paragraphs 3 to 5, At least one processor, Determine whether each of the above at least one task delay values ​​exceeds a corresponding threshold value, An electronic device configured to increase the reference time by a preset amount of time based on each of the at least one task delay values ​​exceeding the corresponding threshold value.

7. In any one of paragraphs 3 to 5, At least one processor, Determine whether each of the above at least one task delay values ​​exceeds a corresponding threshold value, Checking the delay time of the reference process based on whether each of the above at least one task delay values ​​exceeds the corresponding threshold value, An electronic device configured to increase the reference time by the checked delay time.

8. In paragraph 6 or 7, At least one processor, An electronic device configured to determine to terminate the process based on each of the at least one task delay values ​​not exceeding the corresponding threshold value.

9. In paragraph 1, At least one processor, An electronic device configured to determine to terminate the process based on the delay time exceeding the updated reference time.

10. In paragraph 1, At least one processor, An electronic device configured to determine not to terminate the process based on the delay time not exceeding the updated reference time.

11. In a process management method of an electronic device, An action to receive notifications from a process that has been requested to run, based on a preset cycle; An action for determining whether the delay time from the time at which the preset cycle starts to the time at which the notification is received exceeds a reference time; An action for identifying information about a system resource allocation status based on the delay time exceeding the reference time; An operation of updating the reference time based on the identified information; and A process management method comprising an action of determining whether to terminate the process based on whether the delay time exceeds the updated reference time.

12. In paragraph 11, A process management method wherein the above reference time is determined based on the above preset cycle.

13. In paragraph 11 or 12, Information about the above system resource allocation status includes at least one task delay value associated with the above system resource allocation status, A process management method, wherein at least one of the above task delay values ​​is determined based on the number of processes that are delayed due to operations associated with system resources.

14. In paragraph 11 or 12, Information about the above system resource allocation status includes at least one task delay value associated with the above system resource allocation status, A process management method, wherein the at least one task delay value is determined based on the number of CPUs (Central Processing Units) included in the electronic device and the number of processes that are delayed due to operations associated with the system resources.

15. In paragraph 13 or 14, Each of the above at least one task delay value is determined per system resource, A process management method, wherein the above system resources include at least one of a CPU, memory, or an input / output (I / O) device.

Citation Information

Patent Citations

  • Information processor and processing method, and program

    JP2008276666A

  • Controller, control system and control method

    JP2015056039A

  • Determination program, determination method, determination apparatus

    JP2019139262A

  • Electronic control device

    JP2022064425A

  • Vacuum adiabatic body

    KR102877168B1