Computing device and operating method thereof
Through the coordinated work of the CPU scheduler between the host system and the virtual machine system, the problem of unbalanced processing resource scheduling in the virtual machine system is solved, and the effective allocation and utilization of processing resources in the computing system is realized.
Patent Information
- Application Number
- CN202380054425.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-07-28
- Filing Date
- 2023-07-07
- Publication Date
- 2025-03-07
AI Technical Summary
The prior art is difficult to effectively control the processing resource scheduler in the virtual machine system, resulting in an unbalanced distribution of processing resources in the computing device.
Through the collaboration between the CPU scheduler of the host system and the CPU scheduler of the virtual machine system, the virtual machine system receives requests and schedules the virtual machine application as the main execution. The CPU scheduler of the host system determines the resource preemption rights of the virtual machine application by referring to the host scheduling list, and provides the result to the CPU scheduler of the virtual machine system.
It realizes the efficient execution of resource preemption scheduling in the computing system, ensures the rational allocation and utilization of processing resources, and improves the resource management efficiency of the computing system.
Smart Images

Figure CN119585714A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a computing device and an operating method thereof, and for example, to a computing device for scheduling processing resources, the computing device including a host system and a virtual machine system, and to an operating method thereof. Background Art
[0002] A virtual machine represents a software implementation of a computing environment, i.e., software that emulates a computer system. System virtual machines provide a complete system platform and support the execution of a complete operating system (OS). These system virtual machines reuse physical computers that form the basis between the virtual machines running each operating system.
[0003] A computing device may include a host system and one or more virtual machine systems, and each virtual machine system has its own processing resource scheduler. Each processing resource scheduler in the virtual machine system is responsible for allocating processing resources of the computing device. Since the processing resource scheduler in the host system and the processing resource scheduler in the virtual machine system are independent of each other, a method for controlling the processing resource scheduler in the virtual machine system is needed to effectively distribute the processing resources in the computing device. Summary of the invention
[0004] Technical issues
[0005] An embodiment of the present disclosure provides a computing device for scheduling processing resources and an operation method thereof. The computing device includes a host system and a virtual machine system.
[0006] Solution to the problem
[0007] According to an example embodiment of the present disclosure, a method for operating a computing system including a host system and a virtual machine system includes: receiving, by the virtual machine system, a request for executing a virtual machine application by a CPU scheduler of the virtual machine system, scheduling the virtual machine application requested to be executed as primary execution, providing the scheduling result to a kernel, and sending a request for confirming the resource preemption right of the virtual machine application to the CPU scheduler of the host system, and determining, by the CPU scheduler of the host system, the resource preemption right of the virtual machine application by referring to a host scheduling list, and providing information about the determined resource preemption right to the CPU scheduler of the virtual machine system.
[0008] According to an example embodiment of the present disclosure, a method for operating a computing system including a host system and a virtual machine system includes: based on the host system receiving a request for executing a virtual machine application, a CPU scheduler of the host system sends the request for executing the virtual machine application to the virtual machine system, determines the resource preemption right of the virtual machine application that is requested to be primarily executed, and sends information about the determined resource preemption right to the CPU scheduler of the virtual machine system, and based on the information about the resource preemption right of the virtual machine application that is determined to be primarily executed, the CPU scheduler of the virtual machine system schedules the virtual machine application that is requested to be executed as the primary execution, and provides the scheduling result to the kernel.
[0009] According to an embodiment of the present disclosure, a computing device includes: a host system, a virtual machine system, one or more CPUs and a memory for storing instructions, wherein, based on the computing device executing instructions, the computing device can be configured as follows: the virtual machine system receives a request for the CPU scheduler of the virtual machine system to execute a virtual machine application, schedules the virtual machine application requested to be executed as the main execution, provides the scheduling result to the kernel, and sends a request for confirming the resource preemption right of the virtual machine application to the CPU scheduler of the host system, the CPU scheduler of the host system determines the resource preemption right of the virtual machine application by referring to the host scheduling list, and provides information about the determined resource preemption right to the CPU scheduler of the virtual machine system.
[0010] According to an example embodiment of the present disclosure, a computing device includes: a host system, a virtual machine system, one or more CPUs and a memory storing instructions, wherein, based on the instructions being executed by the computing device, the computing device can be configured to: based on a request to execute a virtual machine application received by the host system, the CPU scheduler of the host system sends the request to execute the virtual machine application to the virtual machine system, determines the resource preemption right of the virtual machine application that is primarily executed by the request, and sends information about the determined resource preemption right to the CPU scheduler of the virtual machine system, and based on the information about the resource preemption right determined by the CPU scheduler of the virtual machine system to primarily execute the virtual machine application, schedules the virtual machine application that is requested to be executed as primarily executed, and provides the scheduling result to the kernel.
[0011] Advantageous Effects of the Present Disclosure
[0012] According to an example embodiment of the present disclosure, in a computing system including a host system and a virtual machine system, resource preemption scheduling may be efficiently performed for a request for executing a virtual machine application.
[0013] According to an example embodiment of the present disclosure, in a computing system including a host system and a virtual machine system, resource preemption scheduling may be effectively performed for a virtual machine application execution request received by the virtual machine system.
[0014] According to an example embodiment of the present disclosure, in a computing system including a host system and a virtual machine system, resource preemption scheduling may be effectively performed for a virtual machine application execution request received by the host system. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] Figure 1 is a diagram illustrating an example of a computing device including a host system and a virtual machine system according to various embodiments;
[0016] Figure 2 is a block diagram illustrating an example configuration of a computing device including a host system and a virtual machine system according to various embodiments;
[0017] Figure 3 is a signal flow diagram illustrating an example method of operating a computing device when a request to execute a virtual machine application is received according to various embodiments;
[0018] Figure 4 is a signal flow diagram illustrating an example method of operating a computing device when a request to execute a virtual machine application is received according to an embodiment of the present disclosure.
[0019] Figure 5 is a block diagram illustrating an example configuration of a computing device including an Android system according to various embodiments, the Android system being an example of a virtual machine system;
[0020] Figure 6 is a diagram showing an example of a host scheduling list according to various embodiments;
[0021] Figure 7 is a diagram showing various embodiments Figure 6 A signal flow diagram of an example method of operating a computing device as shown in;
[0022] Figure 8 is a diagram showing various embodiments Figure 6 A signal flow diagram of an example method of operating a computing device as shown in;
[0023] Fig. 9 is a flow chart illustrating an example method of operating a computing device when a host system receives a request to execute a virtual machine application according to various embodiments;
[0024] Fig.10 is a diagram illustrating an example of an environment in which a host system receives a request to execute a virtual machine application according to various embodiments;
[0025] Fig.11is a block diagram illustrating an example configuration of a computing device including an Android system according to various embodiments, the Android system being an example of a virtual machine system;
[0026] Fig.12 is a diagram showing the operation according to various embodiments Fig.11 A signal flow diagram of an example method of a computing device as shown in ; and
[0027] Fig.13 is a block diagram illustrating an example configuration of a computing device according to various embodiments. DETAILED DESCRIPTION
[0028] The terms used in the present disclosure are briefly described, and the present disclosure is described in more detail.
[0029] Considering the functions in the present disclosure, the terms used in the present disclosure have been selected from the common terms that are currently widely used. However, these terms may change according to the intentions of ordinary technicians in the field, case precedents, and the emergence of new technologies. In addition, for special cases, the meanings of arbitrarily selected terms are described in detail in the present disclosure. Therefore, the terms used in the present disclosure are defined based on their meanings related to the content discussed throughout the present disclosure rather than by their simple meanings.
[0030] When a part may "include" a certain element, unless otherwise specified, it may not be interpreted as excluding another element, but may be interpreted as further including other elements. In addition, terms such as "...part", "...unit", "...module" and "...block" stated in the present disclosure may refer to a unit that processes at least one function or operation, and the unit may be embodied by hardware, software, or a combination of hardware and software.
[0031] Hereinafter, with reference to the accompanying drawings, various example embodiments of the present disclosure will be described in more detail. However, the various example embodiments may be implemented in various forms and are not limited to the examples presented below. In order to clearly describe the various embodiments, parts that are not relevant to the description may be omitted, and in the description with reference to the accompanying drawings, the same or corresponding elements are indicated by the same reference numerals, and their redundant descriptions may not be repeated.
[0032] In an embodiment of the present disclosure, the term “user” refers to a person who uses an image generating apparatus to control a function or operation of the image generating apparatus, and may include a viewer, an administrator, or an installation engineer.
[0033] A computer includes a general-purpose CPU or processor designed to execute a system instruction set. The processor executes instructions specific to the processor, and the instruction set that the processor can execute is called the instruction set of the processor. The uniqueness of processors between computer systems often leads to incompatibility of the hardware architecture of the computer systems. Typically, computer manufacturers want more applications to run on their processor families. Therefore, in order to increase the number of operating systems and applications that can be executed on a computer system, a host computer (referred to as a host) with one type of CPU can use virtual machine technology, which allows the host to emulate instructions for another type of CPU called a client (guest).
[0034] In the present disclosure, a unit of work subject to scheduling for resource preemption may include an application, a process, or a task.
[0035] In the present disclosure, resources scheduled for applications, processes, tasks, etc. may include CPU, memory, or other hardware devices.
[0036] Figure 1 is a diagram illustrating an example configuration of an example of a computing device 100 including a host system 110 and a virtual machine system 120 according to various embodiments.
[0037] refer to Figure 1 , the computing device 100 may include a host system 110 and a virtual machine system 120. The host system 110 includes a startup application 110 that may include a host application and a virtual machine application. Figure 1 , the startup application 10 is shown to include two host applications #1 and #2 and two virtual machine applications #1 and #2. For example, but not limited to, in the Tizen system of Samsung Electronics Co., Ltd., the Tizen home screen may include not only Tizen applications but also Android applications. As such, when a request to execute a virtual machine application is received during the execution of the startup application 10 as an application of the host system, the scheduling of the virtual machine system 120 needs to be effectively controlled for the execution of the virtual machine application.
[0038] The virtual machine system 120 may include virtual machine applications #1, #2, #3, and #4 to be executed in the virtual machine application 20. When a request for executing the virtual machine application #2 as one of the virtual machine applications #1, #2, #3, and #4 is received during the execution of the virtual machine application 20, in order to execute the virtual machine application requested to be executed, the scheduling of the virtual machine system 120 needs to be effectively controlled.
[0039] Figure 2 is a block diagram illustrating an example configuration of a computing device 100 including a host system 110 and a virtual machine system 120 according to various embodiments.
[0040] refer to Figure 2 , the computing device 100 may include a host system 110 , a virtual machine system 120 , a kernel 130 , and a hardware platform 140 .
[0041] The computing device 100 may refer to a computer that supports the execution of an operating system and one or more application programs. The computing device 100 may be a general-purpose computer or a display device. The display device may include various types of electronic devices that receive and output content, such as but not limited to network TV, smart TV, Internet TV, web TV, IPTV, PC, etc.
[0042] Host system 110 provides an operating system platform to execute processes on computing device 100. Host system 110 controls all hardware devices in computing device 100 and manages system resources for all applications executed therein.
[0043] The host system 110 may include a host application 111, a host application framework 112, and a host CPU scheduler 113. The host application framework 112 includes various other components, such as support programs, compilers, code libraries, APIs, classes, etc., to implement an application reference structure for the host operating system. The host CPU scheduler 113 is a module for appropriately allocating CPU resources of the host system 110, and can control the CPU resource allocation of the virtual machine system 120 by communicating with the virtual machine CPU scheduler 123 of the virtual machine system 120.
[0044] According to an embodiment of the present disclosure, when a request for confirming the resource preemption rights of a virtual machine application is received from the virtual machine CPU scheduler 123, the host CPU scheduler 113 can determine the resource preemption rights of the virtual machine application by referring to the host scheduling list, and provide information about the determined resource preemption rights to the virtual machine CPU scheduler 123.
[0045] According to an embodiment of the present disclosure, when a request for confirming the resource preemption right of a virtual machine application is received from the virtual machine CPU scheduler 123, the host CPU scheduler 113 can determine the resource preemption right of the virtual machine application by referring to the host scheduling list, and provide information about the determined resource preemption right to the kernel 130. In this state, in order to provide the kernel 130 with the resource preemption right information of the virtual machine application, the virtual process identifier (PID) of the virtual machine application can be converted into a real PID using an identifier (ID) map of the kernel 130.
[0046] According to an embodiment of the present disclosure, the host CPU scheduler 113 can determine the resource preemption rights of the virtual machine application requested to be executed by receiving a request from the host system 110 to execute the virtual machine application, and provide information about the determined resource preemption rights to the virtual machine CPU scheduler 123.
[0047] Virtual machine system 120 may refer to a software implementation of a physical computing device and implements a computing platform that supports the execution of software applications under the control of a virtual machine operating system software application. Thus, a virtual machine emulates a specific computing architecture. Virtual machine system 120 may include, for example, well-known commercial operating systems such as Google LLC's Microsoft Corporation Operating system, Apple Inc. wait.
[0048] The virtual machine system 120 may include a virtual machine application 121, a virtual machine application framework 122, and a virtual machine CPU scheduler 123. The virtual machine CPU scheduler 123 is a module for allocating CPU resources of the virtual machine system 120 appropriately.
[0049] According to an embodiment of the present disclosure, when a request for executing a virtual machine application is received by the virtual machine system 120, the virtual machine CPU scheduler 123 may schedule the execution of the requested virtual machine application according to a predetermined algorithm, and provide the scheduling result to the kernel 130. In addition, the virtual machine CPU scheduler 123 may send a request for confirming the resource preemption right of the virtual machine application to the host CPU scheduler 113, receive the resource preemption right information of the virtual machine application from the host CPU scheduler 113, and update the scheduling of the virtual machine application according to the received resource preemption right information.
[0050] According to an embodiment of the present disclosure, when a request to execute a virtual machine application is received by the host system 110, the virtual machine CPU scheduler 123 can receive information about the resource preemption rights of the primary execution virtual machine application determined by the host CPU scheduler 113 from the host CPU scheduler 113, and therefore, based on the information about the determined resource preemption rights of the primary execution virtual machine application, schedule to primarily execute the virtual machine application requested to be executed, and provide the scheduling result to the kernel 130.
[0051] The kernel 130 is used to connect the virtual machine system 120 with the hardware platform 140 of the computing device 100, which is a physical component. The kernel 130, as a central operating system component, executes instructions on the host. The kernel 130 allocates memory, schedules access to the physical CPU, and schedules access to the physical hardware devices connected to the computing device 100.
[0052] The kernel 130 includes a kernel scheduler 131 for scheduling tasks or processes to be executed on the physical CPUs of the computing device 100. The kernel scheduler 131 schedules the processes to be executed on the specific physical CPUs by placing the processes into the run queues of the specific physical CPUs. In addition, the kernel scheduler 131 can rebalance the run queues of the specific physical CPUs according to the conditions of the physical CPUs.
[0053] The hardware platform 140 may include one or more physical CPUs 141, one or more memories 142, and one or more physical hardware devices 143. The memory 142 may include a random access memory storing currently executed programs and data for the programs. In addition, the hardware platform 140 may include channels, adapters, and the like.
[0054] Figure 3 is a signal flow diagram illustrating an example method of operating a computing device when a request to execute a virtual machine application is received in accordance with various embodiments.
[0055] refer to Figure 3 , in operation 301 , the computing device 100 may receive a request for executing a virtual machine application by a virtual machine system.
[0056] In the present disclosure, the work unit subject to scheduling for resource preemption may include, for example, an application, a process, a task, etc. In the following description, for the convenience of explanation, the work unit is referred to as an "application".
[0057] In operation 302, the resource allocation ranking of the virtual machine application requested to be executed by the virtual machine CPU scheduler 123 can be scheduled, and the virtual machine CPU scheduler 123 is the CPU scheduler of the virtual machine system. The virtual machine CPU scheduler 123 can schedule the resource allocation ranking of the virtual machine application requested to be executed according to the predetermined resource allocation algorithm of the virtual machine system. For example, the predetermined resource allocation algorithm can be implemented by a method of scoring according to the resource preemption importance of the application. For example, the predetermined resource allocation algorithm can determine the priority score between the minimum value and the maximum value according to the resource preemption importance. For example, the predetermined resource allocation algorithm can determine the priority score between -20 and +20. An application with a high resource allocation priority can be scored as -20, an application with a low resource allocation priority can be scored as +20, and an application with a medium resource allocation priority can be scored as 0.
[0058] In operation 303, the scheduling result determined for the virtual machine application may be provided by the virtual machine CPU scheduler 123 to the kernel 130. In this way, when there is a request for executing the virtual machine application, the CPU scheduler 123 of the virtual machine system may perform scheduling based on its own predetermined resource allocation algorithm without querying the process of the host system, and directly provide the scheduling result to the kernel, thereby executing the instructions of the virtual machine application requested to be executed without delay.
[0059] In operation 304 , the kernel 130 , which has received the scheduling result from the virtual machine CPU scheduler 123 , may perform scheduling control for the virtual machine application according to the scheduling result.
[0060] In operation 305, a request for confirming the resource preemption right of the virtual machine application may be sent by the virtual machine CPU scheduler 123 to the CPU scheduler 113 of the host system (hereinafter, referred to as the host CPU scheduler). The resource preemption right confirmation request for the virtual machine application may refer to a request from the host system for confirming the resource preemption right of the virtual machine application.
[0061] In operation 306, the resource preemption rights of the virtual machine application may be determined by the host CPU scheduler 113. The host CPU scheduler 113 may determine the resource preemption rights of the virtual machine application by referring to a host scheduling list used in the host system.
[0062] When receiving a request for confirming the resource preemption right of the virtual machine application from the CPU scheduler 123 of the virtual machine system, the CPU scheduler 113 of the host system may determine the resource preemption right of the virtual machine application by referring to the host scheduling list in the host system.
[0063] The host scheduling list may refer to a list containing priority information about applications, which is used to determine resource preemption rights of a CPU scheduler of the host system in the host system to the applications.
[0064] According to an embodiment of the present disclosure, the host scheduling list may include resource preemption priority information about one or more applications. For example, for an application with a high resource preemption necessity, the resource preemption priority may be set to high, and for an application with a low resource preemption necessity, the resource preemption priority may be set to low. The resource preemption priority may be determined between predetermined values. For example, the resource preemption priority may have a value between -20 and +20, and may be set to -20 for an application with a high resource preemption necessity, to +20 for an application with a low resource preemption necessity, and to 0 for a medium application.
[0065] According to an embodiment of the present disclosure, the host scheduling list may include one or more lists representing lists for one or more applications. For example, the host scheduling list may include a rule-based list for applications with the highest resource preemption necessity, a white list for applications with relatively high resource preemption necessity, and a black list for applications with relatively low resource preemption necessity.
[0066] The CPU scheduler 113 of the host system may determine the resource preemption rights of the virtual machine application by referring to the host scheduling list as described above.
[0067] According to an embodiment of the present disclosure, the CPU scheduler 113 of the host system can determine the resource preemption right of the virtual machine application as one of the predetermined values. For example, when the resource preemption priority has a value between -20 and +20, the CPU scheduler of the host system can determine the resource preemption right of the virtual machine application as -20.
[0068] According to an embodiment of the present disclosure, the CPU scheduler 113 of the host system may determine the resource preemption right of the virtual machine application as resource preemption permission or resource preemption rejection.
[0069] In operation 307 , the host CPU scheduler 113 may provide the virtual machine CPU scheduler with information about the resource preemption rights determined for the virtual machine application.
[0070] In operation 308, when receiving information about resource preemption rights determined for a virtual machine application from the host CPU scheduler 113, the virtual machine CPU scheduler 123 may update the scheduling result of the virtual machine application based on the information about resource preemption rights received from the host system. For example, when the scheduling result of the virtual machine CPU scheduler 123 has a high priority and the information about the resource preemption rights of the host CPU scheduler 113 is also high, the virtual machine CPU scheduler 123 may need to change the scheduling result of the virtual machine application. When the scheduling result of the virtual machine CPU scheduler 123 has a high priority and the information about the resource preemption rights of the host CPU scheduler 113 has a low priority, the virtual machine CPU scheduler may change the scheduling result of the virtual machine application to have a lower priority.
[0071] In operation 309 , the virtual machine CPU scheduler 123 may provide an updated scheduling result to the kernel 130 according to the scheduling result of the virtual machine application based on the information about the resource preemption right received from the host system.
[0072] According to an embodiment of the present disclosure, based on the information about the resource preemption right received from the host system, when the scheduling result of the virtual machine application does not change, the virtual machine CPU scheduler 123 may not provide the scheduling result to the kernel 130 .
[0073] In operation 310 , the kernel 130 may receive updated scheduling results from the virtual machine CPU scheduler 123 , and update the scheduling control based thereon.
[0074] Figure 4 is a signal flow diagram illustrating an example method of operating a computing device when a request to execute a virtual machine application is received in accordance with various embodiments.
[0075] because Figure 4 The configuration from operation 401 to operation 406 is Figure 3 The configurations from operation 301 to operation 306 are the same or similar, so their descriptions may not be repeated here.
[0076] In operation 407, the host CPU scheduler 113 may confirm the real PID of the virtual machine application. The host CPU scheduler 113 may use the virtual PID of the virtual machine application for which the request for confirming resource preemption rights is received, and use the ID map 408 maintained by the kernel 130 to obtain the real PID of the virtual machine application. The ID map 408 of the kernel 130 may include mapping information of the virtual PID and the real PID of the virtual machine application. The virtual PID is identification information used by the virtual machine system to identify the virtual machine application, and the real PID is identification information used by the kernel 130 to identify the virtual machine application. The host CPU scheduler may need the real PID of the virtual machine application to directly provide the resource preemption rights information determined for the virtual machine application to the kernel.
[0077] In operation 409 , the host CPU scheduler 113 may provide the determined information about the resource preemption right to the kernel 130 and the virtual machine CPU scheduler 123 .
[0078] The host CPU scheduler 113 may provide the kernel 130 with resource preemption right information using the real PID corresponding to the virtual machine application obtained in operation 407 .
[0079] In operation 410 , the kernel 130 may control scheduling control based on resource preemption right information on virtual machine application scheduling control received from the host CPU scheduler 113 .
[0080] When the scheduling result of the virtual machine CPU scheduler 123 has a high priority, and the information about the resource preemption right of the host CPU scheduler 113 is also high, the kernel 130 may not change the scheduling for the virtual machine application. When the scheduling result of the virtual machine CPU scheduler 123 has a high priority, and the information about the resource preemption right of the host CPU scheduler 113 has a low priority, the kernel 130 may change the scheduling for the virtual machine application to have a lower priority.
[0081] In this way, when the virtual machine CPU scheduler 123 directly provides the kernel 130 with the resource preemption right information determined for the virtual machine application, the kernel 130 can control the scheduling by quickly reflecting the resource preemption priority determined for the virtual machine application.
[0082] In operation 411 , the virtual machine CPU scheduler 123 may update a scheduling result based on the resource preemption right information about the virtual machine application received from the host CPU scheduler 113 .
[0083] When the scheduling result of the virtual machine CPU scheduler 123 has a high priority and the information about the resource preemption right of the host CPU scheduler 113 is also high, the virtual machine CPU scheduler may not change the scheduling for the virtual machine application. When the scheduling result of the virtual machine CPU scheduler 123 has a high priority and the information about the resource preemption right of the host CPU scheduler 113 has a low priority, the virtual machine CPU scheduler 123 may change the scheduling for the virtual machine application to have a lower priority.
[0084] Figure 5 is a block diagram illustrating an example configuration of a computing device 100 including an Android system, which is an example of a virtual machine system, according to various embodiments.
[0085] refer to Figure 5 According to an embodiment of the present disclosure, the computing device 100 may include an Android system 500 , a host system 110 , and a kernel 130 .
[0086] According to an embodiment of the present disclosure, the Android system 500 may include an Android application 510 , an Android CPU scheduling controller 520 , and an Android CPU scheduler 530 .
[0087] Application 510 may receive a request for executing an application. When a request for executing an Android application is received, kernel 130 may use the application ID (APP ID) of the Android application requested for execution as a key to generate a host-virtual machine ID map 132. Host-virtual machine ID map 132 may generate a virtual PID, a real PID, and a priority corresponding to the APP ID of the Android application. When initially generated, the priority information may have a null value.
[0088] The Android application 510 may receive an APP ID and a virtual PID corresponding to a virtual machine application requested to be executed from the kernel 130 , and provide the APP ID and the virtual PID to the Android CPU scheduling controller 520 .
[0089] The Android CPU scheduling controller 520 can determine the resource preemption priority of the Android application according to a predetermined resource allocation priority algorithm in the Android system 500 .
[0090] The Android CPU scheduling controller 520 can schedule resource allocation priorities for Android applications that request execution according to a predetermined resource allocation algorithm in the Android system 500. For example, the predetermined resource allocation algorithm can be implemented by a method of scoring according to the resource preemption importance of the application. For example, the predetermined resource allocation algorithm can determine a priority score between a minimum value and a maximum value according to the resource preemption importance. For example, the predetermined resource allocation algorithm can determine a priority score between -20 and +20. An application with a high resource allocation priority can be scored as -20, an application with a low resource allocation priority can be scored as +20, and an application with a medium resource allocation priority can be scored as 0.
[0091] The Android CPU scheduling controller 520 may send the App ID, virtual PID, and priority to the Android CPU scheduler 530 to provide a resource preemption priority determined for the virtual machine application requesting execution.
[0092] The Android CPU scheduling controller 520 may send a request for confirming resource preemption rights to the host CPU scheduling agent 114 to receive resource preemption rights confirmation for the virtual machine application requested to be executed from the host system. In this state, the Android CPU scheduling controller 520 may provide the App ID and virtual PID to the host CPU scheduling agent 114 to identify the virtual machine application requested to be executed.
[0093] The Android CPU scheduler 530 may send the App ID, virtual PID, and priority to the kernel 130 to provide the kernel with the resource preemption priority determined for the virtual machine application received from the Android CPU scheduling controller 520 .
[0094] When receiving the App ID, virtual PID, and priority (which are information about the resource preemption rights of the virtual machine application received from the host CPU scheduling agent 114 of the host system 110), the Android CPU scheduler 530 can update the scheduling of the virtual machine application by reflecting the information. When updating the scheduling for the virtual machine application, the Android CPU scheduler 530 can provide the updated scheduling result to the kernel 130.
[0095] The interface 133 of the kernel 130 may receive the App ID, virtual PID, and priority (which are information received from the Android CPU scheduler 530 about the resource preemption priority determined for the virtual machine application), convert the received information into a format to be understood by the kernel scheduler 131, and then send the converted information to the kernel scheduler 131. The kernel scheduler 131 may schedule the CPU to preempt resources based on the priority information about the virtual machine application.
[0096] Host system 110 may include host CPU scheduling agent 114 and host scheduling list 600 .
[0097] When receiving a request for confirming the resource preemption right of the virtual machine application having the App ID and the virtual PID from the Android CPU scheduling controller 520 , the host CPU scheduling agent 114 may determine the resource preemption right of the virtual machine application by referring to the host scheduling list 600 .
[0098] The host scheduling list 600 may refer to a list containing priority information about resource preemption rights of applications, which may be referred to when the host CPU scheduling agent 114 determines resource preemption rights of applications in the host system 110 .
[0099] According to an embodiment of the present disclosure, the host scheduling list 600 may include resource preemption priority information about one or more applications. For example, for an application with a high resource preemption necessity, the resource preemption priority may be set to high, and for an application with a low resource preemption necessity, the resource preemption priority may be set to low. The resource preemption priority may be determined between predetermined values. For example, the resource preemption priority may have a value between -20 and +20, and may be set to -20 for an application with a high resource preemption necessity, may be set to +20 for an application with a low resource preemption necessity, and may be set to 0 for a neutral application.
[0100] According to an embodiment of the present disclosure, the host scheduling list may include one or more lists representing lists for one or more applications. For example, the host scheduling list may include a rule-based list for applications with the highest resource preemption necessity, a white list for applications with relatively high resource preemption necessity, and a black list for applications with relatively low resource preemption necessity.
[0101] Figure 6 is a diagram illustrating an example of a host scheduling list 600 according to various embodiments.
[0102] refer to Figure 6, the host scheduling list 600 may include a rule-based list 610 , a white list 620 , and a black list 630 .
[0103] The rule-based list 610 may refer to a list of applications with the highest priority for resource preemption. For example, a process regarding a basic routine of a system, such as outputting a screen logo within a few seconds after power is applied to a computing device, and then starting a specific process within a few seconds, may be included in the rule-based list 610.
[0104] The white list 620 may refer to a list of relatively high priority applications having resource preemption rights. For example, a process that receives a request from a user to execute a specific Android application may be included in the white list 620.
[0105] The blacklist 630 may refer to a list of applications with the lowest priority for resource preemption. For example, since a process that updates software in the background has a relatively low necessity for resource preemption, such a process may be included in the blacklist 630. For example, a process that downloads an Android application from an Android application store (Android system), installs and executes the Android application, and outputs a pop-up window or notification according to the installation and execution may be included in the blacklist 630.
[0106] The priority levels may be determined as high priority, medium priority, and low priority in relation to the resource preemption right corresponding to each list included in the host scheduling list 600 .
[0107] Alternatively, each list included in the host scheduling list 600 may have a value corresponding to the resource preemption priority. For example, the value corresponding to the resource preemption priority is between -20 and +20, and -20 may be set to the application included in the rule-based list 610, which is a list of applications with high resource preemption necessity, +20 may be set to the application included in the blacklist 630, which is a list of applications with low resource preemption necessity, and 0 may be set to the application included in the whitelist 620, which is a list of medium applications.
[0108] When determining the resource preemption rights of the virtual machine application by referring to the host scheduling list 600, the host CPU scheduling agent 114 can provide the resource preemption rights information determined for the virtual machine application to the Android CPU scheduler 530. In this state, in order to provide the resource preemption rights information determined for the virtual machine application, the host CPU scheduling agent 114 can send the AppID, virtual PID and priority to the Android CPU scheduler 530.
[0109] The host CPU scheduling agent 114 may directly provide the resource preemption right information determined for the virtual machine application to the kernel 130. In order for the host CPU scheduling agent 114 to directly provide the resource preemption right information determined for the virtual machine application to the kernel 130, it is necessary to know the real PID corresponding to the virtual machine application. To this end, the host CPU scheduling agent 114 may obtain the real PID of the virtual machine application by using the App ID and the virtual PID by referring to the host-virtual machine ID map 132 obtained by the kernel 130. In other words, the host CPU scheduling agent 114 may provide the App ID and the virtual PID to the kernel 130, and obtain the real PID and AppID corresponding to the virtual machine application by referring to the host-virtual machine ID map 132 owned by the kernel 130. In this way, when the real PID corresponding to the virtual machine application is obtained, the host CPU scheduling agent 114 may provide the resource preemption right information determined for the virtual machine application to the kernel scheduler 131 using the real PID. In other words, the host CPU scheduling agent 114 may send the App ID, the real PID, and the priority to the kernel scheduler 131.
[0110] Figure 7 is a diagram showing the operation according to various embodiments Figure 5 00145] A signal flow diagram of an example method of a computing device shown in FIG.
[0111] refer to Figure 7 In operation 705 , the Android system 500 may receive a request for executing the Android application 510 .
[0112] In operation 710 , the Android application 510 may send a scheduling request by providing the Android CPU scheduling controller 520 with an App ID and a virtual PID corresponding to the Android application requested to be executed.
[0113] In operation 715 , the Android CPU scheduling controller 520 may perform scheduling by determining a resource preemption priority of the Android application requesting scheduling according to a resource preemption allocation algorithm in the Android system 500 .
[0114] In operation 720 , the Android CPU scheduling controller 520 may send the App ID, the virtual PID, and the priority to the Android CPU scheduler 530 as a scheduling execution result determined for the Android application.
[0115] In operation 725 , the Android CPU scheduling controller 520 may send the App ID and the virtual PID to the host CPU scheduling agent 114 of the host system 110 to send a resource preemption right confirmation request for the Android application.
[0116] In operation 730 , the Android CPU scheduler 530 may transmit the scheduling execution result received from the Android CPU scheduling controller 520 to the kernel 130 .
[0117] In operation 735 , the kernel 130 may perform scheduling control according to the scheduling result received from the Android CPU scheduler 530 .
[0118] In operation 740 , the host CPU scheduling agent 114 may determine the resource preemption rights of the Android application by referring to the host scheduling list 600 .
[0119] In operation 745, the host CPU scheduling agent 114 may provide resource preemption information determined for the Android application to the Android CPU scheduler 530. In this state, the host CPU scheduling agent 114 may send the App ID, virtual PID, and resource preemption information to the Android CPU scheduler 530.
[0120] In operation 750 , the Android CPU scheduler 530 may update the scheduling result of the Android application based on the resource preemption right information received from the host CPU scheduling agent 114 .
[0121] In operation 755 , the Android CPU scheduler 530 may provide the kernel 130 with an updated scheduling result.
[0122] In operation 760 , the kernel 130 may receive an updated scheduling result from the Android CPU scheduler 530 , and adjust the scheduling control according to the updated scheduling result.
[0123] Figure 8 is a diagram showing the operation according to various embodiments Figure 5 00145] A signal flow diagram of an example method of a computing device shown in FIG.
[0124] because Figure 8 The configuration from operation 805 to operation 840 is Figure 7 The configurations from operation 705 to operation 740 are the same or similar, so their descriptions may not be repeated here.
[0125] In operation 845, the host CPU scheduling agent 114 may send a real PID request corresponding to the Android application to the kernel 130. For the real PID request, the host CPU scheduling agent 114 may send the AppID and the virtual PID corresponding to the Android application to the kernel 130.
[0126] In operation 850 , the kernel 130 may search for the corresponding real PID using the App ID and the virtual PID corresponding to the Android application by referring to the ID map 132 , and send the App ID, the virtual PID, and the real PID to the host CPU scheduling agent 114 as a response to the real PID request.
[0127] In operation 855, the host CPU scheduling agent 114 may use the real PID to directly provide the resource preemption right information to the kernel 130. In other words, the host CPU scheduling agent 114 may send the AppID, the real PID, and the resource preemption right information to the kernel 130.
[0128] In operation 860 , the kernel 130 may update the scheduling control for the corresponding Android application based on the resource preemption right information received from the host CPU scheduling agent 114 .
[0129] In operation 865 , the host CPU scheduling agent 114 may send the App ID, the virtual PID, and the resource preemption right information to the Android CPU scheduler 530 to provide the resource preemption right information determined for the Android application to the Android CPU scheduler 530 .
[0130] In operation 870 , the Android CPU scheduler 530 may update the scheduling result of the Android application based on the resource preemption right information received from the host CPU scheduling agent 114 .
[0131] Fig. 9 is a flow chart illustrating an example method of operating a computing device when a host system receives a request to execute a virtual machine application in accordance with various embodiments.
[0132] refer to Fig. 9 In operation 910, the computing device 100 may receive a request for executing a virtual machine application through the host system, and send the request for executing the virtual machine application to the virtual machine system according to the received request for executing the virtual machine application. For example, when the host application is executed by the host system, the computing device 100 may receive a request for executing the virtual machine application through the host application.
[0133] Fig.10is a diagram illustrating an example of an environment in which a host system receives a request to execute a virtual machine application according to various embodiments.
[0134] refer to Fig.10 According to an embodiment of the present disclosure, the computing device 100 may display a Tizen home screen 1010 on the display 1000 based on the Tizen OS.
[0135] The Tizen home screen 1010 may provide a menu 1020 including items for executing one or more applications. The menu 1020 may include not only items for executing host applications #1, #2, and #3 based on the Tizen OS, but also items for executing Android applications #1, #2, and #3 based on the Android OS.
[0136] When receiving a user input requesting execution of one of the Android applications #1, #2, and #3 from the menu 1020 of the Tizen home screen 1010, the computing device 100 may confirm that the host system receives the Android application execution request. When the user input requests execution of an Android application in the above environment, it may refer to, for example, that the user explicitly requests execution of an Android application, and the computing device 100 needs to control so that the resource preemption priority of the Android application requested to be executed is set to the highest so as to be executed without delay.
[0137] Return to reference Fig. 9 In operation 920, the resource preemption right of the primary execution virtual machine application may be determined by the CPU scheduler of the host system for the virtual machine application requested to be executed, and the determined information about the resource preemption right may be sent to the CPU scheduler of the virtual machine system.
[0138] When there is a request for executing a virtual machine application in the host system environment, the CPU scheduler of the host system can recognize that this is an application that needs to be processed with the highest priority. Therefore, when there is a request for executing a virtual machine application in the host system environment, the CPU scheduler of the host system can set the resource preemption right of the virtual machine application requested to be executed to the highest.
[0139] The CPU scheduler of the host system may determine the resource preemption right so that the virtual machine application requested for execution is primarily executed, and transmit the determined information on the resource preemption right to the CPU scheduler of the virtual machine system.
[0140] In operation 930 , the CPU scheduler of the virtual machine system may schedule the virtual machine application requested for execution as the primary execution based on the information about the resource preemption right of the virtual machine application determined as the primary execution, and may provide the scheduling result to the kernel.
[0141] For the virtual machine application requested to be executed, by explicitly receiving the resource preemption right information of the virtual machine application to be mainly executed from the CPU scheduler of the host system, the CPU scheduler of the virtual machine system can perform scheduling so that the virtual machine application is mainly executed. In this way, by providing the scheduling result of the virtual machine application determined to be mainly executed to the kernel, the kernel can perform scheduling so that the resources are preempted by the virtual machine application.
[0142] Fig.11 is a block diagram illustrating an example configuration of a computing device including an Android system, which is an example of a virtual machine system, according to various embodiments.
[0143] refer to Fig.11 According to an embodiment of the present disclosure, the computing device 100 may include an Android system 500 , a host system 110 , and a kernel 130 .
[0144] According to an embodiment of the present disclosure, the host system 110 may include a host launcher application 115 , a host application framework 112 , and a host CPU scheduling agent 114 .
[0145] When receiving a request for executing an Android application, the host launcher application 115 may send the App ID of the Android application requested for execution to the host application framework 112 .
[0146] The host application framework 112 may send the App ID and a request to execute the requested Android application to the Android application framework 540 and the host CPU scheduling agent 114 of the Android system.
[0147] The host CPU scheduling agent 114 that receives the App ID from the host application framework 112 can determine the resource preemption priority of the virtual machine application whose execution request the host system receives as the highest priority, so that the virtual machine application is primarily executed. The host application framework 112 can provide resource preemption priority information about the Android application to the Android CPU scheduling controller 520 of the Android system 500, so that the Android application is scheduled according to the priority determined as above. In this state, the host CPU scheduling agent 114 can send the App ID and priority to the Android CPU scheduling controller 520 to provide resource preemption priority information about the Android application.
[0148] The Android system 500 may include an Android application 510 , an Android CPU scheduling controller 520 , an Android CPU scheduler 530 , and an Android application framework 540 .
[0149] The Android application framework 540 may receive an App ID and a request for executing an Android application whose execution request is received by the host system 110 from the host application framework 112, and provide a request for executing the corresponding Android application together with the received App ID and a virtual PID corresponding to the App ID to the Android application 510.
[0150] The Android application 510 may provide the execution request and the received App ID and virtual PID to the Android CPU scheduling controller 520 .
[0151] The Android CPU scheduling controller 520 can determine the resource preemption priority of the Android application requested to be executed based on the App ID and resource preemption priority information received from the host CPU scheduling agent 114, and provide the determined resource preemption priority information to the Android CPU scheduler 530. In this state, the Android CPU scheduling controller 520 can send the App ID, the virtual PID, and the priority of the Android application requested to be executed to the Android CPU scheduler 530.
[0152] The Android CPU scheduler 530 may provide the resource preemption priority information about the Android application received from the Android CPU scheduling controller 520 to the kernel 130 .
[0153] Fig.12 is a diagram showing the operation according to various embodiments Fig.11 00145] A signal flow diagram of an example method of a computing device shown in FIG.
[0154] refer to Fig.12 , in operation 1205, the host launcher application 115 of the host system 110 may receive a request for executing an Android application.
[0155] In operation 1210 , the host launcher application 115 may confirm that the application is an Android application by referring to property information of the Android application requested for execution.
[0156] In operation 1215 , the host launcher application 115 may send a request for executing the Android application and the App ID to the host application framework 112 .
[0157] In operation 1220 , the host application framework 112 that has received the request for executing the Android application may send the request for executing the Android application and the App ID to the Android application framework 540 of the Android system 500 .
[0158] In operation 1225 , the Android application framework 540 , which has received the request for executing the Android application, may send the request for executing the Android application together with the App ID and the virtual PID to the Android application 510 .
[0159] In operation 1230 , the Android application 510 may send a scheduling request of the Android application requested to be executed together with the App ID and the virtual PID to the Android CPU scheduling controller 520 .
[0160] In operation 1235 , the host application framework 112 may send a scheduling request of the Android application requested to be executed and the App ID to the host CPU scheduling agent 114 .
[0161] In operation 1240, the host CPU scheduling agent 114 may determine the resource preemption right of the Android application requested for execution, and send the App ID of the Android application and the determined information about the resource preemption right to the host CPU scheduling controller 520 of the host system 500. In this state, the host CPU scheduling agent 114 may recognize that the Android application requested for execution is an application according to a user execution request in the host system 500 and is to be executed by preempting resources, and determine the resource preemption right of the Android application requested for execution as the highest priority.
[0162] In operation 1245 , the Android CPU scheduling controller 520 that receives the scheduling request for the Android application and the resource preemption right information for the Android application may determine and schedule the priority based on the received resource preemption right information for the Android application requested to be scheduled.
[0163] In operation 1250, the Android CPU scheduling controller 520 may send the scheduling result to the Android CPU scheduler 530. In this state, in order to send the scheduling result, the Android CPU scheduling controller 520 may provide the Android CPU scheduler 530 with App ID, virtual PID, and scheduling priority information.
[0164] In operation 1255 , the Android CPU scheduler 530 , which has received the scheduling priority information about the Android application from the Android CPU scheduling controller 520 , may provide the App ID, the virtual PID, and the scheduling priority information as a scheduling result to the kernel 130 .
[0165] In operation 1260 , the kernel 130 may receive a scheduling result of the Android application requested for execution, and schedule resource preemption of the Android application requested for execution based on the scheduling result.
[0166] Fig.13 is a block diagram illustrating an example configuration of a computing device according to various embodiments.
[0167] refer to Fig.13 In addition to the communicator (e.g., including a communication circuit) 1310, the receiver 1320, the display 1330, the memory 1340, and the controller (e.g., including a processing circuit) 1350, the computing device 100 may also include a video processor (e.g., including a video processing circuit) 1360, an audio processor (e.g., including an audio processing circuit) 1370, an audio output unit (e.g., including a speaker) 1380, and a detector (e.g., including a circuit) 1390.
[0168] The communicator 1310 may include one or more modules, including various communication circuits capable of wirelessly communicating between the computing device 100 and a wireless communication system or between the computing device 100 and a network in which another electronic device is located. For example, the communicator 1310 may include a mobile communication module 1311, a wireless Internet module 1312, and a short-range communication module 1313.
[0169] The mobile communication module 1311 may include various communication circuits and transmit and receive wireless signals with respect to at least one of a base station, an external terminal or a server on a mobile communication network. The wireless signals may include various types of data according to the transmission and reception of voice call signals, video call signals or text / multimedia messages.
[0170] The wireless Internet module 1312 refers to a module including various circuits for wireless Internet connection, and can be set inside the device or outside the device. As wireless Internet technology, wireless LAN (WLAN), WiFi, wireless broadband (Wibro), world microwave access interoperability (Wimax), high-speed downlink packet access (HSDPA), etc. can be used. The device can have a Wi-Fi peer-to-peer (P2P) connection with another device through the wireless Internet module 1312.
[0171] The short-range communication module 1313 refers to a module including various circuits for short-range communication. As short-range communication technology, Bluetooth, Bluetooth Low Energy (BLE), Radio Frequency Identification (RFID), infrared communication such as Infrared Data Association (IrDA), Ultra Wideband (UWB), ZigBee, etc. can be used.
[0172] The receiver 1320 may receive video (e.g., motion pictures, etc.), audio (e.g., voice, music, etc.), additional information (e.g., EPG, etc.), etc. from the outside of the computing device 100 under the control of the controller 1350. The receiver 1320 may include one of an HDMI (High Definition Multimedia Interface) port 1321, a component jack 1322, a PC port 1323, and a USB port 1324, or one or more combinations thereof. In addition to the HDMI port 1321, the receiver 1320 may further include a display port (DP), Thunderbolt, or a mobile high-definition link (MHL).
[0173] The video processor 1360 may include various video processing circuits, and under the control of the controller 1350 , processes an image signal received from the receiver 1320 or the communicator 1310 and outputs it to the display 1330 .
[0174] The display 1330 may display an image signal received from the video processor 1360 on a screen.
[0175] The audio processor 1370 may include various audio processing circuits, and under the control of the controller 1350 , converts an audio signal received from the receiver 1320 or the communicator 1310 into an analog audio signal and outputs it to the audio output unit 1380 .
[0176] The audio output unit 1380 may output the received analog audio signal through, for example, a speaker (not shown).
[0177] The detector 1390 may include various circuits and detect the user's voice, the user's image, or the user's interaction, and includes a microphone, a camera unit, and an optical receiver. The microphone receives the voice emitted by the user. The microphone may convert the received voice into an electrical signal and output it to the controller 1350. The camera unit may receive an image (e.g., continuous frames) corresponding to the user's motion including gestures within the recognition range of the camera. The optical receiver may receive an optical signal including a control signal received from a remote control device. The optical receiver may receive an optical signal corresponding to a user input (e.g., touch, press, touch gesture, voice, or motion) from a remote control device.
[0178] The memory 1340 may store programs related to the operation of the computing device 100 and various pieces of data generated during the operation of the computing device 100 .
[0179] According to an embodiment of the present disclosure, when the instructions included in the memory 1340 are executed by the computing device 100, the computing device 100 may perform the following operations: a request for executing a virtual machine application is received by the virtual machine system, the virtual machine application requested to be executed is scheduled as the main execution by the CPU scheduler of the virtual machine system, the scheduling result is provided to the kernel, and a request for confirming the resource preemption right of the virtual machine application is sent to the host system CPU scheduler, and the host system CPU scheduler determines the resource preemption right of the virtual machine application by referring to the host scheduling list, and provides information about the determined resource preemption right to the CPU scheduler of the virtual machine system.
[0180] According to an embodiment of the present disclosure, the information about the resource preemption right may include the priority of the resource preemption right of the virtual machine application.
[0181] According to an embodiment of the present disclosure, when the instructions included in the memory 1340 are executed by the computing device 100, the computing device 100 may also perform the following operations: the CPU scheduler of the virtual machine system, when the information about the resource preemption right indicates resource preemption rejection, provides the kernel with information about the resource preemption right and adjusts the main execution schedule of the virtual machine application.
[0182] According to an embodiment of the present disclosure, the host scheduling list may include priority information of each of the one or more applications.
[0183] According to an embodiment of the present disclosure, the host scheduling list may include at least one of a rule-based list, a white list, or a black list, wherein the rule-based list includes identification information about one or more applications to be executed with the highest priority, the white list includes identification information about one or more applications to be primarily executed, and the black list includes identification information about one or more applications that are not primarily executed.
[0184] According to an embodiment of the present disclosure, when the instructions included in the memory 1340 are executed by the computing device 100, the computing device 100 may also be executed by the host system CPU scheduler 113: when a resource preemption right confirmation request of a virtual machine application is received from the CPU scheduler of the virtual machine system, an operation of using the kernel's ID map to confirm the real PID corresponding to the application ID of the virtual machine application, and an operation of adjusting the resource preemption scheduling of the virtual machine application by providing the determined information about the resource preemption right of the virtual machine application to the kernel using the real PID of the virtual machine application.
[0185] According to an embodiment of the present disclosure, the ID map of the kernel may include App ID, virtual PID, real PID, and resource preemption priority information of the application.
[0186] According to an embodiment of the present disclosure, when the instructions included in the memory 1340 are executed by the computing device 100, the computing device 100 may perform the following operations: based on a request for executing a virtual machine application received by the host system, the request for executing the virtual machine application is sent to the virtual machine system, the host system CPU scheduler 113 determines the resource preemption right of the virtual machine application requested to be executed as the primary execution, and sends information about the determined resource preemption right to the CPU scheduler of the virtual machine system, and the CPU scheduler of the virtual machine system, based on the information about the resource priority of the virtual machine application determined to be the primary execution, schedules the virtual machine application requested to be executed as the primary execution, and provides the scheduling result to the kernel.
[0187] Embodiments of the present disclosure may be implemented in the form of a recording medium including computer executable instructions, such as a program module executed by a computer. Non-transitory computer-readable storage media may be available media that can be accessed by a computer, and may include all volatile and non-volatile media and separable and non-separable media. In addition, computer-readable media may include all computer storage media and communication media. Computer storage media may include all volatile and non-volatile media and separable and non-separable media, which are embodied by a specific method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data.
[0188] Various example embodiments may be implemented as a S / W program including instructions stored in a computer-readable storage medium.
[0189] The computer is a device that can call instructions stored from a storage medium and perform operations according to the disclosed embodiments according to the called instructions, and may include the electronic device according to the disclosed embodiments.
[0190] The computer readable storage medium may be provided in the form of a non-transitory storage medium. Non-transitory may mean, for example, that the storage medium is a tangible device and does not include signals such as electromagnetic waves. However, the term does not distinguish between the case where data is semi-permanently stored in the storage medium and the case where data is temporarily stored.
[0191] Furthermore, the control method according to the disclosed embodiment is provided by being included in a computer program product. The computer program product as a commodity can be traded between a seller and a buyer.
[0192] The computer program product may include a S / W program and a computer-readable storage medium storing the S / W program. For example, the computer program product may include a product in the form of a S / W program, such as a downloadable application, which is electronically distributed by the manufacturer of the broadcast receiving device or an electronic market (e.g., Google PlayStore or AppStore). For electronic distribution, at least a portion of the S / W program may be stored in a storage medium or temporarily generated. In this case, the storage medium may be a storage medium of a manufacturer's server, a server of an electronic market, or a relay server that temporarily stores the SW program.
[0193] The computer program product may include a storage medium of a server or a storage medium of a client device in a system including a server and a client device. Alternatively, when there is a third device (e.g., a smart phone) communicatively connected to the server or the client device, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include an S / W program that is sent from the server to the client device or the third device, or from the third device to the client device.
[0194] In this case, any one of the server, the client device, and the third device can perform the method according to the disclosed embodiment by executing the computer program product. Alternatively, two or more of the server, the client device, and the third device can perform the method according to the disclosed embodiment in a distributed manner by executing the computer program product.
[0195] For example, a server (e.g., a cloud server or an artificial intelligence server, etc.) executes a computer program product stored in the server, so that a client device communicatively connected to the server can be controlled to execute a method according to the disclosed embodiment.
[0196] As another example, the third device executes a computer program product, so that when the third device executes the computer program product, the terminal connected to the third device in communication can control the execution of the method according to the disclosed embodiment, and the third device can download the computer program product from the server and execute the downloaded computer program product. Alternatively, the third device can execute a computer program product provided in a preloaded state to execute the method according to the disclosed embodiment.
[0197] Furthermore, in the present disclosure, a “unit” may include a hardware component (such as a processor or a circuit) and / or a software component (such as a process) executed by a hardware component.
[0198] The above description of the present disclosure is for example, and it should be understood that a person skilled in the art to which the present disclosure belongs can easily modify the present disclosure into other detailed forms without changing the technical concept or basic features of the present disclosure. Therefore, the above embodiments are merely examples in all aspects and should not be for the purpose of limitation. For example, each element described as a single type can be embodied in a distributed manner. Similarly, the elements described as distributed can be embodied in a combined form.
[0199] The scope of the present disclosure is defined by the claims set forth below rather than the foregoing detailed description, and should be construed as encompassing all modifications or variations derived from the meaning, scope, and equivalents of the claims.
Claims
1. A method of operating a computing system including a host system and a virtual machine system, the method comprising: The virtual machine system receives a request for executing a virtual machine application; The central processing unit CPU scheduler of the virtual machine system schedules the virtual machine application requested to be executed as the primary execution, provides the scheduling result to the kernel, and sends a request for confirming the resource preemption right of the virtual machine application to the CPU scheduler of the host system; and The CPU scheduler of the host system determines the resource preemption rights of the virtual machine application by referring to the host scheduling list, and provides information about the determined resource preemption rights to the CPU scheduler of the virtual machine system.
2. The method according to claim 1, wherein: The information about the resource preemption right includes the priority of the resource preemption right of the virtual machine application.
3. The method according to claim 1, further comprising: Based on the information about the resource preemption right indicating resource preemption rejection, the CPU scheduler of the virtual machine system provides the kernel with the information about the resource preemption right and adjusts the main execution schedule for the virtual machine application.
4. The method according to claim 1, wherein: The host scheduling list includes priority information for each of the one or more applications.
5. The method according to claim 1, wherein: The host scheduling list includes at least one of a rule-based list, a white list, or a black list, wherein the rule-based list includes identification information about one or more applications to be executed with the highest priority, the white list includes identification information about one or more applications to be primarily executed, and the black list includes identification information about one or more applications that are not primarily executed.
6. The method according to claim 1, further comprising: By the host system's CPU scheduler, Based on receiving a resource preemption right confirmation request for a virtual machine application from the CPU scheduler of the virtual machine system, using the ID map of the kernel to confirm a real process identifier PID corresponding to an application ID of the virtual machine application; The resource preemption schedule for the virtual machine application is adjusted by providing the determined information about the resource preemption right of the virtual machine application to the kernel using the real PID of the virtual machine application.
7. The method according to claim 6, wherein: The kernel ID map includes an application ID (App ID), a virtual process identifier PID, a real PID, and resource preemption priority information of an application.
8. A method of operating a computing system including a host system and a virtual machine system, the method comprising: Based on the host system receiving the request for executing the virtual machine application, sending the request for executing the virtual machine application to the virtual machine system, determining, by the central processing unit (CPU) scheduler of the host system, the resource preemption right of the virtual machine application that is primarily executed and requested to be executed, and sending information about the determined resource preemption right to the CPU scheduler of the virtual machine system, and The CPU scheduler of the virtual machine system schedules the virtual machine application requested for execution as the primary execution based on the information about the resource preemption right determined as the primary execution of the virtual machine application, and provides the scheduling result to the kernel.
9. A computing device comprising: Host system; Virtual machine system; One or more central processing units CPU; and Memory, storage instructions, Wherein, based on the instruction being executed by the computing device, the computing device is configured to: The virtual machine system receives a request for executing the virtual machine application; The CPU scheduler of the virtual machine system schedules the virtual machine application requested to be executed as the primary execution, provides the scheduling result to the kernel, and sends a request for confirming the resource preemption right of the virtual machine application to the CPU scheduler of the host system; and The CPU scheduler of the host system determines the resource preemption rights of the virtual machine application by referring to the host scheduling list, and provides information about the determined resource preemption rights to the CPU scheduler of the virtual machine system.
10. The computing device of claim 9, wherein: The information about the resource preemption right includes the priority of the resource preemption right of the virtual machine application.
11. The computing device of claim 9, wherein: Based on the instruction being executed by the computing device, the computing device is also configured to: based on the information about the resource preemption right representing the resource preemption rejection, the CPU scheduler of the virtual machine system provides the information about the resource preemption right to the kernel and adjusts the main execution schedule for the virtual machine application.
12. The computing device of claim 9, wherein: The host scheduling list includes priority information of each application in one or more applications.
13. The computing device of claim 9, wherein: The host scheduling list includes at least one of a rule-based list, a white list, or a black list, wherein the rule-based list includes identification information about one or more applications to be executed with the highest priority, the white list includes identification information about one or more applications to be primarily executed, and the black list includes identification information about one or more applications that are not primarily executed.
14. The computing device of claim 9, wherein: Based on the instructions being executed by the computing device, the computing device is further configured to: By the host system's CPU scheduler, Based on receiving a resource preemption right confirmation request for a virtual machine application from a CPU scheduler of the virtual machine system, using the ID map of the kernel to confirm a real process identifier PID corresponding to an application ID of the virtual machine application; The resource preemption schedule for the virtual machine application is adjusted by providing the determined information about the resource preemption right of the virtual machine application to the kernel using the real PID of the virtual machine application.
15. A computing device comprising: Host system; Virtual machine system; One or more central processing units CPU; and Memory, storage instructions, Wherein, based on the instruction being executed by the computing device, the computing device is configured to: Based on the host system receiving the request for executing the virtual machine application, sending the request for executing the virtual machine application to the virtual machine system; determining, by the CPU scheduler of the host system, a resource preemption right for primarily executing the virtual machine application requested for execution, and sending information about the determined resource preemption right to the CPU scheduler of the virtual machine system; and Based on the information about the resource preemption right of the virtual machine application determined to be primarily executed, the CPU scheduler of the virtual machine system schedules the virtual machine application requested for execution as primarily executed, and provides the scheduling result to the kernel.