Electronic device and method for resource management
Patent Information
- Application Number
- PCT/KR2024/013981
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-19
- Filing Date
- 2024-09-13
- Publication Date
- 2025-03-27
Smart Images

Figure KR2024013981_27032025_PF_FP_ABST
Abstract
Description
Electronic devices and methods for resource management
[0001] The present disclosure relates to an electronic device and method for resource management.
[0002] As technology advances and advances, electronic devices can offer a variety of functions beyond their original functionality. For example, a television (TV) can not only display broadcast channels, but also run applications, access websites, and communicate with other electronic devices.
[0003] Electronic devices, such as TVs, can provide a multi-process environment where multiple processes can run. In electronic devices that support a multi-process environment, scheduling can be performed to efficiently allocate and manage resources. Typically, scheduling can be performed so that a second application running in the foreground receives more resources than a first application or service running in the background.
[0004] A second application requested to run in the foreground of an electronic device can be allocated the necessary resources with the highest priority. Therefore, the second application can run smoothly based on the allocated resources.
[0005] In contrast, a first service associated with a first application and requested to run in the background may be allocated fewer resources than a second application. If the resources allocated to the first service are less than the resources required to execute the first service, the execution of the first service may be delayed, and consequently, the execution of the first application may also be delayed. If the electronic device is cold booted and the first service must perform initialization or preparation operations for the execution of the first application, the execution of the first application may be further delayed.
[0006] Considering the above issues, if more resources are allocated to the first service, the resources allocated to the second application in the foreground will decrease, potentially affecting its execution. Therefore, a more efficient resource allocation method is needed in electronic devices.
[0007] One embodiment of the present disclosure may provide an electronic device and method for resource management.
[0008] One embodiment of the present disclosure can provide an electronic device and method that can reduce the delay of a service requested to be executed in the background without affecting an application running in the foreground.
[0009] One embodiment of the present disclosure can provide an electronic device and method that can enable a service requested to be executed in the background after a cold boot of the electronic device to be prepared, thereby allowing an application associated with the service to be executed more quickly.
[0010] An electronic device according to one embodiment of the present disclosure comprises: a memory storing at least one program; and at least one processor electrically connected to the memory and executing at least one command of the program stored in the memory, wherein the at least one processor determines whether a first service associated with a first application and requested to be executed in the background satisfies a set condition, and, based on the first service satisfying the set condition, allocates the first service to a first control group among a plurality of control groups, and allocates resources to the first service based on a first resource allocation ratio corresponding to the first control group, wherein the plurality of control groups include the first control group, a second control group including a second application running in the foreground, and a third control group including a third service running in the background, and wherein the first resource allocation ratio may be smaller than a second resource allocation ratio corresponding to the second control group and larger than a third resource allocation ratio corresponding to the third control group.
[0011] According to one embodiment, the set conditions may include conditions requiring communication with at least one external device for execution of the first application.
[0012] According to one embodiment, the electronic device further includes a display, the first application includes at least one application that is executed to mirror a screen displayed on the at least one external device onto the display, and the resource may include a central processing unit (CPU) resource.
[0013] According to one embodiment, the electronic device further includes a first communication interface for performing communication with the at least one external device, and the at least one processor receives a connection request for using the first service from the at least one external device through the first communication interface, and in response to receiving the connection request, changes a control group including the first service from the third control group to the first control group, allocates resources to the first service based on the first resource allocation ratio corresponding to the first control group, and performs a connection with the at least one external device based on the allocated resources.
[0014] According to one embodiment, the at least one processor may identify a process identifier (PID) of the process based on the creation of the process of the first service, call a resource allocation boosting application programming interface (API) using the identified process identifier, and, in response to the call, determine whether the first service satisfies the set condition.
[0015] According to one embodiment, the memory stores a list of at least one service that satisfies the set condition, and the at least one processor can determine, based on the list, whether the first service satisfies the set condition.
[0016] According to one embodiment, the at least one processor can identify whether the description information of the first service includes indication information indicating that the first service satisfies the set condition, and determine whether the first service satisfies the set condition based on whether the description information includes the indication information.
[0017] According to one embodiment, the at least one processor may perform initialization associated with the first service using resources allocated to the first service, and upon completion of the initialization, change the control group including the first service from the first control group to the third control group.
[0018] In one embodiment, the initialization may include, in response to receiving a request associated with the first application from at least one external device, entering a ready mode capable of processing the received request.
[0019] According to one embodiment, the electronic device further includes a second communication interface for performing communication with a remote controller configured to control the electronic device, and the at least one processor receives a control signal from the remote controller through the second communication interface, which instructs execution of a third application included in the electronic device, and in response to receiving the control signal, generates a process for executing the third application, and changes a control group including the first service from the first control group to the third control group.
[0020] According to one embodiment of the present disclosure, a method for allocating resources by an electronic device includes: an operation of determining whether a first service associated with a first application and requested to be executed in the background satisfies a set condition; an operation of allocating the first service to a first control group among a plurality of control groups based on the first service satisfying the set condition; and an operation of allocating resources to the first service based on a first resource allocation ratio corresponding to the first control group, wherein the plurality of control groups include the first control group, a second control group including a second application executed in the foreground, and a third control group including a third service executed in the background, and wherein the first resource allocation ratio may be smaller than a second resource allocation ratio corresponding to the second control group and larger than a third resource allocation ratio corresponding to the third control group.
[0021] According to one embodiment, the set conditions may include conditions requiring communication with at least one external device for execution of the first application.
[0022] According to one embodiment, the first application includes at least one application that is executed to mirror a screen displayed on the at least one external device onto a display of the electronic device, and the resource may include a central processing unit (CPU) resource.
[0023] According to one embodiment, the method may further include: receiving a connection request for using the first service from the at least one external device; in response to receiving the connection request, changing a control group including the first service from the third control group to the first control group; allocating resources to the first service based on the first resource allocation ratio corresponding to the first control group; and performing a connection with the at least one external device based on the allocated resources.
[0024] According to one embodiment, the operation of determining whether the first service satisfies the set condition may include: an operation of identifying a process identifier (PID) of a process of the first service based on the process being created; an operation of calling a resource allocation boosting application programming interface (API) using the identified process identifier; and an operation of determining, in response to the call, whether the first service satisfies the set condition.
[0025] According to one embodiment, the operation of determining whether the first service satisfies the set condition may include an operation of determining whether the first service satisfies the set condition based on a list of at least one service that satisfies the set condition.
[0026] According to one embodiment, the operation of determining whether the first service satisfies the set condition may include an operation of identifying whether the description information of the first service includes indication information indicating that the first service satisfies the set condition; and an operation of determining whether the first service satisfies the set condition based on whether the description information includes the indication information.
[0027] According to one embodiment, the method may further include performing initialization associated with the first service using resources allocated to the first service, and, when the initialization is completed, changing a control group including the first service from the first control group to the third control group.
[0028] According to one embodiment, the initialization may include an operation of entering a ready mode capable of processing the received request based on a request associated with the first application being received from at least one external device.
[0029] According to one embodiment, the method may further include: receiving a control signal from a remote controller configured to control the electronic device, the control signal instructing execution of a third application included in the electronic device; and, in response to receiving the control signal, generating a process for executing the third application and changing a control group including the first service from the first control group to the third control group.
[0030] The technical problems to be achieved in the present disclosure are not limited to the technical problems mentioned above, and other technical problems not mentioned above can be derived from the exemplary embodiments of the present disclosure by a person having ordinary knowledge in the relevant technical field.
[0031] FIG. 1 is a graph illustrating task processing delay caused by CPU contention according to one embodiment.
[0032] FIG. 2 is a graph illustrating context switch latency that may occur depending on a scheduling method according to one embodiment.
[0033] FIG. 3 is a drawing showing an example of an electronic device according to one embodiment.
[0034] FIG. 4 is a signal flow diagram illustrating an operation of executing a screen mirroring app of an electronic device by at least one external device according to one embodiment.
[0035] FIG. 5 is a system architecture diagram for CPU resource management of an electronic device according to one embodiment.
[0036] FIG. 6 is a schematic diagram illustrating a control group allocation operation associated with CPU resource management according to one embodiment.
[0037] FIG. 7 is a flowchart illustrating a resource allocation operation of an electronic device according to one embodiment.
[0038] FIG. 8 is a flowchart illustrating an operation of an electronic device performing an initialization operation and changing a control group of a first service according to one embodiment.
[0039] FIG. 9 is a flowchart illustrating an operation of an electronic device according to one embodiment of the present invention to process a connection request from at least one external device.
[0040] FIG. 10 is a flowchart illustrating the operation of an electronic device when application execution is instructed by a remote control device according to one embodiment.
[0041] Fig. 11 is a block diagram of an electronic device according to one embodiment.
[0042] In connection with the description of the drawings, the same or similar reference numerals may be used for identical or similar components.
[0043] 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.
[0044] In electronic devices, busy systems, such as during a cold boot, can cause delayed user interface (UI) responses and stutter. One of the many causes of this phenomenon is central processing unit (CPU) contention. CPU contention can refer to competition for CPU resources among multiple processes (or threads). CPU contention can occur when multiple processes are not allocated the required amount of CPU resources. Processes that fail to compete for CPU resources and are not allocated the required resources may have to wait until they are allocated CPU resources. In this case, the processing of tasks (or operations) associated with the process may be delayed.
[0045] FIG. 1 is a graph illustrating task processing delay caused by CPU contention according to one embodiment.
[0046] Referring to FIG. 1, a process that is not allocated resources in CPU contention may experience a delay in task processing until the resources are allocated. For example, if a task associated with a process has a processing time (or work time) (102) of 0.1 seconds and waits for 1 second until the resource is allocated in CPU contention, the processing of the task may be completed after 1.1 seconds have elapsed. In other words, the time taken for the task to be processed may be delayed by the delay time (104) of 1 second. The delay in task processing may cause inconvenience to the user. For example, if the task is related to processing key inputs from a TV remote control, the user may experience inconvenience due to a delay in the response to the key inputs from the TV remote control.
[0047] To ensure more efficient CPU resource allocation, various CPU resource management methods can be utilized. For example, the Linux kernel can utilize real-time scheduling (hereinafter referred to as "Real-Time Scheduling") and the Completely Fair Scheduler (CFS) scheduling method.
[0048] Real-Time scheduling is a scheduling method for preempting CPU resources based on priorities. For example, it can be utilized by the Real-Time scheduler or the O(1) scheduler. Real-Time scheduling can be utilized for real-time tasks with the highest priority. Real-Time scheduling can utilize a FIFO (first in, first out) policy, which allocates CPU resources to the process that is ready first, or a round-robin policy, which allows processes to use CPU resources in order.
[0049] The CFS scheduling scheme is a scheduling scheme designed to fairly allocate CPU resources. For example, it can be utilized by the CFS scheduler. CFS scheduling can be used for tasks with lower priorities than real-time tasks. CFS scheduling can be used to allocate CPU resources to processes within each control group (Cgroup) based on CPU resource usage determined for that group. A round-robin policy can be utilized in CFS scheduling.
[0050] FIG. 2 is a graph illustrating context switch latency that may occur depending on a scheduling method according to one embodiment.
[0051] Referring to FIG. 2, the context switch delay that may occur when the CFS scheduling method (210) is used may be longer than the context switch delay that may occur when the Real-Time scheduling method (220) is used.
[0052] Context switch latency can refer to the time delay that occurs during a process switch. For example, context switch latency can represent the time it takes for a process in a waiting state to wake up.
[0053] For example, when the CFS scheduling method (210) is used, the actual process wake-up (204) may occur 57.47 us after the required wake-up time (202). Therefore, when the CFS scheduling method (210) is used, a context switch delay of 57.47 us may occur.
[0054] For example, when the Real-Time scheduling method (220) is used, the actual process wake-up (206) may occur 7.91 us after the required wake-up time (202). Therefore, when the Real-Time scheduling method (220) is used, a context switch delay of 7.91 us may occur.
[0055] The CFS scheduling method (210) can prevent CPU starvation by ensuring that processes use CPU resources fairly. CPU starvation can indicate a situation where a specific process cannot use CPU resources because other processes are occupying them. The CFS scheduling method (210) has a relatively long context switch delay and does not guarantee constant CPU resource availability, so it can be used for tasks that require long execution times.
[0056] The Real-Time scheduling method (220) can ensure that context switch delays are relatively short and that CPU resources are used until the process transitions to a sleep state on its own. Therefore, the Real-Time scheduling method (220) can be easily used for real-time tasks. Since the Real-Time scheduling method (220) can cause a CPU starvation state in which other processes cannot use the CPU, it can be used for tasks that require execution in a short period of time.
[0057] The CFS scheduling method (210) and the Real-Time scheduling method (220) can be used together in a single operating system (OS). For example, by allocating resources to processes associated with media (e.g., video or audio) playback based on the Real-Time scheduling method (220), CPU usage can be guaranteed and media playback interruptions can be prevented. Resources can be allocated to processes associated with applications running in the foreground based on the CFS scheduling method (210). For example, by allocating the process to a control group that can utilize more CPU resources than other processes, the application can be run smoothly.
[0058] FIG. 3 is a drawing showing an example of an electronic device according to one embodiment.
[0059] Referring to FIG. 3, the electronic device (310) may be a display device such as a TV. However, this is merely an example, and the electronic device (310) may be a tablet PC, a mobile phone, or any other type of device capable of providing services based on various applications.
[0060] The electronic device (310) can perform wired and / or wireless communication with at least one external device (320). In one example, the electronic device (310) can perform wired communication with at least one external device (320) using a cable (e.g., a high-definition multimedia interface (HDMI) cable). In one example, the electronic device (310) can perform wireless communication with at least one external device (320) based on various wireless communication technologies (e.g., wireless fidelity (Wi-Fi), Bluetooth, long term evolution (LTE), LTE-A (LTE advance), or new radio (NR) communication technologies).
[0061] At least one external device (320) may be, for example, a mobile terminal such as a tablet PC or a mobile phone. The at least one external device (320) is not limited to one, as illustrated in FIG. 3, but may be two or more.
[0062] The electronic device (310) can perform infrared (IR) communication or radio frequency (RF) communication with a remote controller (330). The remote control device (330) may be referred to as a remote controller or a remote control, and may include various input units (e.g., key buttons, switches, wheels, or touch screens) for controlling the electronic device (310). The remote control device (330) may transmit a control signal for controlling the electronic device (310) to the electronic device (310) based on a user's input through the various input units. According to an example, the control signal may include at least one of a control signal for turning the electronic device (310) on or off, a control signal for changing a broadcast channel, a control signal for adjusting the volume, a control signal for executing or terminating an application, or a control signal for changing settings related to the electronic device (310).
[0063] The electronic device (310) may include one or more applications. In one example, the one or more applications may include applications executable by at least one external device (320) and / or applications executable by a remote control device (330). For example, a screen mirroring application (hereinafter referred to as a “screen mirroring app”) may be executed by at least one external device (320). The screen mirroring app may include at least one application for mirroring a screen displayed on at least one external device (320) onto the screen of the electronic device (310).
[0064] Referring to FIG. 4 below, an operation of at least one external device (320) executing a screen mirroring app of an electronic device (310) will be described. Referring to FIG. 4, an example in which at least one external device (320) and the electronic device (310) communicate based on Wi-Fi Direct or Wi-Fi P2P (peer-to-peer) technology will be described. However, communication between the at least one external device (320) and the electronic device (310) is not limited thereto and may also be performed based on other wireless communication technologies such as Bluetooth.
[0065] FIG. 4 is a signal flow diagram illustrating an operation of executing a screen mirroring app of an electronic device by at least one external device according to one embodiment.
[0066] Referring to FIG. 4, in operation 402, at least one external device (320) may transmit an invitation message to the electronic device (310) to establish a connection with the electronic device (310) to execute a screen mirroring app (438) of the electronic device (310). In one example, the invitation message may be a message for establishing a P2P connection with the electronic device (310). For example, the invitation message may be a message for inviting the electronic device (310) to join an existing P2P group, or for invoking a persistent P2P group previously established between at least one external device (320) and the electronic device (310).
[0067] An invitation message transmitted from at least one external device (320) to the electronic device (310) may be received by the communication authentication unit (430) of the electronic device (310). The communication authentication unit (430) may be referred to as a supplicant, but is not limited thereto. The communication authentication unit (430) may perform communication authentication between the electronic device (310) and the at least one external device (320) based on information included in the invitation message. According to an example, the invitation message may include at least one of a P2P group identifier (ID), a P2P group basic service set identifier (BSSID), channel information, configuration time information required until the electronic device (310) is ready to join the P2P group after responding to the invitation message, authentication information such as a password, information associated with a screen mirroring app (438), or information requesting execution of the screen mirroring app (438).
[0068] When communication between the electronic device (310) and at least one external device (320) is authenticated, the communication authentication unit (430) may, in operation 404, send a connection request to the connection information management unit (432). According to one example, the connection information management unit (432) may include a module (e.g., a WFD (Wi-Fi direct) manager) that manages Wi-Fi direct or P2P connection information between the electronic device (310) and at least one external device (320).
[0069] In operation 406, the connection information management unit (432) may transmit a connection request to the app execution unit (434) in response to a connection request received from the communication authentication unit (430). According to one example, the app execution unit (434) may include a P2P-ASM (access service management) module for application execution.
[0070] In operation 408, the app execution unit (434) may instruct the UI unit (436) to display UI information (e.g., UI information in the form of a pop-up), and in operation 410, may instruct the execution of the screen mirroring app (438). Operations 408 and 410 may be performed simultaneously, or operation 408 may be performed after operation 410.
[0071] According to an example, the UI unit (436) may be referred to as a P2P-AMS (access management service)-UI unit that provides a UI related to P2P-ASM, but is not limited thereto. The UI unit (436) may include a module or UI application that displays the status (or execution status) of the app execution unit (433) as UI information. The status of the app execution unit (433) may include an operating status of the app execution unit (433), such as whether the app execution unit (433) has received a connection request or has issued an execution instruction to an application (e.g., a screen mirroring app (438)).
[0072] When the screen mirroring app (438) is executed based on the execution instruction of the app execution unit (433), the screen mirroring app (438) may be in a state where it can perform screen mirroring. When the execution of the screen mirroring app (438) is completed, in operation 412, it may transmit a response message to at least one external device (320). According to an example, the response message may include a response message to the invitation message of operation 402. The response message may be transmitted using RTSP (real-time streaming protocol), but is not limited thereto. According to an example, the response message may include information for requesting data (e.g., image data, file data, text data, video data, media data, or streaming data) required for screen mirroring of the electronic device (310).
[0073] In operation 414, at least one external device (320) may transmit data for screen mirroring to the electronic device (310) in response to receiving a response message. In one example, at least one external device (320) may transmit data for screen mirroring in the form of a stream.
[0074] As illustrated in FIG. 4, the electronic device (310) may need to perform operations related to connection or communication with at least one external device (320) in order to execute the screen mirroring app (438) (e.g., operations of the communication authentication unit (430), the connection information management unit (432), or the app execution unit (434). In one example, the communication authentication unit (430), the connection information management unit (432), or the app execution unit (434) may be included in a service associated with the screen mirroring app (438) and may be referred to as a service associated with the screen mirroring app (438). By performing the service associated with the screen mirroring app (438) as in operations 402 to 410, the screen mirroring app (438) may be executed and enter a ready mode capable of processing a request from at least one external device (320).
[0075] For example, a service associated with a screen mirroring app (438) may be registered as a service that must run in the background after cold booting of the electronic device (310). Cold booting may refer to completely turning off the power to the electronic device (310) and then turning it on again to boot it up.
[0076] A typical operating system may utilize multiple control groups. These control groups may include a foreground control group and a background control group. The foreground control group may contain applications running in the foreground, while the background control group may contain applications or services running in the background.
[0077] A foreground control group may be allocated a greater amount of CPU resources than a background control group. Therefore, while foreground applications may run smoothly, background applications or services may experience limitations in running smoothly due to insufficient CPU resources. For example, referring to FIG. 4 , the execution of at least one service associated with a screen mirroring app (438) may be delayed due to insufficient CPU resources, which may also delay the execution of the screen mirroring app (438). In other words, the execution of the screen mirroring app (438) may be delayed until sufficient CPU resources are secured for the execution of at least one service associated with the screen mirroring app (438).
[0078] Even if the electronic device (310) has completed a cold boot and the home application screen is displayed and user operations are possible, it cannot process requests from at least one external device (320) if there is insufficient CPU resources for service initialization. Therefore, execution of the screen mirroring app (438) may be delayed until additional CPU resources are secured.
[0079] Considering the above, the following methods may be used to provide background-running services more quickly.
[0080] In one example, the electronic device (310) may be associated with a first application and may identify whether a first service requested to be executed in the background satisfies a set condition. In one example, the set condition may include a condition requiring communication (or connection) with at least one external device (320) for execution of the first application, or a condition in which the first application is executed based on a request from at least one external device (320). In one example, the first application may be the screen mirroring app (438) of FIG. 4.
[0081] In one example, the electronic device (310) may assign the identified first service to a first control group among a plurality of control groups. In one example, the first control group may be referred to as a service control group. In addition to the first control group, the plurality of control groups may further include a second control group, a third control group, and a fourth control group.
[0082] In one example, the second control group may include a second application running in the foreground. The second application may be an application displayed and running on the screen of the electronic device (310). The second application may be, for example, a UI application providing a graphical user interface (GUI). In one example, the second control group may be referred to as a foreground control group or a running control group.
[0083] In one example, the third control group may be a control group that includes a third service running in the background. The third service may not be displayed on the screen of the electronic device (310). In one example, the third control group may be referred to as a normal control group and may be set as the default control group.
[0084] For example, the fourth control group may be a control group that includes a fourth application running in the background. The fourth application may not be displayed on the screen of the electronic device (310) and may be an application or UI application that runs in the background. For example, the fourth control group may be referred to as a background control group.
[0085] For example, the priorities associated with CPU resource allocation may be in the order of the second control group, the first control group, the third control group, and the fourth control group. For example, as the priority increases, the CPU resource allocation ratio may increase. For example, the second resource allocation ratio corresponding to the second control group may be the largest, and the fourth resource allocation ratio corresponding to the fourth control group may be the smallest. The first resource allocation ratio corresponding to the first control group may be smaller than the second resource allocation ratio, but larger than the third and fourth resource allocation ratios. The third resource allocation ratio corresponding to the third control group may be smaller than the first and second resource allocation ratios, but larger than the fourth resource allocation ratio. This can be summarized as shown in [Table 1] below.
[0086]
[0087] Referring to [Table 1], the first service included in the first control group can be allocated resources at a lower rate than the second application running in the foreground, but at a higher rate than the third and fourth services in the background. Since the first control group is not included in the multiple control groups that are commonly used, the first service had no choice but to be included in the third control group. Since the third control group has a lower priority and a lower resource allocation rate than the first control group, when the first control group is used, the amount of CPU resources allocated to the first service increases, which can improve the execution performance of the first service. Consequently, as the execution performance of the first service improves, the execution performance of the first application based on the first service can be improved, and the user experience that expects fast UI responsiveness can be enhanced.
[0088] If the resource allocation ratio for the secondary application in the foreground decreases, the amount of CPU resources allocated to the secondary application decreases, which may result in performance delays. Accordingly, the resource allocation ratio for the secondary application in the foreground may be set to the same or similar ratio as before. In one example, the first to fourth resource allocation ratios corresponding to the first to fourth control groups may be set based on different weight values.
[0089] For example, the first to fourth resource allocation ratios may be set to be proportional to the weight values set for each of the first to fourth control groups. The second control group may have the largest weight value, and the fourth control group may have the smallest weight value. The first control group may have a weight value that is smaller than the weight value of the second control group and larger than the weight values of the third and fourth control groups. The third control group may have a weight value that is smaller than the weight values of the first and second control groups and larger than the weight value of the fourth control group. In one example, the weight value of the second control group may be set to a value that ensures that the resource allocation amount for the second application in the foreground does not decrease compared to before.
[0090] As previously explained, the first control group may be a separate control group distinct from the second through fourth control groups. As another example, the first control group may be included in either the second or third control group.
[0091] For example, if a first control group is included in a second control group, the first service included in the first control group may have a lower priority than the second application included in the second control group. Furthermore, the first service may have a higher priority than the third service included in the third control group and the fourth application included in the fourth control group.
[0092] For example, if the first control group is included in the third control group, the first service included in the first control group may have a higher priority than the third service included in the third control group and the fourth application included in the fourth control group. Additionally, the first service may have a lower priority than the second application included in the second control group.
[0093] FIG. 5 is a system architecture diagram for CPU resource management of an electronic device according to one embodiment.
[0094] Referring to FIG. 5, a system for CPU scheduling of an electronic device (310) may include an application (502), a platform (504), and a kernel (506).
[0095] The application (502) may be referred to as an APP or may be associated with a service. The application (502) may include a software program that is executed by a user's selection. In one example, the application (502) may be executed by a user's selection using at least one external device (320) or a remote control device (330). In one example, the application (502) is executed based on the OS and may or may not be displayed on the screen of the electronic device (310). The application (502) may provide various services such as media playback. In one example, the application (502) may include a home application (512) that is displayed on the screen of the electronic device (310) after a cold boot. In one example, the home application (512) may be an application that provides a UI for at least one of application selection, website search, broadcast channel selection, or external device connection.
[0096] The platform (504) may be associated with an operating system (OS) and may provide an environment for executing applications (502). The platform (504) may access hardware through the kernel (506) and perform control group allocation, control group change or movement, CPU resource allocation, or process management operations associated with services. In one example, the platform (504) may include a web application service (WAS) (522), an application management daemon (AMD) (524), a boost daemon (or boost module) (526), and a service process (or process) (528).
[0097] WAS (522) can perform operations to provide web-based application services. AMD (524) can manage the execution and life cycle of the application (502).
[0098] The Boost Daemon (526) may perform CPU scheduling and / or CPU resource management. In one example, the Boost Daemon (526) may include an App Status Listener (530), a Service Booster (532), a Netlink Handler (534), and a Booster Manager (536).
[0099] The app status listener (530) can receive events related to the life cycle of the application (502). The service booster (532) can manage the CPU resource allocation of the service process (528). The netlink handler (534) can receive events related to the life cycle of the process. The booster manager (536) can set CPU policies (or CPU scheduling methods), allocate control groups, determine resource allocation ratios, or set CPU resource allocation priorities.
[0100] A service process (528) may be a background process without a user interface (UI) and may provide functions necessary for the operation of a UI application. For example, the service process (528) may be related to a service associated with the screen mirroring app (438) of FIG. 4. There may be one or more service processes (528).
[0101] The kernel (506) can manage hardware and provide services required for the platform (504). The kernel (506) can include a Netlink (542), a Cgroup (544), and a RealTime Scheduling (546) unit.
[0102] Netlink (542) can provide events (e.g., process fork event, process execute event, or process exit event) associated with the lifecycle of a service process (or task) (528). Cgroup (544) can provide a CPU resource distribution function. Referring to [Table 1] described above, Cgroup (544) can provide a CPU resource distribution function for each of the first to fourth control groups. Real-time scheduling unit (546) can perform real-time scheduling to preempt CPU resources.
[0103] Control group allocation operations associated with CPU scheduling of a service process (528) can be performed through the boost daemon (526) and kernel (506) of FIG. 5. This will be described in detail with reference to FIG. 6.
[0104] FIG. 6 is a schematic diagram illustrating a control group allocation operation associated with CPU resource management according to one embodiment.
[0105] Referring to FIG. 6, in operation 602, the netlink (542) of the kernel (506) may provide a process fork event to the boost daemon (526). The boost daemon (526) may receive the process fork event through the netlink handler (534). In one example, the process fork event may be an event associated with the creation of a service process (528). For example, the process fork event may be an event indicating that a service is launched, a process identifier (PID) is assigned to the service process (528), and a main thread (or main task) is created. In one example, the process execution event that may be provided from the netlink (542) may be an event indicating the execution of the service process (528), which may occur after the process fork event. In one example, the process termination event may be an event indicating the termination of the service process (528), which may occur after the process execution event.
[0106] The netlink handler (534) can receive a process fork event and provide information about the received process fork event to the service booster (532). The service booster (532) can receive information about the process fork event from the netlink handler (534) and forward the received information to the booster manager (536) for CPU resource allocation to the service process (528).
[0107] In operation 604, the booster manager (536) may assign the service process (528) to a first control group among the plurality of control groups and provide information indicating that the service process (528) has been assigned to the first control group to the Cgroup (544). In one example, the operation of assigning the service process (528) to any one of the plurality of control groups or changing the control group of the service process (528) may be performed based on the PID of the service process (528).
[0108] Cgroup (544) can allocate CPU resources to service processes (528) based on the first resource allocation ratio corresponding to the first control group, based on information received from the booster manager (536).
[0109] At operation 606, the service process (528) may perform initialization based on allocated CPU resources. For example, the initialization may include preparatory operations (or pre-operations) that must be performed to execute an application based on the service process (528). For example, if the first service is associated with the screen mirroring app (438) of FIG. 4 , the initialization may include entering a preparatory mode capable of receiving and processing messages or requests from at least one external device (320).
[0110] In operation 608, when initialization is completed, the service process (528) may request the boost daemon (526) to release boosting by calling the boost library (libboost) (or the resource allocation boosting release API). In one example, requesting the release of boosting may include requesting the release or change of a control group set for the service process (528). In one example, requesting the release of boosting may include requesting that the set control group (e.g., the first control group) be changed or moved to a control group with a lower priority (e.g., the third control group).
[0111] The boosting release request of operation 608 may be received by the service booster (532) of the boost daemon (526) and forwarded to the booster manager (536).
[0112] In operation 610, the booster manager (536) may, in response to the boost release request, move the service process (528) from the first control group to the third control group. The booster manager (536) may provide information to the Cgroup (544) indicating that the service process (528) has been moved to the third control group.
[0113] Cgroup (544) can allocate (or distribute) CPU resources to service processes (528) based on the third resource allocation ratio corresponding to the third control group, based on the information received from the booster manager (536).
[0114] In operation 612, the app status listener (530) may receive an app launch event. In one example, the app launch event may be an event requesting the launch of an application. The application associated with the app launch event may be, for example, an application that provides other services that do not require communication with at least one external device (320), such as an over-the-top (OTT) service. In one example, the app launch event may be received based on a control signal transmitted from a remote control device (330). The control signal transmitted from the remote control device (330) may be, for example, a control signal based on a user's key input on the remote control device (330).
[0115] The app status listener (530) can provide information indicating that an app launch event has been received to the booster manager (536). Based on the received information, the booster manager (536) can determine that an application associated with the app launch event will be launched. The booster manager (536) can move the service process (528) from the first control group to the third control group so that CPU resources can be sufficiently used in the process associated with the application. The booster manager (536) can provide information indicating that the service process (528) has been moved to the third control group to the Cgroup (544).
[0116] In operation 614, Cgroup (544) can allocate CPU resources corresponding to the third resource allocation ratio of the third control group to the service process (528) based on the information received from the booster manager (536).
[0117] FIG. 7 is a flowchart illustrating a resource allocation operation of an electronic device according to one embodiment.
[0118] Referring to FIG. 7, in operation 702, the electronic device (310) may determine whether a first service associated with a first application and requested to be executed in the background satisfies a set condition. In one example, the set condition may include a condition requiring communication (or connection) with at least one external device (320) for execution of the first application. In one example, the first service may be a service in which a service process is created when the service is initiated (or a service in which a process fork event occurs).
[0119] In one example, the operation of determining whether the first service satisfies the set condition may include an operation of the electronic device (310) identifying the PID of the process based on the creation of the process of the first service (or based on the occurrence of a process fork event for the first service), an operation of calling a resource allocation boosting API based on the identified PID, and an operation of determining whether the first service satisfies the set condition in response to the call of the resource allocation boosting API. Such an operation may be performed directly in the first service (e.g., the communication authentication unit (430), the connection information management unit (432), or the app execution unit (434) of FIG. 4).
[0120] In one example, the operation of determining whether the first service satisfies the set condition may include an operation of the electronic device (310) determining whether the first service satisfies the set condition based on a list of at least one service that satisfies the set condition. For example, if the list includes information about the first service, the electronic device (310) may determine that the first service satisfies the set condition, and if the list does not include information about the first service, the electronic device (310) may determine that the first service does not satisfy the set condition.
[0121] For example, when an application associated with a first service is installed on an electronic device (310), if it is confirmed that the first service satisfies the set conditions, the electronic device (310) may add information about the first service to a list. The list may be stored in a file format in a first path within the electronic device (310). The stored list may be used when the electronic device (310) is cold booted and at least one service is initiated by a service launcher.
[0122] According to one example, the operation of determining whether the first service satisfies the set condition may include an operation of the electronic device (310) identifying whether the description information of the first service includes instruction information indicating that the first service satisfies the set condition, and an operation of determining whether the first service satisfies the set condition based on whether the description information includes the instruction information.
[0123] In one example, when the electronic device (310) is cold booted and the first service is initiated by the service launcher, the service launcher can check the description information of the first service. In one example, the description information can be stored in a second path within the electronic device (310). If the description information includes instruction information, the service launcher can call a resource allocation boosting API to increase the priority or resource allocation ratio of the first service and transmit PID information associated with the process of the first service to a boost daemon (e.g., the boost daemon (526) of FIG. 5).
[0124] In operation 704, the electronic device (310) may assign the first service to a first control group among a plurality of control groups based on whether the first service satisfies the set condition. In one example, the plurality of control groups may include the first control group, a second control group including a second application running in the foreground, and a third control group including a third service running in the background.
[0125] In operation 706, the electronic device (310) may allocate resources to the first service based on a first resource allocation ratio corresponding to the first control group. In one example, the first resource allocation ratio may be smaller than a second resource allocation ratio corresponding to the second control group and larger than a third resource allocation ratio corresponding to the third control group. In one example, the first application may include at least one application executed to mirror a screen displayed on at least one external device (320) onto the display of the electronic device (310), and the resources may include CPU resources.
[0126] FIG. 8 is a flowchart illustrating an operation of an electronic device performing an initialization operation and changing a control group of a first service according to one embodiment.
[0127] Referring to FIG. 8, in operation 802, the electronic device (310) may perform initialization associated with the first service using resources allocated to the first service. In one example, the resources allocated to the first service may be the resources allocated in operation 706 of FIG. 7. In one example, the initialization may include an operation of entering a service preparation mode capable of processing a received request (or message or information) associated with the first application in response to receiving the request from at least one external device (320). For example, if the first service is associated with the screen mirroring app (438) of FIG. 4, the initialization may include an operation of the communication authentication unit (430), the connection information management unit (432), or the app execution unit (434) of FIG. 4 entering a preparation mode so as to be able to process a request from at least one external device (320).
[0128] In operation 804, the electronic device (310) can determine whether initialization is complete. If initialization is not complete, the electronic device (310) can continue performing the initialization operation, and if initialization is complete, can perform operation 806.
[0129] In operation 806, the electronic device (310) may change the control group including the first service from the first control group to the third control group based on the completion of the initialization. In one example, the completion of the initialization may indicate that the electronic device (310) can process a request (e.g., a connection request) from at least one external device (320) through the first application based on the first service.
[0130] The electronic device (310) determines that the electronic device (310) is ready to process a request from at least one external device (320) through the first application based on the completion of initialization, and may move the first service to a third control group having a lower priority or resource allocation ratio than the first control group. In one example, to change the control group including the first service, the resource allocation boosting release API of the boost daemon (526) may be called. The resource allocation boosting release API may be used to request that the priority or resource allocation ratio be set lower.
[0131] FIG. 9 is a flowchart illustrating an operation of an electronic device according to one embodiment of the present invention to process a connection request from at least one external device.
[0132] Referring to FIG. 9, in operation 902, the electronic device (310) may receive a connection request for using a first service from at least one external device (320).
[0133] In operation 904, in response to receiving a connection request, the electronic device (310) may change the control group including the first service from the third control group to the first control group. In one example, the first control group may be a control group with a higher priority or resource allocation ratio than the third control group and may not affect a second application running in the foreground. In one example, to change the control group including the first service, the resource allocation boosting request API of the boost daemon (526) may be called. The resource allocation boosting request API may be used to request that the resource allocation priority or resource allocation ratio be set higher.
[0134] In operation 906, the electronic device (310) may allocate resources to the first service based on the first resource allocation ratio corresponding to the first control group.
[0135] In operation 908, the electronic device (310) may perform a connection with at least one external device (320) based on the resources allocated to the first service.
[0136] FIG. 10 is a flowchart illustrating the operation of an electronic device when application execution is instructed by a remote control device according to one embodiment.
[0137] Referring to FIG. 10, in operation 1002, the electronic device (310) may receive a control signal from a remote control device (330) that instructs execution of a third application included in the electronic device (310). For example, the control signal may be a signal corresponding to a user's key input generated for execution of the third application in the remote control device (330).
[0138] In operation 1004, the electronic device (310) may create a process for executing a third application. In one example, when a process is created, a process fork event may occur, and the generated process fork event may be identified by the boost daemon (526) of FIG. 5. Based on the process fork event, if it is identified that a process associated with the third application indicated by the control signal has been created, the boost daemon (526) may determine that the third application indicated by the remote control device (330) is being executed.
[0139] In operation 1006, if the execution of the third application is determined, the electronic device (310) may change the control group including the first service from the first control group to the third control group. For example, if a key is input from the user via the remote control device (330), the CPU resource allocation ratio for at least one service (e.g., communication authentication, connection information management, etc.) associated with the screen mirroring app may be lowered.
[0140] Fig. 11 is a block diagram of an electronic device according to one embodiment.
[0141] Referring to FIG. 11, the electronic device (310) may include a processor (1102), a memory (1104), a display (1106), a first communication interface (1108), and a second communication interface (1110). In one example, the electronic device (310) may include additional components (e.g., an audio output unit) in addition to the illustrated components, or may omit at least one of the illustrated components.
[0142] According to one example, the memory (1104) can store various information or data related to the operation of the electronic device (310) and can store at least one program.
[0143] According to one example, the display (1106) can perform various display operations according to the function of the electronic device (310). For example, the display (1106) can display at least one of various service information, media information, text information, or broadcast information according to the execution of an application. According to one example, the display (1106) can perform a screen mirroring operation based on screen mirroring data received from at least one external device (320).
[0144] In one example, the first communication interface (1108) can perform wired or wireless communication with at least one external device (320). For example, the first communication interface (1108) can perform wired communication with at least one external device (320) via a cable, or wireless communication based on Wi-Fi, Bluetooth, or other wireless communication technologies.
[0145] In one example, the second communication interface (1110) can communicate with a remote control device. For example, it can perform IR communication or RF communication with at least one external device (320).
[0146] According to one example, the processor (1102) is electrically connected to the memory (1104), the display (1106), the first communication interface (1108), and the second communication interface (1110), respectively, and can execute at least one instruction of a program stored in the memory (1104). There may be one or more processors (1102) and they can perform the operations of the electronic device (310) described above. For example, the processor (1102) can perform the following operations.
[0147] According to one example, the processor (1102) may be associated with a first application and may determine whether a first service requested to be executed in the background satisfies a set condition. The set condition may include a condition that the electronic device (310) requires communication with at least one external device (320). The processor (1102) may allocate the first service to a first control group among a plurality of control groups based on whether the first service satisfies the set condition. The processor (1102) may allocate resources to the first service based on a first resource allocation ratio corresponding to the first control group. The plurality of control groups may include a first control group, a second control group including a second application running in the foreground, and a third control group including a third service running in the background. The first resource allocation ratio may be smaller than a second resource allocation ratio corresponding to the second control group and larger than a third resource allocation ratio corresponding to the third control group.
[0148] In one example, the first application may include at least one application running to mirror a screen displayed on at least one external device (320) onto a display (1106), and the resources may include CPU resources.
[0149] According to an example, the processor (1102) may receive a connection request for using a first service from at least one external device (320) via the first communication interface (1108). In response to receiving the connection request, the processor (1102) may change a control group including the first service from a third control group to a first control group. The processor (1102) may allocate resources to the first service based on a first resource allocation ratio corresponding to the first control group, and perform a connection with at least one external device (320) based on the allocated resources.
[0150] In one example, the processor (1102) may identify the process ID (PID) of the process based on the creation of the process of the first service and call the resource allocation boosting API using the identified PID. In response to the call, the processor (1102) may determine whether the first service satisfies the set conditions.
[0151] According to an example, the processor (1102) can check a list of at least one service that satisfies a set condition stored in the memory (1104). Based on the checked list, the processor (1102) can determine whether the first service satisfies the set condition.
[0152] For example, the processor (1102) can identify whether the description information of the first service includes instruction information indicating that the first service satisfies the set condition. Based on whether the description information includes instruction information, the processor (1102) can determine whether the first service satisfies the set condition.
[0153] In one example, the processor (1102) may perform initialization associated with the first service using resources allocated to the first service. Upon completion of the initialization, the processor (1102) may change the control group including the first service from the first control group to the third control group.
[0154] In one example, initialization may include, in response to receiving a request associated with a first application from at least one external device (320), entering a ready mode capable of processing a request from at least one external device (320).
[0155] According to one example, the processor (1102) may receive a control signal from a remote control device (330) via the second communication interface (1110) that instructs execution of a third application included in the electronic device (310). In response to receiving the control signal, the processor (1102) may generate a process for execution of the third application and change the control group including the first service from the first control group to the third control group.
[0156] [Table 2] below is a table showing the results of measuring the execution performance of a screen mirroring app (e.g., the screen mirroring app (438) of FIG. 4) immediately after a cold boot of an electronic device (310).
[0157]
[0158] Referring to [Table 2], the value of the 'Without Service Boosting' item represents the time required according to the prior art, and 'With Service Boosting' represents the time required according to various embodiments disclosed in this document.
[0159] According to various embodiments, the execution of communication-related services between an electronic device (e.g., a TV) (310) and at least one external device (e.g., a mobile terminal) (320) and the execution and preparation time of applications based on such services are accelerated. For example, the time (A) for at least one external device (320) to detect the electronic device (310) is reduced from the existing 44.0 seconds to 29.4 seconds.
[0160] In addition, as the priority of the service associated with the screen mirroring app (e.g., the communication authentication unit (430), the connection information management unit (432), or the app execution unit (434) of FIG. 4) increases compared to the past, the CPU resource allocation increases, and the time (B) required for the electronic device (310) to mirror the screen of at least one external device (320) is reduced from 58.0 seconds to 39.3 seconds.
[0161] As a result, the connection time between the electronic device (310) and at least one external device (320), which can be determined by the difference between time (B) and time (A), is shortened from 14.0 seconds to 9.9 seconds, so that the screen mirroring app can run more quickly.
[0162] The electronic device (310) according to various embodiments disclosed in this document may be a device of various forms. The electronic device (310) may include, for example, a portable communication device (e.g., a smartphone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance device. The electronic device (310) according to the embodiments of this document is not limited to the aforementioned devices.
[0163] 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 component (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.
[0164] 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).
[0165] 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 for storing at least one program; and At least one processor electrically connected to said memory and configured to execute at least one instruction of a program stored in said memory; At least one processor of the above: It determines whether the first service, which is associated with the first application and requested to be executed in the background, satisfies the set conditions, Based on the above first service satisfying the above set condition, assigning the above first service to a first control group among a plurality of control groups, Allocate resources to the first service based on the first resource allocation ratio corresponding to the first control group, The above plurality of control groups include the first control group, a second control group including a second application running in the foreground, and a third control group including a third service running in the background, An electronic device wherein the first resource allocation ratio is smaller than the second resource allocation ratio corresponding to the second control group and larger than the third resource allocation ratio corresponding to the third control group.
2. In paragraph 1, An electronic device, wherein the above set conditions include conditions requiring communication with at least one external device for execution of the first application.
3. In paragraph 2, Including more displays, An electronic device, wherein the first application comprises at least one application that is executed to mirror a screen displayed on the at least one external device onto the display, and the resource comprises a central processing unit (CPU) resource.
4. In paragraph 2, Further comprising a first communication interface for performing communication with at least one external device; At least one processor of the above, Receive a connection request for using the first service from at least one external device through the first communication interface; In response to receiving the above connection request, changing the control group including the first service from the third control group to the first control group, Allocate resources to the first service based on the first resource allocation ratio corresponding to the first control group, An electronic device, which performs a connection with at least one external device based on the allocated resources.
5. In paragraph 1, At least one processor of the above, Based on the creation of the process of the first service, the process identifier (PID) of the process is identified, Using the above identified process identifier, call the resource allocation boosting application programming interface (API), An electronic device, in response to said call, which determines whether said first service satisfies said set condition.
6. In paragraph 1, The above memory stores a list of at least one service that satisfies the above set conditions, An electronic device wherein at least one processor determines whether the first service satisfies the set condition based on the list.
7. In paragraph 1, At least one processor of the above, Identify whether the description information of the first service includes instruction information indicating that the first service satisfies the set conditions, An electronic device that determines whether the first service satisfies the set condition based on whether the instruction information is included in the description information.
8. In paragraph 1, At least one processor of the above, Perform initialization associated with the first service using the resources allocated to the first service, An electronic device that, when the above initialization is completed, changes the control group including the first service from the first control group to the third control group.
9. In paragraph 8, The above initialization is, An electronic device comprising: an operation of entering a ready mode capable of processing a received request based on receipt of a request associated with the first application from at least one external device.
10. In paragraph 1, Further comprising a second communication interface for performing communication with a remote controller configured to control the electronic device; At least one processor of the above, Receive a control signal from the remote control device through the second communication interface for instructing execution of a third application included in the electronic device; An electronic device, in response to receiving the control signal, generating a process for executing the third application and changing the control group including the first service from the first control group to the third control group.
11. In the method of electronic devices managing resources, An action that determines whether a first service associated with a first application and requested to run in the background satisfies a set condition; An operation of assigning the first service to a first control group among a plurality of control groups based on the first service satisfying the set condition; and An operation of allocating resources to the first service based on a first resource allocation ratio corresponding to the first control group, The above plurality of control groups include the first control group, a second control group including a second application running in the foreground, and a third control group including a third service running in the background, A method wherein the first resource allocation ratio is smaller than the second resource allocation ratio corresponding to the second control group and larger than the third resource allocation ratio corresponding to the third control group.
12. In paragraph 11, A method wherein the above set conditions include conditions requiring communication with at least one external device for execution of the first application.
13. In paragraph 12, A method wherein the first application comprises at least one application that is executed to mirror a screen displayed on the at least one external device onto a display of the electronic device, and the resource comprises a central processing unit (CPU) resource.
14. In paragraph 12, An action of receiving a connection request for using the first service from at least one external device; In response to receiving the connection request, an action of changing a control group including the first service from the third control group to the first control group; An operation of allocating resources to the first service based on the first resource allocation ratio corresponding to the first control group; and A method further comprising an operation of performing a connection with at least one external device based on the allocated resources.
15. In paragraph 11, The action of determining whether the above first service satisfies the set conditions is as follows: An action of identifying a process identifier (PID) of the process based on the creation of the process of the first service; An action of calling a resource allocation boosting application programming interface (API) using the above identified process identifier; and A method comprising, in response to said call, an action of determining whether said first service satisfies said set condition.
Citation Information
Patent Citations
Resource scheduling method and device for multiple systems
CN106776013A
Embedded platform and method for dynamic control on application sources
CN107450989A
A resource allocation method and device
CN109684090A
Dynamic resource management for multi-process applications
KR1020160132432A
Terminal device, process management method, and recording medium
US20140013331A1