Electronic device and method for resource management

By using suspend-to-RAM technology and nested promotion operations in electronic devices, combined with real-time scheduling and a fully fair scheduler, the scheduling strategy and priority of processes are dynamically adjusted, resolving the conflict between startup performance and application execution performance, and achieving fast application execution and efficient CPU resource management.

CN121752998APending Publication Date: 2026-03-27SAMSUNG ELECTRONICS CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-13
Publication Date
2026-03-27

AI Technical Summary

Technical Problem

In electronic devices, as startup performance improves, application execution performance may decrease, and CPU contention and priority inversion can cause application execution delays. Therefore, a resource management method is needed to improve application execution performance while maintaining startup performance.

Method used

By using suspend-to-RAM technology and nested promotion operations after a cold start, combined with a real-time scheduling scheme and a fully fair scheduler, the scheduling policy and priority of processes are dynamically adjusted to ensure efficient allocation of CPU resources and prevent or reduce CPU contention and priority inversion.

Benefits of technology

It enables the rapid execution of user-selected applications while maintaining startup performance, reducing application execution latency and improving the overall performance and user experience of electronic devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121752998A_ABST
    Figure CN121752998A_ABST
Patent Text Reader

Abstract

An electronic device according to an embodiment of the present disclosure may identify at least one service associated with an application in response to execution of the application being requested, determine a first scheduling policy and a second scheduling policy to be applied to at least one process associated with the at least one service, and applying a first scheduling policy corresponding to a higher scheduling priority among the first scheduling policy and the second scheduling policy to the at least one process, and in response to generation of an application process executing the application, releasing the first scheduling policy and applying the second scheduling policy to the at least one process.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The disclosure relates to an electronic device and a method for managing resources. BACKGROUND

[0002] As technology develops and advances, electronic devices can provide various functions in addition to existing functions. For example, a television (TV) can not only display a broadcast channel, but also provide a function (or capability) for executing an application, accessing a website, or communicating with other electronic devices.

[0003] A user can turn on the TV and run an application. For example, after turning on the TV, an application that provides an over-the-top (OTT) service by inputting a key on a remote controller can be executed. The execution of the application based on the user's key input can be performed at a varying speed (e.g., quickly or slowly) based on a boot performance for displaying a first screen when the TV is turned on and an execution performance of the application. SUMMARY

[0004] TECHNICAL PROBLEM

[0005] Generally, in an electronic device, as a boot performance for displaying a first screen when a TV is turned on improves, an execution performance of an application can decrease, and conversely, as the boot performance decreases, the execution performance of the application can improve. Therefore, a method for improving the application execution performance while maintaining the boot performance is needed.

[0006] Meanwhile, if resource management is not properly performed in an electronic device, central processing unit (CPU) contention or priority inversion can occur between processes associated with an application. CPU contention refers to a situation in which CPU resources are competed for between processes, and priority inversion refers to a situation in which execution of a low-priority process is delayed, causing a delay in execution of an associated high-priority process. CPU contention and priority inversion can delay application execution. Therefore, a resource management technique that can execute an application faster while preventing / reducing the above problems is needed.

[0007] TECHNICAL SOLUTION

[0008] Embodiments of the disclosure can provide an electronic device and a method for managing resources.

[0009] Embodiments of the disclosure can provide an electronic device and a method that can execute an application selected by a user faster after a cold boot.

[0010] Embodiments of the disclosure can provide an electronic device and a method that can enhance CPU contention or priority inversion.

[0011] An electronic device according to an example embodiment of the disclosure can include a memory storing at least one program, and at least one processor including a processing circuit electrically connected to the memory and configured to execute at least one instruction of the program stored in the memory. The at least one processor can be individually and / or collectively configured to identify at least one service associated with an application in response to an execution of the application being requested, determine a first scheduling policy and a second scheduling policy to be applied to at least one process associated with the at least one service, apply the first scheduling policy corresponding to a higher scheduling priority among the first and second scheduling policies to the at least one process, and release the first scheduling policy and apply the second scheduling policy to the at least one process in response to generation of an application process executing the application.

[0012] According to an example embodiment, the first scheduling policy can include a policy to preferentially allocate a first resource to the at least one process. The second scheduling policy can include a policy to allocate a second resource to the at least one process based on a set resource allocation ratio. The set resource allocation ratio can correspond to at least one control group including the at least one process among a plurality of control groups.

[0013] According to an example embodiment, the at least one processor can be individually and / or collectively configured to apply the first scheduling policy to the application process in response to the generation of the application process, and release the first scheduling policy applied to the application process and apply the second scheduling policy to the application process in response to a set time elapsing from a time when the first scheduling policy is applied to the application process.

[0014] According to an example embodiment, the at least one processor can be individually and / or collectively configured to identify a first process including a communication request process among processes and a second process including a communication response process among the processes in response to a need for communication between the processes at a predetermined time, compare a first scheduling priority of the first process with a second scheduling priority of the second process, and inherit the first scheduling priority to the second process in response to the first scheduling priority being higher than the second scheduling priority.

[0015] According to an example embodiment, the first process can correspond to the application process. The second process can correspond to any one of the at least one process.

[0016] According to an example embodiment, the at least one processor can be individually and / or collectively configured to determine whether a set time elapses from a time when the first scheduling priority is inherited to the second process, and release the inheritance of the first scheduling priority to the second process in response to the set time elapsing.

[0017] According to an example embodiment, a first scheduling priority can be determined to preferentially allocate a first resource to a first process based on a first scheduling policy. A second scheduling priority can be determined to allocate a second resource corresponding to a set resource allocation ratio to a second process based on a second scheduling policy.

[0018] According to an example embodiment, the second process can be registered as a priority inheritance target process.

[0019] According to an example embodiment, the at least one processor can be individually and / or collectively configured to, in response to identifying a plurality of first processes, identify a third scheduling priority corresponding to a highest priority among respective scheduling priorities of the first processes, compare the third scheduling priority with a second scheduling priority of a second process, and in response to the third scheduling priority being higher than the second scheduling priority, inherit the third scheduling priority to the second process.

[0020] A method according to an example embodiment of the disclosure can include, in response to an execution of an application being requested, identifying at least one service associated with the application, determining a first scheduling policy and a second scheduling policy to be applied to at least one process associated with the at least one service, applying the first scheduling policy corresponding to a higher scheduling priority among the first and second scheduling policies to the at least one process, and in response to generation of an application process executing the application, releasing the first scheduling policy and applying the second scheduling policy to the at least one process.

[0021] According to an example embodiment, the first scheduling policy can include a policy to preferentially allocate a first resource to the at least one process. The second scheduling policy can include a policy to allocate a second resource to the at least one process based on a set resource allocation ratio. The set resource allocation ratio can correspond to at least one control group including the at least one process among a plurality of control groups.

[0022] According to an example embodiment, the method can further include, in response to generation of the application process, applying the first scheduling policy to the application process, and in response to a set time elapsing from a time at which the first scheduling policy is applied to the application process, releasing the first scheduling policy applied to the application process and applying the second scheduling policy to the application process.

[0023] According to an example embodiment, the method can further include, in response to a communication between processes being required at a predetermined time, identifying a first process including a communication request process among the processes and a second process including a communication response process among the processes, comparing a first scheduling priority of the first process with a second scheduling priority of the second process, and in response to the first scheduling priority being higher than the second scheduling priority, inheriting the first scheduling priority to the second process.

[0024] According to the example embodiment, the first process may correspond to the application process. The second process may correspond to any one of the at least one process.

[0025] According to an example embodiment, the method may further include determining whether a set time has elapsed since the time when the first scheduling priority was inherited by the second process, and releasing the second process's inheritance of the first scheduling priority in response to the elapsed set time.

[0026] According to an example embodiment, a first scheduling priority can be determined to preferentially allocate a first resource to a first process based on a first scheduling policy. A second scheduling priority can be determined to allocate a second resource corresponding to a set resource allocation ratio to a second process based on a second scheduling policy.

[0027] According to the example embodiment, the second process can be registered as the priority inheritance target process.

[0028] According to an example embodiment, the method may further include: in response to identifying a plurality of first processes, identifying a third scheduling priority among the corresponding scheduling priorities of the first processes that corresponds to the highest priority, comparing the third scheduling priority with the second scheduling priority of the second process, and in response to the third scheduling priority being higher than the second scheduling priority, inheriting the third scheduling priority to the second process.

[0029] The technical aspects of this disclosure are not limited to the foregoing, and other technical aspects can be derived by those skilled in the art from the example embodiments of this disclosure. Attached Figure Description

[0030] The above and other aspects, features and advantages of certain embodiments of the present disclosure will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, wherein:

[0031] Figure 1 This is a graph illustrating an example relationship between the startup performance and application execution performance of an electronic device according to an embodiment.

[0032] Figure 2 This is a graph showing the example task processing latency caused by CPU contention according to an embodiment.

[0033] Figure 3 This is a diagram illustrating an example of priority inversion between processes according to an embodiment.

[0034] Figure 4 This is a diagram illustrating example context switching delays that may occur according to a scheduling scheme based on an embodiment.

[0035] Figure 5 This is a signal flow diagram illustrating an example execution process of an application in an electronic device according to an embodiment.

[0036] Figure 6 This is a diagram illustrating an example system architecture for managing CPU resources of an electronic device according to an embodiment.

[0037] Figure 7 This is a diagram illustrating an example priority inheritance operation between processes according to an embodiment.

[0038] Figure 8 This is a graph illustrating an example of performing nested boost operations according to an embodiment.

[0039] Figure 9 This is a graph illustrating an example of performing nested promotion operations according to an embodiment.

[0040] Figure 10 This is a flowchart illustrating an example resource management operation of an electronic device according to an embodiment.

[0041] Figure 11 This is a flowchart illustrating an example nested promotion operation applied to an application process according to an embodiment.

[0042] Figure 12 This is a flowchart illustrating an example priority inheritance operation between a first process and a second process according to an embodiment.

[0043] Figure 13 This is a flowchart illustrating an example operation of releasing the priority inheritance between a first process and a second process according to an embodiment.

[0044] Figure 14 This is a flowchart illustrating an example priority inheritance operation between multiple first processes and second processes according to an embodiment.

[0045] Figure 15 This is a block diagram illustrating an example configuration of an electronic device according to an embodiment.

[0046] Figure 16 This is a graph illustrating the example execution performance of application A according to an embodiment.

[0047] Figure 17 This is a graph illustrating the example execution performance of application B according to an embodiment.

[0048] Figure 18 This is a graph showing example startup performance and application execution performance according to an embodiment.

[0049] Throughout the disclosure and accompanying drawings, the same or similar reference numerals may be used to refer to the same or similar elements. Detailed Implementation

[0050] Various exemplary embodiments of the present disclosure will now be described in more detail with reference to the accompanying drawings. However, the present disclosure may be implemented in various other forms and is not limited to the various exemplary embodiments set forth herein. Furthermore, for clarity and brevity, descriptions of well-known functions and configurations may be omitted in the drawings and related descriptions.

[0051] Electronic devices (e.g., TVs) can execute user-selected applications after a cold start. A cold start can, for example, refer to an electronic device that is powered on, then powered off, and then powered back on to start up.

[0052] To enhance the startup performance of electronic devices, suspend-to-RAM (Random Access Memory) technology can be used. Suspend-to-RAM technology refers to the technique of storing information (e.g., system information) in RAM immediately before the electronic device is powered off, and maintaining the stored information in RAM with a certain current (e.g., a low current below a threshold). If the electronic device is powered off and then powered on again, it can quickly display its initial screen (e.g., the main screen) using the information stored in RAM immediately before the power-off, based on the suspend-to-RAM technology.

[0053] Using suspend-to-RAM technology in electronic devices can reduce boot time and prevent and / or reduce application execution delays due to power-on / off times. However, if the user physically (or manually) turns off the electronic device, such as by unplugging the power cord, or if the electronic device is a battery-powered mobile device, the information stored in RAM may not be retained, thus disallowing the use of suspend-to-RAM technology.

[0054] After considering startup performance and application execution performance, electronic devices can quickly execute user-selected applications after a cold boot. For example, startup performance and application execution performance can have characteristics such as... Figure 1 The relationship shown.

[0055] Figure 1 This is a graph illustrating an example relationship between the startup performance and application execution performance of an electronic device according to an embodiment.

[0056] refer to Figure 1 Startup performance can be correlated with cold start time 102, and application execution performance can be correlated with application execution time 104. Cold start time 102 can be identified as the time from applying (e.g., supplying) power to the electronic device (or turning on the power) to the completion of the startup process and the initial display of the screen. Application execution time 104 can be identified as the time from receiving user input related to application execution to the execution of the application.

[0057] like Figure 1As shown, a shorter cold start time 102 can be associated with a longer app execution time 104, and a longer cold start time 102 can be associated with a shorter app execution time 104. For example, if the cold start time 102 decreases, the app execution time 104 may increase due to the failure to complete operating system (OS) initialization (or system initialization). For example, if the cold start time 102 increases, the application execution time 104 may decrease because OS initialization is completed or performed more times. Therefore, startup performance based on cold start time 102 and application execution time 104 can have a trade-off (e.g., complementary) relationship. Considering this relationship, electronic devices may require resource management techniques capable of satisfying both startup performance and application execution performance.

[0058] Electronic devices can perform scheduling (e.g., scheduling operations) for resource management to allocate resources to an application to be executed and at least one service. According to the example, at least one service may be associated with the application to be executed, and resources may include CPU resources. In the following description, for convenience and simplicity, resources will be described as CPU resources. However, resources are not limited to CPU resources and may include other types of resources (e.g., memory).

[0059] If insufficient CPU resources are allocated to the application to be executed and at least one service, CPU contention or priority inversion may occur between processes associated with the application. CPU contention and priority inversion can cause delays in application execution.

[0060] CPU contention refers to a struggle among multiple processes (or threads) to acquire CPU resources. CPU contention can occur if multiple processes are not allocated sufficient CPU resources as needed. Failure to secure CPU resources means that processes without allocated resources may have to wait until those resources are available. In this situation, the processing of a process's task may be delayed.

[0061] Figure 2 This is a graph showing the example task processing latency caused by CPU contention according to an embodiment.

[0062] refer to Figure 2If a process fails to acquire (or acquire) resources from CPU contention, it may experience a time delay in processing its task. For example, if a task associated with a process has a processing time (or operation time) of three (3) seconds 202, but waits five (5) seconds until resources are acquired from CPU contention, the task may be completed in eight (8) seconds or later. In other words, a task that takes eight (8) seconds to complete can be delayed by a five (5) second delay 204. Delays in processing tasks can cause inconvenience and a negative experience for the user. For example, if a task is related to key input processing on a TV remote, the user may experience inconvenience due to delays or lags in responding to key input on the TV remote.

[0063] The application that the user requests to execute can perform actions to provide a fast screen display. The application process executing the application may not be able to perform (or handle) all functions on its own. In this case, the application process may request functions necessary by a service process associated with at least one service. For example, the application process may request time information from a timer process or screen display information from an alignment process. This inter-process communication can be performed through inter-process communication (IPC).

[0064] For fast application execution, promotion (e.g., allocating higher priority for resource preemption) can be applied to application processes to prevent and / or reduce latency. On the other hand, latency can occur because promotion is not applied to service processes (e.g., timers or alignment processes) that communicate with the application process. In other words, because service processes have lower priority than application processes, certain tasks requested by the application and associated with the service process may not be executed due to insufficient (or inefficient) allocation of CPU resources. As a result, if the service process's tasks are not executed, the application process's operations may also be delayed (e.g., it may have to wait until the service process's tasks are competed for). This situation can be represented as, or called, priority inversion. In other words, priority inversion can indicate a situation where the operations of a higher-priority process (e.g., the application process) are delayed by a lower-priority process (e.g., the service process). In other words, even if the application process has a higher priority than the service process, as a result of insufficient allocation of CPU resources, the application process may not be processed until the tasks associated with the service process are completed, resulting in latency. See below for reference. Figure 3 Here is another example of priority inversion occurring between service processes, described in more detail.

[0065] Figure 3 This is a diagram illustrating an example of priority inversion between service processes according to an embodiment.

[0066] refer to Figure 3The first process 302, the second process 304, and the third process 306 can be service processes used to execute the application. For example, the application process 308 can be launched and executed after the first process 302, the second process 304, and the third process 306 have completed.

[0067] Communication can be performed by any two (2) of the first process 302, the second process 304, the third process 306, and the application process 308. For example, the first process 302 and the second process 304 can perform inter-process communication (or IPC). The first process 302, which has a higher priority, may not execute in standby mode until the second process 304, which has a lower priority, occupies (e.g., is allocated) CPU resources and executes the IPC response. For example, the first process 302 may not execute during the waiting time from sending an IPC request signal to the second process 304 to receiving an IPC response signal from the second process 304 (e.g., IPC wait). In other words, priority inversion may occur between the first process 302 and the second process 304, and as a result, the execution of the first process 302 may be delayed. The delay in the execution of the first process 302 may cause delays in the execution of the third process 306 and the generation of the application process 308, which is to be executed later, and thus may delay the execution of the application. Therefore, resource management techniques that can prevent and / or reduce priority inversion may be needed.

[0068] In electronic devices, various CPU scheduling schemes can be used to perform CPU resource management more efficiently. For example, the real-time scheduling scheme (hereinafter referred to as the "real-time scheduling scheme") and the Completely Fair Scheduler (CFS) scheduling scheme can be used in the Linux kernel.

[0069] Real-time scheduling schemes are based on a real-time scheduler and allow CPU resources to be preempted based on high priority. CFS scheduling schemes are based on a CFS scheduler and can be used to allocate CPU resources fairly. CFS scheduling schemes can be used to allocate CPU resources to processes included in a control group based on CPU resource usage determined for each control group.

[0070] Table 1 below shows the scheduling strategies that can be applied to real-time scheduling schemes or CFS scheduling schemes.

[0071] [Table 1]

[0072]

[0073] Referring to Table 1, scheduling policies may include SCHED_FIFO policy, SCHED_RR policy and SCHED_OTHER (SCHED_NORMAL) policy.

[0074] The SCHED_FIFO and SCHED_RR policies are used for real-time tasks and can be classified as real-time classes that can be used in real-time scheduling schemes. The SCHED_OTHER (SCHED_NORMAL) policies are used for tasks with lower priorities than real-time tasks and can be classified as normal classes that can use the CFS scheduling scheme.

[0075] The SCHED_FIFO and SCHED_RR policies can be assigned a higher priority than the SCHED_OTHER (SCHED_NORMAL) policy. Priority can refer to resource allocation priority or scheduling priority. In Table 1, smaller numbers indicate (or represent) higher priorities. For example, -(1) can represent the highest priority, while 139 can represent the lowest priority.

[0076] The SCHED_FIFO policy indicates a strategy that allocates CPU resources to the first process to prepare based on a "first-come, first-served" (or "first-in, first-out") arrangement. The SCHED_RR and SCHED_OTHER (SCHED_NORMAL) policies represent strategies that allow processes to use CPU resources sequentially based on a "round-robin" arrangement. When using the SCHED_RR and SCHED_OTHER (SCHED_NORMAL) policies, each process can yield the CPU resources to the next process after using them for the allocated time.

[0077] As shown in Table 1, the SCHED_FIFO or SCHED_RR policy can be a policy corresponding to a relatively high priority and can be a policy that can use a real-time scheduling scheme. The SCHED_OTHER (SCHED_NORMAL) policy can be a policy corresponding to a relatively low priority or a policy that uses a CFS scheduling scheme.

[0078] Figure 4 This is a diagram illustrating example context switching delays that may occur according to a scheduling scheme based on an embodiment.

[0079] refer to Figure 4 If CFS scheduling scheme 410 is used, the possible context switching latency may be longer than if real-time scheduling scheme 420 is used.

[0080] Context switching latency can refer to, for example, the time delay that occurs during process switching. For instance, context switching latency can indicate the amount of time it takes for a process to wake up from a standby state (or mode).

[0081] According to the example, if CFS scheduling scheme 410 is used, the actual process wake-up 404 can be performed 57.47us after the required wake-up time 402. Therefore, a context switching delay of 57.47us may occur if CFS scheduling scheme 410 is used.

[0082] According to the example, if real-time scheduling scheme 420 is used, the actual process wake-up 406 can be performed 7.91us after the required wake-up time 402. Therefore, a context switching latency of 7.91us may occur if real-time scheduling scheme 420 is used.

[0083] CFS scheduling scheme 410 can prevent or reduce CPU starvation by allowing processes to use CPU resources fairly (e.g., efficiently or better allocated). CPU starvation indicates that a particular process is holding CPU resources, thus preventing another process from using CPU resources. CFS scheduling scheme 410 can be used for tasks that require long execution times because it has relatively long context switching latency and does not always guarantee CPU resource usage.

[0084] Real-time scheduling scheme 420 can have relatively short context switching latency and guarantee CPU resources until the process transitions to a sleep state. Therefore, real-time scheduling scheme 420 can be used for real-time tasks. Real-time scheduling scheme 420 can also be used for short-lived (e.g., short-duration) tasks because it may lead to CPU starvation, during which other processes may not access CPU resources (e.g., not use the CPU).

[0085] CFS scheduling scheme 410 and real-time scheduling scheme 420 can be used together in an OS. For example, resources can be allocated to processes associated with the playback of media (e.g., video or audio) based on real-time scheduling scheme 420, thereby ensuring CPU usage and preventing and / or reducing media playback interruptions. Resources can be allocated to processes associated with applications executing in the foreground based on CFS scheduling scheme 410. For example, applications can be executed smoothly by assigning processes to control groups that may use more CPU resources than other processes.

[0086] Figure 5 This is a signal flow diagram illustrating an example process of executing an application in an electronic device according to an embodiment.

[0087] refer to Figure 5The first application, selected by the user from one or more applications that can run on an electronic device, can be associated with one or more services. For example, the first application can be associated with a first service through a fourth service. The first service through the fourth service can correspond to process A 520, process B 522, process C 524, or process D 526, respectively. Communication can be performed between any two processes of process A 520, process B 522, process C 524, or process D 526. According to the example, the first application can be executed in response to user input through the sequential operation of process A 520, process B 522, process C 524, process D 526, and application process 528. For example, the first application can be executed through the following operation.

[0088] In operation 502, process A 520 may receive user input. According to the example, process A 520 may be associated with a portal application or homepage application that enables the selection of a first application. According to the example, user input may be input used to request or instruct the electronic device to execute the first application. According to the example, user input may be a signal received by the electronic device from at least one external electronic device. For example, if the electronic device is a television, the user input may be a signal corresponding to key input from a remote control selected by the user or a signal corresponding to touch input from a user interface (UI) displayed on the screen of a mobile terminal.

[0089] In operation 504, process A 520 may send a first request signal to process B 522 requesting the execution of a first application in response to receiving user input. According to the example, process B 522 may identify information related to the first application (e.g., application execution information) in response to the first request signal. For example, process B 522 may identify the first application as a web-based application.

[0090] In operation 506, process B 522 may send a second request signal to process C 524, including information related to the first application (e.g., application execution information). According to the example, process C 524 may, in response to the second request signal, perform operations for executing the first application on the web.

[0091] In operation 508, when the execution of the corresponding operation is completed, process C 524 can send a third request signal to process D 526 requesting the execution of the first application.

[0092] In operation 510, process D 526 may send a signal to application process 528 in response to a third request signal, indicating the execution or initiation of the first application.

[0093] In operation 512, application process 528 can be started in response to a third request signal. The start of application process 528 can be performed based on a process fork operation or a launch candidate operation.

[0094] According to the example, a process spawning operation may include creating an application process 528 associated with a first application and creating one or more tasks (or threads) by assigning a process identifier (PID) to the created application process 528. The one or more tasks may include multiple tasks with a parent-child relationship. According to the example, in operation 514, a generation event may occur in response to the execution of the process spawning operation. A generation event is an event indicating the generation of application process 528 and may include a process spawning event. The time of occurrence of the generation event can be identified by the start time or the time of generation of application process 528.

[0095] According to the example, if application process 528 is a previously derived but stopped process, the candidate start operation may include an operation to resume (or execute or activate) application process 528. According to the example, in operation 516, a resume event may occur in response to the execution of the candidate start operation. The time of occurrence of the resume event can be identified as the start time of application process 528.

[0096] According to the example, in response to the occurrence of a generation event or a recovery event, a first application can be executed, and in operation 518, a screen associated with the first application can be displayed on the electronic device.

[0097] Based on the example, nested promotion operations can be performed to quickly launch applications after a cold start on an electronic device (e.g., Figure 5 (First application). According to an embodiment, nested promotion operations may include operations using at least two scheduling schemes. The at least two scheduling schemes may include, but are not limited to, a real-time scheduling scheme and a CFS scheduling scheme.

[0098] In the following text, for ease of explanation, the real-time scheduling scheme may be referred to as the "RT policy," and the CFS scheduling scheme may be referred to as the "Cgroup policy." Furthermore, the RT policy and Cgroup policy are described as being included within the scheduling policies representing the CPU scheduling scheme. An RT policy can be a policy corresponding to a higher priority than a Cgroup policy, and a Cgroup policy can be a policy corresponding to a lower priority than a RT policy. Priority may also be referred to as scheduling priority.

[0099] In electronic devices, most applications can execute quickly during idle periods when the CPU is in a stable state, and slowly during cold start periods when the CPU is busy. With this in mind, electronic devices can perform nested promotion operations. For example, when executing an application during idle periods, an electronic device can use a RT (Read-Only) strategy that utilizes CPU resources as much as possible, and when the application execution time has elapsed (or exceeded) a predetermined time, the electronic device can use a Cgroup strategy that is more stable than the RT strategy. Therefore, performing nested promotion operations ensures the necessary CPU resources.

[0100] Figure 6 This is a diagram illustrating an example system architecture for managing CPU resources of an electronic device according to an embodiment.

[0101] refer to Figure 6 A system for managing the CPU resources of electronic devices may include application 602, platform 604, and kernel 606.

[0102] An application 602, which may be referred to as an app (or APP), may be associated with a service. Application 602 may include a software program executed by user selection. According to an example, application 602 may be executed by user selection using at least one external electronic device or remote control device (e.g., a remote control). According to an example, application 602 may be based on an OS and may or may not be displayed on the screen of an electronic device. Application 602 may provide various services such as media playback. According to an example, application 602 may include a home application 612 displayed on the screen of an electronic device after a cold start. According to an example, home application 612 may be an application that provides a UI for selecting at least one of the following: an application to be executed, a website search, a broadcast channel selection, or an external electronic device connection. According to an example, the application selected by the user (e.g., [example missing]) may be identified based on events provided by home application 612. Figure 5 (The first application).

[0103] Platform 604 can be associated with an OS and can provide an environment for executing application 602. Platform 604 can access hardware through kernel 606 and can perform control group assignment, control group change or movement, CPU resource allocation or management, or process management operations associated with services. According to the example, platform 604 may include a web application service (WAS) 622, an application management daemon (AMD) 624, an elevation daemon (or elevation module) 626, and a service process (or process) 628.

[0104] WAS 622 can perform operations for providing web-based application services. AMD 624 can manage the execution and lifecycle of application 602.

[0105] The elevation daemon 626 can control scheduling policies based on events associated with processes received from the kernel 606, or it can perform CPU scheduling or CPU resource management. According to examples, the elevation daemon 626 may include an app state listener 630, an inheritance booster 632, a service booster 634, a network connection handler 636, and an booster manager 638.

[0106] The app state listener 630 can receive events associated with the lifecycle of the application 602 (e.g., application execution events).

[0107] The inheritance promoter 632 can perform operations for priority inheritance between processes with different priorities. For example, the inheritance promoter 632 can request the promoter manager 638 to set (or change) the scheduling policy of a low-priority process to inherit the priority of a high-priority process.

[0108] The service booster 634 can manage the CPU resource allocation of service process 628.

[0109] Network link handler 636 can receive events associated with the lifecycle of a process (e.g., process forking events, process execution events, or process exit events) from network link 642 of kernel 606.

[0110] The booster manager 638 can set (or change) scheduling policy settings, control group allocation, resource allocation ratio determination, or CPU resource allocation priority. As an example, the booster manager 638 can, in response to a request from the inheriting booster 632, set or change the scheduling policy of a low-priority process to inherit the priority of a high-priority process.

[0111] Service process 628 can be a process that operates in the background without a UI and can provide the functionality required for the operation of a UI application. For example, service process 628 may include processes corresponding to... Figure 5 The first application is associated with the second through fourth services, processes B 522, C 524, and D 526. According to the example, application processes (e.g., ...) can be identified based on service process 628. Figure 5 The application process (528) status information. The application process status information may include, for example, information indicating any of the following: creation, resumption, focus, pause, or exit.

[0112] Kernel 606 can manage hardware and provide the services required by platform 604. Kernel 606 may include network links 642, Cgroups 644, and a real-time scheduling unit 646.

[0113] Network link 642 can provide events associated with the lifecycle of service process 628 (e.g., process forking events, process execution events, process resumption events, or process exit events). Cgroup 644 can provide CPU resource allocation functionality. According to the example, Cgroup 644 can perform CPU resource allocation functionality for each of one or more configured control groups. Real-time scheduling unit 646 can perform real-time scheduling for preempting CPU resources.

[0114] exist Figure 6 In the system shown, priority inheritance can be performed to prevent priority inversion between processes. For example, priority inheritance can be implemented as follows (see reference). Figure 7 Perform as shown and described in more detail.

[0115] Figure 7 This is a diagram illustrating an example priority inheritance operation between processes executing in an electronic device according to an embodiment.

[0116] refer to Figure 7 Priority inheritance can be applied to communication between processes that execute at a predetermined time. As an example, this process could be associated with an application that is to be executed and on which IPC is performed. For instance, if the application to be executed is... Figure 5 The first application, then, can select or assign the process. Figure 5 Process B 522 and process C 524 or Figure 5 Processes C 524 and D 526.

[0117] According to the example, in the process, the first process is 720 (for example, Figure 5 Process B 522 or process C 524 can be referred to as the caller or IPC sending process. According to the example, within the process, the second process 740 (e.g., Figure 5 The process 720 (or process D 526) can be referred to as the callee or the IPC receiving process. In the following text, the first process 720 is referred to as the caller and the second process 740 is referred to as the callee, but the terms referring to the first process 720 and the second process 740 are not limited to these and can be varied.

[0118] According to the example, caller 720 can have a relatively higher scheduling priority than callee 740, and callee 740 can have a relatively lower scheduling priority than caller 720. Callee 740 may have previously registered as a priority inheritance target process. For example, callee 740 can request daemon 626 to register callee 740 as a priority inheritance target process using the application programming interface (API) associated with registration. If callee 740 is called more than a threshold number of times to execute one or more applications after a cold start, callee 740 can call the configured API. Daemon 626 can register callee 740 as a priority inheritance target process in response to callee 740's request.

[0119] In operation 701, caller 720 may call the first library 701 (hereinafter referred to as "libcallee") corresponding to callee 740.

[0120] In operation 702, if the callee 740 has been registered as a priority inheritance target process, the first library may request that the callee 740 be promoted. According to the example, promotion may include changing the scheduling policy to have an operation with a higher scheduling priority or inheriting an operation with a higher scheduling priority. According to the example, the promotion request may be provided to the promotion daemon 626 through the second library (hereinafter referred to as "libboost") 703. According to the example, if the callee 740 is registered as a priority inheritance target process and the callee 740's scheduling priority is lower than the caller 720's scheduling priority, the promotion request may be provided to the promotion daemon 626. According to the example, the promotion request may include information about the caller 720's scheduling priority or information about the scheduling policy applied to the caller 720.

[0121] The inheritor promoter 632 of the promotion daemon 626 can receive promotion requests from the caller 720. In response to receiving a promotion request, the inheritor promoter 632 can request the promoter manager 638 to perform operations for promoting the callee 740 (e.g., the inheritance of the caller 720's scheduling priority or scheduling policy).

[0122] In response to a request to inherit the promotion policy 632, the promotion manager 638 can set or change the scheduling policy of the caller 720 such that the caller 720's scheduling priority is inherited by the callee 740 (or the scheduling policy applied to the caller 720 is inherited by the callee 740). For example, if a Cgroup policy is set (e.g., configured or changed) for the callee 740, the promotion manager 638 can set (e.g., configured or changed) an RT policy for the callee 740 to release the Cgroup policy and have the same scheduling priority as the caller 720. According to the example, the RT policy could be a scheduling policy applied to the caller 720.

[0123] In operation 704, the lifter manager 638 can provide the kernel 606 with information about the scheduling policy set for the callee 740. Within the kernel 606, resource allocation performed by Cgroup 644 or the real-time scheduling unit 646 can be executed based on the scheduling policy set for the callee 740. For example, if the set scheduling policy is an RT policy, the real-time scheduling unit 646 can preempt CPU resources and allocate them to the callee 740.

[0124] In operation 706, the caller 720 can send an IPC request to the callee 740.

[0125] In operation 708, the callee 740 can handle IPC requests with higher scheduling priorities based on promotion.

[0126] In operation 710, in response to processing the IPC request, the callee 740 may send an IPC response to the caller 720.

[0127] In operation 712, the caller 720 may request the callee 740 to release the promotion. According to an embodiment, the promotion release request can be provided to the promotion daemon 626 via libboost 703.

[0128] The inheriting promoter 632 of the promotion daemon 626 can receive a promotion release request provided by the caller 720. In response to receiving the promotion release request, the inheriting promoter 632 can request the promoter manager 638 to perform the promotion release operation for the callee 740 (e.g., release the inheritance of the caller 720's scheduling priority or scheduling policy).

[0129] In response to a request from the inheritance promoter 632, the promoter manager 638 can determine whether a timeout event associated with the priority inheritance operation has occurred. According to the example, the timeout event may occur at a specified time after the priority inheritance has been performed.

[0130] In response to a timeout event, the promoter manager 638 can change (or update) the scheduling policy of the callee 740, causing the scheduling priority inherited by the caller 720 to be released (or the scheduling policy inherited by the caller 720 to be released). For example, the promoter manager 638 can release the RT policy set for the callee 740 and set a Cgroup policy for the callee 740 corresponding to a lower scheduling priority. According to the example, the Cgroup policy can be a scheduling policy previously set for the callee 740.

[0131] In operation 714, the lifter manager 638 can provide information to the kernel 606 about the configured scheduling policy. Within the kernel 606, resource allocation by Cgroup 644 or the real-time scheduling unit 646 can be performed based on the scheduling policy set for the callee 740. For example, if the scheduling policy set for the callee 740 is a Cgroup policy, the kernel 606 can allocate CPU resources to the callee 740 based on the resource allocation ratio corresponding to the control group that includes the callee 740.

[0132] As shown in the example, nested promotion operations using RT and Cgroup strategies can be performed when spawning application processes or in conjunction with priority inheritance operations. See below for reference. Figure 8 and Figure 9 Describe the relevant operations in more detail.

[0133] Figure 8 This is a graph illustrating an example of performing nested promotion operations according to an embodiment.

[0134] refer to Figure 8 Electronic devices can respond to application processes (e.g., Figure 5 The nested promotion operation is performed by generating the application process (528). According to the example, an electronic device can identify when an application process is generated based on the occurrence of a process derivation event associated with the application.

[0135] The electronic device can first apply RT policy 602, which corresponds to the higher scheduling priority among RT policy 802 and Cgroup policy 804, which can be used for nested promotion operations, to the application process. For example, RT policy 802 can be applied to the application process during the time period from the time T1 806 when the application process is created to the time T2 808 after the set time has elapsed. When RT policy 802 is applied, Cgroup policy 804 may not be applied to the application process.

[0136] When the application of RT policy 802 is complete, the electronic device can switch (810) the scheduling policy to be applied to the application process at time T2 808. For example, the electronic device can switch (810) the scheduling policy from RT policy 802 to Cgroup policy 804 at time T2 808. In other words, starting from time T2 808, the electronic device can apply Cgroup policy 804, which has higher stability than RT policy 802, to the application process. Cgroup policy 804 can be applied from time T2 808 until the end of the application process or within the time period from time T2 808 until time T3 812, after a defined time has elapsed.

[0137] Figure 9 This is a graph illustrating another example of performing nested promotion operations according to an embodiment.

[0138] refer to Figure 9 Electronic devices can target the first process with a relatively high scheduling priority (e.g., Figure 7 The second process (e.g., the calling program 720 in the middle) communicates with the calling program 720. Figure 7 The calling procedure (720) performs a nested promotion operation. The second process can have a lower scheduling priority than the first process.

[0139] According to the example, the electronic device can apply Cgroup policy 804 to the second process from time T1 906 to time T2 908 when the second process is generated. According to the example, the second process can inherit the scheduling priority of the first process at time T2 908. At time T2 908, the electronic device can switch (910) the scheduling policy to be applied to the second process. For example, the electronic device can switch the scheduling policy from Cgroup policy 804 (910) to RT policy 802 at time T2 908.

[0140] The electronic device can apply RT policy 802 to the second process from time T2 908 to time T3 912 after the first time has elapsed. When RT policy 802 is applied, Cgroup policy 804 may not be applied to the second process.

[0141] When the priority inheritance operation is complete, the electronic device can switch its scheduling policy from RT policy 802 (914) to Cgroup policy 804 at time T3 912. Cgroup policy 804 can be applied during a time period from time T3 912 to the end of the second process or from time T3 912 to time T4 916 after the second time has elapsed. According to the example, the first time and the second time can be predetermined and can be the same or different.

[0142] Figure 10This is a flowchart illustrating an example resource management operation of an electronic device according to an embodiment.

[0143] refer to Figure 10 In operation 1002, in response to a request to execute an application, at least one service for executing the application can be identified.

[0144] In operation 1004, the electronic device can determine a first scheduling policy and a second scheduling policy to be applied to at least one process associated with at least one service. According to an example, the at least one process may be at least one process performing tasks related to the execution of an application (e.g., an application execution permission check process or a security-related process). According to an example, the at least one process may be referred to as a secondary process, and the latency of the operation may affect the application's initial performance. According to an example, the at least one process may be used to execute multiple applications. According to an example, the first and second scheduling policies may be used for nested promotion operations of the at least one process.

[0145] In operation 1006, the electronic device may apply the first scheduling policy, which corresponds to the higher scheduling priority of the first and second scheduling policies, to at least one process.

[0146] In operation 1008, in response to generating an application process for executing an application, the electronic device may release a first scheduling policy and apply a second scheduling policy to at least one process. According to the example, the generation of an application process can be identified based on the occurrence of a generation event (e.g., a process forking event) that indicates the generation of the application process.

[0147] As illustrated in the example, when multiple applications use at least one process, information regarding nested promotion operations for at least one process (e.g., a first scheduling policy and a second scheduling policy) can be managed as common configuration information for multiple applications, while other information for each application can be managed as separate configuration information. Separate configuration information can be provided using files or APIs distinct from the common configuration information.

[0148] According to the example, the first scheduling policy may include a policy that first allocates a first resource to at least one process (e.g., an RT policy). According to the example, the second scheduling policy may include a policy for allocating a second resource to at least one process based on a set resource allocation ratio (e.g., a Cgroup policy). The set resource allocation ratio may correspond to at least one control group among multiple control groups that includes at least one process.

[0149] Figure 11 This is a flowchart illustrating an example nested promotion operation applied to an application process according to an embodiment.

[0150] In operation 1102, the electronic device may apply a first scheduling policy (e.g., RT policy) to the application process in response to the creation of the application process. According to the example, operation 1102 may... Figure 10 It can be executed after operation 1008, or it can be executed in parallel with operation 1008.

[0151] In operation 1104, the electronic device can determine whether a defined time has elapsed since the first scheduling policy was applied to the application process. According to the example, the defined time could be N seconds (e.g., five (5) seconds) if the application process is associated with the first execution of the application, and M seconds (e.g., two (2) seconds) if the application process is associated with the restart of the application. Here, N can represent a time (or duration) equal to or greater than M. The defined time can be set as a timeout value in a predetermined format (e.g., JavaScript object notation (JSON)). The defined time can be included in a specific file (e.g., a manifest file) and can be set equally or differently for each application (e.g., configured or programmed).

[0152] In operation 1106, the electronic device may release the first scheduling policy applied to the application process in response to the expiration (or expiration) of a time defined from the time when the first scheduling policy was applied to the application process, and apply a second scheduling policy (e.g., a Cgroup policy) to the application process.

[0153] Figure 12 This is a flowchart illustrating an example priority inheritance operation between a first process and a second process according to an embodiment.

[0154] refer to Figure 12 In operation 1202, the electronic device can identify a first process and a second process in response to the need for communication between processes at a predetermined time. The first process is the communication requesting process within a process, and the second process is the communication responding process within a process. According to the example, the first process may correspond to an application process (e.g., ...). Figure 5 The application process 528), and the second process may correspond to at least one process associated with at least one service (e.g., process B 522, process C 524 and process D 526).

[0155] In operation 1204, the electronic device can compare the first scheduling priority of the first process with the second scheduling priority of the second process.

[0156] In operation 1206, the electronic device can determine whether the first scheduling priority is higher than the second scheduling priority.

[0157] In operation 1208, the electronic device can inherit the first scheduling priority to the second process in response to the first scheduling priority being higher than the second scheduling priority. According to the example, the second process can be registered as the priority inheritance target process. According to this example, the electronic device can apply a scheduling policy (e.g., RT policy) applied to the first process to the second process in order to inherit the first scheduling priority to the second process.

[0158] Figure 13 This is a flowchart illustrating an example operation of releasing the priority inheritance between a first process and a second process according to an embodiment.

[0159] refer to Figure 13 In operation 1302, the electronic device can determine whether a time defined from the time the first scheduling priority was inherited by the second process has elapsed (or expired). According to the example, it can be... Figure 12 After operation 1208, operation 1302 is executed.

[0160] In operation 1304, the electronic device may execute operation 1302 again in response to the fact that there is no previously defined time (e.g., remaining time) since the time when the first scheduling priority was inherited by the second process.

[0161] In response to a defined time elapsed since the time the first scheduling priority was inherited by the second process in operation 1304, the electronic device may release the second process's inheritance of the first scheduling priority in operation 1306.

[0162] Figure 14 This is a flowchart illustrating an example priority inheritance operation between multiple first processes and second processes according to an embodiment.

[0163] refer to Figure 14 In operation 1402, the electronic device can identify multiple first processes and second processes in response to the need for communication between processes at a predetermined time. The first process is the communication requesting process in the process, and the second process is the communication responding process in the process.

[0164] In operation 1404, the electronic device can identify a third scheduling priority that corresponds to the highest priority among the corresponding scheduling priorities of multiple first processes.

[0165] In operation 1406, the electronic device can compare the third scheduling priority with the second scheduling priority of the second process.

[0166] In response to the fact that the third scheduling priority is higher than the second scheduling priority in operation 1408, the electronic device can inherit the third scheduling priority to the second process in operation 1410.

[0167] In operation 1408, the electronic device may terminate all operations in response to the third scheduling priority not being higher than the second scheduling priority.

[0168] Figure 15 This is a block diagram illustrating an example configuration of an electronic device according to an embodiment.

[0169] refer to Figure 15 Electronic device 1500 may include display 1502, memory 1504, and processor (e.g., including processing circuitry) 1506. According to the example, electronic device 1500 may include additional components (e.g., a first communication unit (e.g., including communication circuitry) for performing communication with an external electronic device or a second communication unit (e.g., including communication circuitry) for performing communication with a remote control device), or at least one of the illustrated components may be omitted.

[0170] According to the example, display 1502 can perform various display operations based on the functions of electronic device 1500. For example, display 1502 can display at least one of service information, media information, text information, or broadcast information, depending on the execution of the application.

[0171] According to the example, memory 1504 may store various information or data related to the operation of electronic device 1500, and may store at least one program.

[0172] According to the example, processor 1506 may include various processing circuitry and be electrically connected to each of display 1502 and memory 1504, and may execute at least one instruction of a program stored in memory 1504. One or more processors 1506 may be provided and may perform the operations of the described electronic device 1500. For example, processor 1506 may perform the operations shown below. Processor 1506 according to embodiments of the present disclosure may include various processing circuitry and / or multiple processors. For example, as used herein, including the claims, the term "processor" may include various processing circuitry, including at least one processor, wherein one or more of the at least one processor may be configured individually and / or collectively in a distributed manner to perform the various functions described herein. As used herein, when "processor," "at least one processor," and "one or more processors" are described as being configured to perform a number of functions, these terms cover, for example, a case in which one processor performs some of the functions and another processor performs other functions of the functions, and a case in which a single processor can perform all of the functions. Furthermore, at least one processor may include, for example, a combination of processors performing various described / disclosed functions in a distributed manner. At least one processor may execute program instructions to implement or perform various functions.

[0173] According to the example, processor 1506 can identify at least one service associated with the application in response to a request to execute the application. Processor 1506 can determine a first scheduling policy (e.g., RT policy) and a second scheduling policy (e.g., Cgroup policy) to be applied to at least one process associated with the at least one service. Processor 1506 can apply the first scheduling policy, corresponding to the higher scheduling priority of the first and second scheduling policies, to the at least one process. Processor 1506 can release the first scheduling policy and apply the second scheduling policy to the at least one process in response to the creation of an application process for executing the application.

[0174] According to the example, processor 1506 can apply a first scheduling policy to an application process in response to the creation of the application process. After applying the first scheduling policy to the application process, processor 1506 can, in response to a previously defined time, release the first scheduling policy applied to the application process and apply a second scheduling policy to the application process.

[0175] According to the example, processor 1506 can identify a first process and a second process in response to the need for communication between processes at a predetermined time. The first process is the communication requesting process, and the second process is the communication responding process. Processor 1506 can compare a first scheduling priority of the first process with a second scheduling priority of the second process, and in response to the first scheduling priority being higher than the second scheduling priority, inherit the first scheduling priority to the second process.

[0176] According to the example, the first process can correspond to the application process, and the second process can correspond to at least one process.

[0177] According to the example, processor 1506 can determine whether a time defined from the time when the first scheduling priority was inherited by the second process has passed or expired, and in response to the past defined time, can release the second process's inheritance of the first scheduling priority.

[0178] Based on the example, a first scheduling priority can be determined to allocate a first resource to a first process based on a first scheduling policy. Based on the example, a second scheduling priority can be determined to allocate a second resource, corresponding to a set resource allocation ratio, to a second process based on a second scheduling policy.

[0179] According to the example, the second process can be registered as the priority-inherited target process.

[0180] According to the example, in response to identifying multiple first processes, processor 1506 can identify a third scheduling priority among the corresponding scheduling priorities of the first processes that corresponds to the highest priority, and compare the third scheduling priority with the second scheduling priority of the second processes. Processor 1506 can, in response to the third scheduling priority being higher than the second scheduling priority, inherit the third scheduling priority to the second process.

[0181] Figure 16 This is a graph showing the execution performance of application A according to an embodiment.

[0182] exist Figure 16 In the graph, the horizontal axis represents application execution time (seconds), and the vertical axis represents the number of tests (counts). Application execution time indicates the time from receiving user input related to application execution to executing the application.

[0183] exist Figure 16 In the diagram, the dashed curve represents the execution performance of application A when the above-described method according to various embodiments (hereinafter referred to as the "disclosed method") is applied, and the solid curve represents the execution performance of a conventional application of A.

[0184] refer to Figure 16 As a result of repeated testing of application A 1000 times after a cold start on an electronic device, the disclosed method reduced the average app execution time from 22 seconds to 12 seconds, improving average execution performance, and the variance from 3.28 to 1.48.

[0185] Figure 17 This is a graph showing the execution performance of application B according to an embodiment.

[0186] Figure 17 The graph represents the execution performance of application B, which differs from application A. If the disclosed methods are applied to application B, the execution performance can be enhanced in a similar manner to application A.

[0187] refer to Figure 17 As a result of repeated testing of application B 1000 times after a cold start in an electronic device, the average application execution time of the disclosed method was reduced from 22 seconds to 9.7 seconds, thereby improving average execution performance and variance from 3.17 to 1.55. Therefore, the disclosed method can improve application execution performance after a cold start.

[0188] Figure 18 This is a graph showing the startup performance and application execution performance according to an embodiment.

[0189] exist Figure 18In the graph, the horizontal axis represents applications (e.g., applications A through E), and the vertical axis represents the sum of cold start time and application execution time. Cold start time indicates the time from applying power to the electronic device to the completion of startup so that the screen can be displayed first. Cold start time can be correlated with startup performance. Application execution time indicates the time from cold start to application execution and can be correlated with application execution performance.

[0190] Figure 18 (a) shows the sum of the cold start time and application execution time for each of applications A through E, according to conventional techniques. Figure 18 (b) shows the sum of the cold start time and application execution time for each of applications A through E, according to the disclosed method. Figure 18 (a) and Figure 18 By comparing (b), it can be determined that, according to the disclosed method, startup performance and application execution performance are superior to conventional techniques.

[0191] The electronic devices according to various embodiments of this disclosure can be one of a variety of types of electronic devices. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer equipment, portable multimedia devices, portable medical devices, cameras, wearable devices, home appliances, etc. According to embodiments of this disclosure, the electronic devices are not limited to those described above.

[0192] It should be understood that the various embodiments of this disclosure and the terminology used therein are not intended to limit the technical features set forth herein to particular embodiments, but rather to include various changes, equivalents, or substitutions for the respective embodiments. Regarding the description of the drawings, similar reference numerals may be used to refer to similar or related elements. It should be understood that, unless the relevant context clearly indicates otherwise, the singular form of the noun corresponding to an item may include one or more things. As used herein, each of phrases such as “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” may include all possible combinations of items listed together in the corresponding phrase. As used herein, terms such as “first” and “second” or “first” and “second” may be used simply to distinguish the respective component from another component and do not limit the components in other respects (e.g., importance or order). It will be understood that, whether the terms "operably" or "communically" are used or not, if an element (e.g., a first element) is referred to as "combined with another element (e.g., a second element)," "combined to another element (e.g., a second element)," "connected to another element (e.g., a second element)," or "attached to another element (e.g., a second element)," then an element may be directly (e.g., wired), wirelessly connected to another element, or connected to another element via a third element. As used herein, the term "module" can include a unit implemented in hardware, software, or firmware, or any combination thereof, and may be used interchangeably with other terms (e.g., "logic," "logic block," "component," or "circuit"). A module may be a single integrated component adapted to perform one or more functions, or its smallest unit or portion. For example, according to an embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

[0193] According to various embodiments, each of the above components (e.g., a module or program) may include a single entity or multiple entities. Some of the multiple entities may be separately located in different components. According to various embodiments, one or more of the above components may be omitted, or one or more other components may be added. Alternatively or additionally, multiple components (e.g., modules or programs) may be integrated into a single component. In this case, according to various embodiments, the integrated component may still perform one or more functions of each of the multiple components in the same or similar manner as the corresponding components in the multiple components before integration. According to various embodiments, operations performed by a module, program, or other component may be performed sequentially, in parallel, repeatedly, or heuristically, or one or more operations may be performed in a different order or omitted, or one or more other operations may be added.

[0194] While this disclosure has been shown and described with reference to various exemplary embodiments, it should be understood that these exemplary embodiments are intended to be illustrative and not restrictive. Those skilled in the art will further understand that various changes in form and detail may be made without departing from the true spirit and full scope of this disclosure (including the appended claims and their equivalents). It should also be understood that any embodiment described herein may be used in conjunction with any other embodiment described herein.

Claims

1. An electronic device, comprising: Memory, which stores at least one program; as well as At least one processor, including processing circuitry, electrically connected to a memory and configured to execute at least one instruction of a program stored in the memory, wherein the at least one processor is individually and / or collectively configured to: In response to a request to execute the application, identify at least one service associated with the application; Determine a first scheduling policy and a second scheduling policy to be applied to at least one process associated with at least one service; The first scheduling policy, which corresponds to the higher scheduling priority in the first and second scheduling policies, is applied to at least one process. and In response to the creation of an application process executing the application, the first scheduling policy is released and the second scheduling policy is applied to at least one process.

2. The electronic device according to claim 1, wherein, The first scheduling strategy includes a strategy that prioritizes allocating the first resource to at least one process. The second scheduling strategy includes a strategy that allocates second resources to at least one process based on a set resource allocation ratio, and The resource allocation ratio is set to correspond to at least one control group that includes at least one process among multiple control groups.

3. The electronic device according to claim 1, wherein, At least one processor is configured individually and / or collectively as follows: In response to the creation of an application process, the first scheduling policy is applied to the application process; and In response to a set time elapsed since the first scheduling policy was applied to the application process, the first scheduling policy applied to the application process is released and the second scheduling policy is applied to the application process.

4. The electronic device according to claim 1, wherein, At least one processor is configured individually and / or collectively as follows: In response to the need for communication between processes at a specified time, a first process including the communication requesting process and a second process including the communication responding process are identified; Compare the first scheduling priority of the first process with the second scheduling priority of the second process; and In response to the first scheduling priority being higher than the second scheduling priority, the first scheduling priority is inherited by the second process.

5. The electronic device according to claim 4, wherein, The first process corresponds to the application process, and the second process corresponds to any one of the at least one processes.

6. The electronic device according to claim 4, wherein, At least one processor is configured individually and / or collectively as follows: Determine whether a set time has elapsed since the time the first scheduling priority was inherited by the second process; and In response to the previously set time, release the second process's inheritance of the first scheduling priority.

7. The electronic device according to claim 4, wherein, A first scheduling priority is determined so that the first resource is preferentially allocated to the first process based on the first scheduling policy, and The second scheduling priority is determined so that the second resource corresponding to the set resource allocation ratio is allocated to the second process based on the second scheduling strategy.

8. The electronic device according to claim 4, wherein, The second process is registered as the priority inheritance target process.

9. The electronic device according to claim 4, wherein, At least one processor is configured individually and / or collectively as follows: In response to identifying multiple first processes, identify the third scheduling priority among the corresponding scheduling priorities of the first processes that corresponds to the highest priority; Compare the third scheduling priority with the second scheduling priority of the second process; and In response to the fact that the third scheduling priority is higher than the second scheduling priority, the third scheduling priority is inherited by the second process.

10. A method for managing resources by an electronic device, the method comprising: In response to a request to execute the application, identify at least one service associated with the application; Determine a first scheduling policy and a second scheduling policy to be applied to at least one process associated with at least one service; The first scheduling policy, which corresponds to the higher scheduling priority in the first and second scheduling policies, is applied to at least one process. as well as In response to the creation of an application process executing the application, the first scheduling policy is released and the second scheduling policy is applied to at least one process.

11. The method according to claim 10, wherein, The first scheduling strategy includes a strategy that prioritizes allocating the first resource to at least one process. The second scheduling strategy includes a strategy that allocates second resources to at least one process based on a set resource allocation ratio, and The resource allocation ratio is set to correspond to at least one control group that includes at least one process among multiple control groups.

12. The method of claim 10, further comprising: In response to the creation of an application process, the first scheduling policy is applied to the application process; as well as In response to a set time elapsed since the first scheduling policy was applied to the application process, the first scheduling policy applied to the application process is released and the second scheduling policy is applied to the application process.

13. The method of claim 10, further comprising: In response to the need for communication between processes at a specified time, a first process including the communication requesting process and a second process including the communication responding process are identified; Compare the first scheduling priority of the first process with the second scheduling priority of the second process; and In response to the first scheduling priority being higher than the second scheduling priority, the first scheduling priority is inherited by the second process.

14. The method of claim 13, further comprising: Determine whether a set time has elapsed since the time the first scheduling priority was inherited by the second process; as well as In response to the previously set time, release the second process's inheritance of the first scheduling priority.

15. The method of claim 13, further comprising: In response to identifying multiple first processes, identify the third scheduling priority among the corresponding scheduling priorities of the first processes that corresponds to the highest priority; Compare the third scheduling priority with the second scheduling priority of the second process; and In response to the fact that the third scheduling priority is higher than the second scheduling priority, the third scheduling priority is inherited by the second process.