System and method for allocating resources to electronic device
The system dynamically allocates and adjusts resource quotas based on user, group, and content-based criteria, addressing inefficiencies in cloud service resource management by optimizing quota allocation and usage.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-11
- Publication Date
- 2026-03-19
AI Technical Summary
Existing cloud service systems struggle to efficiently manage and adjust server resources due to irregular user patterns and unexpected resource usage events, leading to inefficiencies in quota allocation and utilization.
A method and system for a server to dynamically allocate and adjust resource quotas based on multiple quota types, including user-based, group-based, and content-based quotas, using occupancy and usage criteria to optimize resource allocation and usage.
Enables efficient management of server resources by flexibly adjusting quotas, ensuring smooth task execution and optimizing resource utilization, even in the face of unpredictable user demands.
Smart Images

Figure KR2025095559_19032026_PF_FP_ABST
Abstract
Description
System and method for allocating resources to electronic devices
[0001] The present disclosure relates to a system and method for allocating and coordinating resources to an electronic device.
[0002] As multimedia and communication technologies advance, the need for cloud services that provide various resources is increasing. To provide cloud services, resource quotas are allocated to users, and servers provide resources to users by deducting from these allocated quotas. However, users often utilize resources in irregular patterns, and unexpected events related to resource usage may occur.
[0003] There is a need for technology to efficiently manage and adjust server resources by allocating and adjusting quotas to users in various ways for various types of resources.
[0004] According to one embodiment, a method for a server to allocate resources to an electronic device may be provided, comprising: an operation (600) of receiving a request for the performance of a task from an electronic device; an operation (610) of identifying at least one resource allocated to a user of the electronic device in order to execute a first service program for the performance of the task; an operation (620) of identifying a first quota for the first resource allocated to the user, wherein the first quota is allocated to the user according to a first quota type among a plurality of quota types related to the first resource; an operation (630) of identifying a second quota for the first resource allocated to the user, wherein the second quota is allocated to the user according to a second quota type among the plurality of quota types related to the first resource; and an operation (640) of identifying a third quota for the second resource allocated to the user, wherein the third quota is allocated to the user according to a third quota type among the plurality of quota types related to the second resource. Additionally, the method may include: an operation (650) of identifying whether adjustment of the first quota is required for the execution of the first service program; an operation (660) of adjusting the first quota based on at least one of the remaining amount of the second quota or the remaining amount of the third quota, as determined that adjustment of the first quota is required; an operation (670) of executing the first service program using the first resource based on the adjusted first quota; and an operation (680) of providing the result of execution of the first service program to the electronic device.
[0005] Additionally, according to one embodiment, the apparatus comprises: a communication interface; a memory for storing instructions; and one or more processors; wherein, when the instructions are executed by the one or more processors, the apparatus causes the server to: receive a request for the execution of a task from the electronic device through the communication interface; and, in order to execute a first service program for the execution of the task, identify at least one resource allocated to a user of the electronic device; identify a first quota for the first resource allocated to the user, wherein the first quota is allocated to the user according to a first quota type among a plurality of quota types related to the first resource; identify a second quota for the first resource allocated to the user, wherein the second quota is allocated to the user according to a second quota type among the plurality of quota types related to the first resource; and identify a third quota for the second resource allocated to the user, wherein the third quota is allocated to the user according to a third quota type among the plurality of quota types related to the second resource; A server for allocating resources to an electronic device may be provided, which identifies whether adjustment of the first quota is necessary for the execution of the first service program; adjusts the first quota based on at least one of the remaining amount of the second quota or the remaining amount of the third quota as it is determined that adjustment of the first quota is necessary; executes the first service program using the first resource based on the adjusted first quota; and provides the result of the execution of the first service program to the electronic device.
[0006] FIG. 1 is a schematic diagram of a system for managing resources according to one embodiment.
[0007] FIG. 2 is a diagram showing the types of resources according to one embodiment.
[0008] FIG. 3 is a diagram illustrating the type of quota allocated to a user according to one embodiment.
[0009] FIG. 4 is a diagram showing an example in which resources are allocated and used based on occupancy according to one embodiment.
[0010] FIG. 5 is a diagram showing an example in which resources are allocated and used based on usage according to one embodiment.
[0011] FIG. 6 is a flowchart of a method for a server to allocate and adjust resource quotas to a user according to one embodiment.
[0012] FIG. 7 is a flowchart of a method for a server to monitor the remaining amount of a quota allocated to a user and to adjust the user's quota according to one embodiment.
[0013] FIG. 8 is a flowchart of a method in which a server, according to one embodiment, controls the execution of service programs based on the priority of the service programs.
[0014] FIG. 9 is a diagram illustrating an example of a method in which a server manages the execution of a plurality of service programs according to one embodiment.
[0015] FIG. 10 is a flowchart of a method for a server to adjust a user's quota based on the user's proficiency according to one embodiment.
[0016] FIG. 11 is a diagram illustrating an example of a server according to one embodiment coordinating resources allocated to a user and managing service programs.
[0017] FIG. 12 is a block diagram of a server according to one embodiment.
[0018] FIG. 13 is a block diagram of an electronic device in a network environment according to various embodiments.
[0019] In relation to the description of the drawings, the same or similar reference numerals may be used for identical or similar components.
[0020] Embodiments of the present disclosure are described below in detail with reference to the attached drawings so that those skilled in the art can easily implement them. However, the present disclosure may be embodied in various different forms and is not limited to the embodiments described herein. Furthermore, in order to clearly explain the present disclosure in the drawings, parts unrelated to the explanation have been omitted, and similar parts throughout the specification are denoted by similar reference numerals.
[0021] The terms used in this disclosure are described in their current, general form considering the functions mentioned herein; however, they may refer to various other terms depending on the intent of those skilled in the art, case law, the emergence of new technologies, etc. Accordingly, the terms used in this disclosure should not be interpreted solely by their names, but should be interpreted based on the meaning of the terms and the overall content of this disclosure.
[0022] Additionally, terms such as "first," "second," etc., may be used to describe various components, but the components should not be limited by these terms. These terms are used for the purpose of distinguishing one component from another.
[0023] Throughout the specification, when a part is described as being "connected" to another part, this includes not only cases where they are "directly connected," but also cases where they are "electrically connected" with other components interposed between them. Furthermore, when a part is described as "including" a certain component, this means that, unless specifically stated otherwise, it does not exclude other components but may include additional components.
[0024] Phrases such as "in one embodiment" appearing in various places in this disclosure do not necessarily refer to the same embodiment.
[0025] One embodiment of the present disclosure may be represented by functional block configurations and various processing steps. Some or all of these functional blocks may be implemented by various numbers of hardware and / or software configurations that execute specific functions. For example, the functional blocks of the present disclosure may be implemented by one or more microprocessors or by circuit configurations for a specific function. Additionally, for example, the functional blocks of the present disclosure may be implemented in various programming or scripting languages. The functional blocks may be implemented as algorithms executed on one or more processors. Furthermore, the present disclosure may employ prior art for electronic configuration, signal processing, and / or data processing, etc. Terms such as “mechanism,” “element,” “means,” and “configuration” may be used broadly and are not limited to mechanical and physical configurations.
[0026] Furthermore, the connecting lines or connecting members between the components depicted in the drawings are merely illustrative of functional connections and / or physical or circuit connections. In the actual device, connections between components may be represented by various alternative or added functional connections, physical connections, or circuit connections.
[0027] In this document, the task that an electronic device requests from a server may be a task performed using resources provided by the server. Additionally, the task requested from the server may be executed through at least a part of the service program of a cloud service provided by the server. The task may include, for example, but is not limited to, tasks related to a service that executes code on a kernel allocated and using CPU, memory, and GPU, tasks related to an SQL editor service, tasks of a service that uses already generated data / query, and tasks of a scheduling service.
[0028] Additionally, resources may be server resources provided to an electronic device by the server, and may include hardware resources and software resources. For example, hardware resources may include, but are not limited to, CPUs, memory, and GPUs. Additionally, software resources may be specific content used in connection with the performance of a task. For example, software resources may include, but are not limited to, data / queries, APIs, and databases that are pre-generated and stored on the server, such as a dashboard.
[0029] Additionally, quota types can be distinguished based on the recipient of the resource quota. Quota types may include, for example, user-based quotas, group-based quotas, and content-based quotas. For example, when resources are allocated based on user-based quotas, resource quotas may be allocated and deducted per user. In this case, the user becomes able to use the resources based on the user-based quota allocated to them. Also, for example, when resources are allocated based on group-based quotas, resource quotas may be allocated and deducted per group to which the user belongs. In this case, the user becomes able to use the resources based on the group-based quota allocated to the specific group to which they belong. If the user does not belong to a specific group, the user cannot use the resources based on the group-based quota allocated to that specific group. If the user belongs to multiple groups, the user becomes able to use the resources corresponding to the group-based quota based on the group-based quota for each of the multiple groups. Additionally, for example, when resources are allocated according to content-based quotas, resource quotas may be allocated and deducted for specific content without being dependent on a user or group. In this case, for example, if a user has the right to view the content, they can use the resource based on the content-based quota. Also, for example, even if a user has not been allocated a user-based quota and / or a group-based quota, if they have been allocated a content-based quota, the user can use the resource based on the content-based quota. According to one embodiment, the supported quota types may be the same or different depending on the type of resource.
[0030] Additionally, the method of deducting the quota may be determined based on the criteria for deducting the quota of the allocated resource. For example, the resource quota may be deducted based on at least one of the resource occupancy amount, resource usage amount, resource usage time, or resource usage frequency. According to one embodiment, the method of deducting the quota supported may be the same or different depending on the type of resource (1100) or the quota type. Additionally, for example, the resource may be allocated or deducted based on a slot, which is a virtual unit within the cloud environment. Additionally, for example, the resource may be allocated or deducted based on the number of computing powers, counts, or costs, but is not limited thereto.
[0031] Additionally, the service program may be at least part of a software program executed for the performance of a task. The service program may be at least part of a software program of a cloud service provided by a server and may provide at least one function for the performance of a task.
[0032] The present disclosure will be described in detail below with reference to the attached drawings.
[0033] FIG. 1 is a schematic diagram of a system for managing resources according to one embodiment.
[0034] Referring to FIG. 1, a system for managing resources may include at least one electronic device (2000) and a server (1000). The server (1000) may provide resources (1100) allocated to users and a service program (1200) for performing tasks.
[0035] According to one embodiment, the server (1000) may include a resource (1100) and a service program (1200), and the resource (1100) may include a hardware resource (1110) and a software resource (1120). For example, the hardware resource (1110) may include a CPU, memory, and a GPU, but is not limited thereto. Additionally, the software resource (1120) may be a specific content used in connection with the performance of a task. The software resource (1100) may be a task content used for the performance of a task, and may include data / queries that are pre-generated and stored in the server (1000), such as a dashboard, but is not limited thereto. Additionally, the service program (1200) may be at least a part of a software program of a cloud service provided by the server (1000) and may be at least a part of a software program used for the performance of a requested task. According to one embodiment, the service program (1200) may provide some functions of a software program executed on an electronic device (2000). The service program (1200) may include a plurality of software programs, such as a first service program (1210) and a second service program (1220).
[0036] According to one embodiment, an electronic device (2000) may request a server (1000) to perform a task, and the server (1000) may perform the requested task using the resources (1100) and service program (1200) of the server (1000). Additionally, the server (1000) may provide the result of the task to the electronic device (2000).
[0037] According to one embodiment, an electronic device (2000) may request a server (1000) to perform a task, and the server (1000) may provide the result of the requested task to the electronic device (2000). When the server (1000) receives a request to perform a task from the electronic device (2000), it may identify a service program (1200) for performing the task. Additionally, the server (1000) may identify a resource (1100) for executing the service program (1200) and identify quotas allocated to users for the identified resource (1100). The server (1000) may adjust the user's quota for executing the service program (1200) and efficiently perform the task requested by the user based on the adjusted quota.
[0038] According to one embodiment, for example, users may include a first user, a second user, and a third user, and the first user and the second user may be included in a first group. Accordingly, user-based quotas, group-based quotas, and content-based quotas may be assigned to each of the first user, the second user, and the third user.
[0039] Additionally, according to one embodiment, when the server (1000) receives a request to perform a task from the first user, the server (1000) may adjust the quotas assigned to the first user according to a predetermined standard. Additionally, according to one embodiment, the server (1000) may adjust the quotas of the first user belonging to the first group by using the quotas of the second user belonging to the first group. Additionally, the server (1000) may adjust the quotas of the first user belonging to the first group by using the quotas of the third user belonging to the second group, which is a group different from the first group.
[0040] According to one embodiment, the server (1000) can allocate quotas of resources (1100) to users according to various quota types, and can flexibly adjust the allocated quotas for the performance of tasks. According to one embodiment, the server (1000) can allocate various types of resources to users according to various types of quotas, and can flexibly adjust the users' quotas together with the quotas of other users within the user's group and quotas related to other groups. Accordingly, the server (1000) can efficiently perform tasks requested from the server (1000) using the limited resources (1100) of the server (1000), and can provide efficient management of resources for tasks.
[0041] In FIG. 1, user-based quotas, group-based quotas, and content-based quotas are depicted as being allocated to users, but are not limited thereto. For example, at least one of user-based quotas, group-based quotas, or content-based quotas may not be allocated to a user.
[0042] FIG. 2 is a diagram showing the types of resources according to one embodiment.
[0043] Referring to FIG. 2, a resource (1100) according to one embodiment may include a hardware resource (1110) and a software resource (1120). Additionally, the hardware resource (1110) may include, for example, a CPU resource (1111), a memory resource (1113), and a GPU resource (1115), but is not limited thereto.
[0044] For example, CPU resources (1111) may include at least one CPU, and a portion of the CPU resources (1111) may be allocated and occupied by a user, group, or content. For example, memory resources (1113) may include at least one memory, and a portion of the memory resources (1113) may be allocated and occupied by a user, group, or work content. For example, GPU resources (1115) may include at least one GPU, and a portion of the GPU resources (1115) may be allocated and occupied by a user, group, or content.
[0045] For example, the software resource (1120) may be work content used to perform a task. For example, the work content may include, but is not limited to, data / query, API, and DB (database) that are pre-generated and stored on a server, such as a dashboard.
[0046] According to one embodiment, resources may be allocated to users in a manner that allocates and releases resources (e.g., a method of deducting quotas based on usage). For example, if a user is allocated 4 CPUs, and the user uses 1 CPU, the user can additionally use the remaining 3 CPUs. In this case, if the user is using 4 CPUs, the user cannot additionally use CPUs. However, if the user releases the use of the CPUs currently in use, the user can use 4 CPUs again. However, the type of resource to be deducted and the method of deduction are not limited thereto.
[0047] According to one embodiment, resources may be allocated and deducted based on the user's cumulative usage (e.g., a quota deduction method based on at least one of the resource usage, resource usage time, or resource usage frequency). For example, if the CPU usage allocated to a user is 30, and the user uses 2 CPUs after using 3 CPUs, the user can use CPUs within the remaining 25. However, the type of resource to be deducted and the deduction method are not limited thereto.
[0048] FIG. 3 is a diagram illustrating the type of quota allocated to a user according to one embodiment.
[0049] Referring to FIG. 3, a resource (1100) according to one embodiment may be allocated to users. For example, the resource (1100) may be allocated to a first user (310), a second user (320), and a third user (330). Additionally, for example, the first user (310) and the second user (320) may belong to a first group (300), and the third user (330) may belong to a second group (350). However, the users and the groups to which the users belong are not limited thereto.
[0050] Additionally, according to one embodiment, each of the various resources (1100) provided by the server (1000) may be allocated as shown in FIG. 3. For example, each of the CPU resources (1111), memory resources (1113), and GPU resources (1115) within the hardware resources (1110) and the resources within the software resources (1120) may be allocated as shown in FIG. 3.
[0051] According to one embodiment, for each user, at least one of a user-based quota, a group-based quota, or a content-based quota may be assigned. For example, for a first user (310), at least one of the first user's user-based quota (311), the first group's group-based quota (301), or the first work content's content-based quota (371) may be assigned. For example, for a second user (320), at least one of the second user's user-based quota (321), the first group's group-based quota (301), or the first work content's content-based quota (371) may be assigned. For example, for a third user (330), at least one of the third user's user-based quota (331), the second group's group-based quota (302), or the first work content's content-based quota (371) may be assigned.
[0052] According to one embodiment, the server (1000) may receive a request from the first user (310) to perform a task. In this case, according to one embodiment, for the performance of the task requested by the first user (310), the server (1000) may adjust the quotas within the quotas allocated to the first user (310). For example, the server (1000) may increase or decrease some of the user-based quota (311) of the first user (310), the group-based quota (301) of the first group, and the content-based quota (371) for the first task content, and increase or decrease the remainder of the user-based quota (311) of the first user (310), the group-based quota (301) of the first group, and the content-based quota (371) for the first task content.
[0053] Additionally, according to one embodiment, in order to perform a task requested by the first user (310), the server (1000) may adjust the quotas allocated to the first user (310) using the quotas allocated to the second user (310) within the first group (300). For example, the server (1000) may increase or decrease at least one of the second user's user-based quota (321), the first group's group-based quota (301), or the content-based quota (371) for the first task content, and increase or decrease at least one of the first user's user-based quota (311), the first group's group-based quota (301), or the content-based quota (371) for the first task content.
[0054] Additionally, according to one embodiment, in order to perform a task requested by the first user (310), the server (1000) may adjust the quotas allocated to the first user (310) using the quotas allocated to the third user (330) within the second group (350). For example, the server (1000) may increase or decrease at least one of the third user's user-based quota (331), the second group's group-based quota (351), or the content-based quota (371) for the first task content, and increase or decrease at least one of the first user's user-based quota (311), the first group's group-based quota (301), or the content-based quota (371) for the first task content.
[0055] In FIG. 3, user-based quotas, group-based quotas, and content-based quotas are depicted as being allocated to users, but are not limited thereto. For example, at least one of user-based quotas, group-based quotas, or content-based quotas may not be allocated to a user.
[0056] FIG. 4 is a diagram showing an example in which resources are allocated and used based on occupancy according to one embodiment.
[0057] Referring to FIG. 4, a resource (1100) according to one embodiment may be allocated and utilized based on the occupancy amount of the resource (1100). For example, when the resource (1100) is allocated based on the occupancy amount, the resource (1100) may be allocated for a predetermined period (e.g., one month, one year, etc.). Additionally, for example, when a specific event occurs, the resource (1100) may be allocated for a predetermined period of time. Furthermore, for example, the order in which the resource (1100) is allocated to a user and other users may be set.
[0058] Referring to identification number 40, a portion (45) of a resource (1100) according to one embodiment may be assigned to at least one of a user, a group, or work content. For example, if a portion (45) of the resource (1100) is assigned to a user, a user-based quota may be set. Additionally, for example, if a portion (45) of the resource (1100) is assigned to a group to which the user belongs, a group-based quota may be set. Additionally, for example, if a portion (45) of the resource (1100) is assigned to work content to which the user has access rights, a content-based quota may be set.
[0059] According to one embodiment, a server (1000) may use a portion (45) of a resource (1100) to perform a task requested by a user. While the server (1000) is performing an operation for the task, the server (1000) may occupy a portion (45) of the resource (1100).
[0060] Referring to identification number 42, when the execution of a task requested by a user according to one embodiment is completed, the server (1000) may release the possession of a portion (45) of the resource (1100). Additionally, when the server (1000) stops the execution of an operation for the task, the server (1000) may release the possession of a portion (45) of the resource (1100).
[0061] Accordingly, when a resource (1100) according to one embodiment is allocated based on the amount of occupancy, the server (1000) may occupy a portion (45) of the resource (1100) while performing a requested task, and may release the occupancy of the portion (45) of the resource (1100) when the task is completed or interrupted.
[0062] According to one embodiment, when a resource (1100) is allocated and deducted based on the occupancy amount of the resource (1100), if the quota for the resource (1100) becomes insufficient, for example, the use of the resource (1100) may be restricted, the occupancy amount of the resource (1100) may be reduced, or other times when the resource (1100) can be used may be recommended.
[0063] FIG. 5 is a diagram showing an example in which resources are allocated and used based on usage according to one embodiment.
[0064] Referring to FIG. 5, a resource (1100) according to one embodiment may be allocated and utilized based on the usage of the resource (1100). For example, the resource (1100) may be allocated and utilized based on usage time or the number of times it is used. Additionally, for example, the resource (1100) may be allocated for a predetermined period of time when a specific event occurs. Also, for example, the order in which the resource (1100) is allocated to a user and other users may be set.
[0065] In the case where a portion (50) of a resource (1100) according to one embodiment is used for the performance of a task, the server (1000) can calculate the usage of the resource used for the performance of the task. For example, the server (1000) can calculate the usage of the resource by multiplying the occupancy amount of the portion (50) of the resource that occupies the performance of the task by the usage time or the number of times it is used. Additionally, the usage amount used may be deducted from a user-based quota, a group-based quota, or a content-based quota. However, the criteria for calculating the usage of the resource are not limited to this, and the usage of the resource may be calculated according to various criteria.
[0066] For example, when a resource (1100) is used and deducted based on usage, if the resource (11000) is used during a time when the usage of the resource (1100) of the server (1000) is high, the user's quota may be deducted based on the usage of the resource (1100), but is not limited thereto.
[0067] According to one embodiment, a content-based quota may be set for work content and may be deducted based on the usage of the work content. In this case, if the content-based quota becomes insufficient, for example, viewing of the work content may be prohibited, recent cached data related to the work content may be provided, or support for the function to refresh the work content may be discontinued.
[0068] FIG. 6 is a flowchart of a method for a server to allocate and adjust resource quotas to a user according to one embodiment.
[0069] In operation 600, the server (1000) may receive a request for the execution of a task from the electronic device (2000). According to one embodiment, a user of the electronic device (2000) may request the server (1000) to perform a specific task through the electronic device (2000). The task may be a task performed using resources provided by the server. Additionally, the task may be executed through at least a part of a service program of a cloud service provided by the server. The task may include, for example, a task related to a service that executes code on a kernel that allocates and uses CPU, memory, and GPU, a task related to an SQL editor service, a task of a service that uses already generated Data / Query, and a task of a scheduling service, but is not limited thereto.
[0070] In operation 610, the server (1000) may identify at least one resource allocated to the user in order to execute a first service program for performing a task. The server (1000) may identify at least one resource required to execute a first service program related to the requested task in order to perform the requested task. The first service program may include, for example, at least one of a service program that executes code on a kernel that allocates and uses a CPU, memory, and GPU, a service program of an SQL editor, or a service program of a service that uses already generated Data / Query, but is not limited thereto. Additionally, according to one embodiment, the server (1000) may identify at least one resource allocated to the user. For example, the server (1000) may identify a first resource allocated to the user among the resources required to execute the first service program. For example, the first resource may include at least one of a hardware resource or a software resource. Additionally, for example, the first resource may include at least one of a CPU resource, a GPU resource, or a memory resource.
[0071] In operation 620, the server (1000) can identify a first quota of a first quota type of user for a first resource. The first quota of a first quota type is, for example, a quota allocated to a user among the first resources, and may be part of a user-based quota, a group-based quota, or a content-type quota.
[0072] For example, the server (1000) can identify a user-based quota for a CPU resource as a first quota of a first quota type for a first resource.
[0073] In operation 630, the server (1000) can identify a second quota of a second quota type for a user of a first resource. The second quota of a second quota type may be, for example, a quota allocated to a user in the first resource, and may be a part different from the first quota of a first quota type among a user-based quota, a group-based quota, or a content-type quota for a user.
[0074] For example, the server (1000) can identify a user's group-based quota for a CPU resource as a second quota of a second quota type for a first resource.
[0075] In operation 640, the server (1000) can identify a third quota of a user's third quota type for a second resource. For example, the second resource may be a resource that is not required for the execution of the first service program. Additionally, for example, the third quota of a third quota type may be a quota allocated to a user among the second resources, and may be at least one of a user-based quota, a group-based quota, or a content-type quota.
[0076] For example, the server (1000) can identify a user-based quota for a memory resource as a third quota of a third quota type for a second resource.
[0077] In operation 650, the server (1000) can determine whether adjustment of the user's first quota is necessary. According to one embodiment, the server (1000) can determine whether adjustment of the first quota is necessary based on the remaining amount of the user's first quota for the first resource for performing a task. For example, the server (1000) can identify the remaining amount of the user's first quota for the first resource. Additionally, the server (1000) can predict or determine the occupancy, usage, and usage time of the first resource required for the execution of the first service program for performing a task. Additionally, the server (1000) can compare the occupancy, usage, and usage time of the first resource required for the task with the remaining amount of the user's first quota for the first resource. If the server (1000) determines that the user's first quota for the task is insufficient for the completion of the task, the server (1000) can determine that adjustment of the first quota is necessary. Additionally, according to one embodiment, if the user's first quota for the first resource for performing a task is completely exhausted, the server (1000) may determine that adjustment of the first quota is necessary.
[0078] Additionally, according to one embodiment, the server (1000) may determine whether adjustment of the first quota is necessary by considering the current load of the first resource. The server (1000) may identify a portion of the first resource currently being used for other tasks. Other tasks may include other user tasks or other tasks of the user. Based on the portion of the first resource currently being used for other tasks, the server (1000) may determine whether adjustment of the user's first quota is necessary. For example, if a large portion of the first resource is currently being used for other tasks, the server (1000) may determine that the first resource is insufficient for performing tasks requested by the user. In this case, the server (1000) may determine that adjustment of the first quota for the first resource is necessary.
[0079] If, as a result of the judgment in operation 650, it is determined that adjustment of the user's first quota is necessary, in operation 660, the server (1000) may adjust the first quota based on at least one of the remaining amount of the second quota or the remaining amount of the third quota. To adjust the first quota, the server (1000) may re-balance the user's quotas. For example, to adjust the user's first quota for the first resource, the server (1000) may identify at least one of the remaining amount of the user's second quota for the first resource or the remaining amount of the user's third quota for the second resource. The server (1000) can compare the remaining amount of the user's second quota for the first resource or the remaining amount of the user's third quota for the second resource with a threshold, and if the second quota or the third quota exceeds the threshold, it can decrease the remaining amount of the second quota or the remaining amount of the third quota and increase the remaining amount of the first quota.
[0080] In this case, for example, the server (1000) may adjust the user's quota based on the amount of the first resource required to complete the task and the remaining amount of the user's quota, but is not limited thereto.
[0081] Additionally, for example, the server (1000) can adjust the schedule of execution of a first service program and other service programs that use the first resource. The server (1000) can identify the work schedules of the first service program and other service programs that use the first resource and monitor the load of the first resource. According to one embodiment, the server (1000) can change the execution time of the first service program to adjust the usage time of the first resource for the user's work when the first quota is insufficient. According to one embodiment, if the load of the first resource is high and the execution of the first service program for the user's work is not smooth, the server (1000) can change (e.g., postpone) the execution time of other service programs that use the first resource.
[0082] According to one embodiment, the server (1000) may allocate additional quotas to the user when it is determined that adjustment of the first quota is necessary. For example, if the server (1000) determines that the user's first quota for the first resource is insufficient for the completion of a task or that the first quota is exhausted, the server (1000) may allocate additional quotas for the first resource to the user.
[0083] For example, if the quota deduction method is an allocation and deallocation method, the server (1000) may provide additional resource allocations to the user. For example, if 4 CPUs are allocated to the user, and the user is using 4 CPUs but it is determined that additional CPU usage is needed, the server (1000) may allocate 1 additional CPU to the user.
[0084] For example, in the case where the quota deduction method is a method of allocating and deducting based on the cumulative usage amount, the server (1000) may provide a notification to the user indicating that the quota usage may be exhausted when the remaining amount of the quota is below a threshold and the quota is expected to be exhausted. In addition, if the user has exhausted all the quotas, the server (1000) may provide a notification to the user indicating that the quota has been exhausted. In addition, for example, in this case, the server (1000) may recommend the use of other service programs to the user and restrict the user's use of the quota.
[0085] In the above description, when a user's quota is exhausted or is expected to be exhausted, the server (1000) may provide the user with an additional quota, provide a notification, recommend the use of other service programs, or restrict the use of the quota, but is not limited thereto. For example, the server (1000) may provide users with an additional quota, provide a notification, recommend the use of other service programs, or restrict the use of the quota while monitoring the usage status of the total resources provided by the server (1000). In this case, the server (1000) may perform adjustment, recommendation, and restriction of quotas regarding users, groups, and content by considering, for example, the current occupancy status of the total resources provided by the server (1000), the users' priority regarding the resources, the priority of tasks using the resources, and / or the method of deducting resources.
[0086] In operation 670, the server (1000) can execute the first service program using the first resource based on the first quota. The server (1000) can execute the first service program using the first resource while deducting the remaining amount of the first quota adjusted by rebalancing.
[0087] If, as a result of the judgment in operation 650, it is determined that adjustment of the user's first quota is not necessary, the server (1000) can execute the first service program using the first resource while deducting the remaining amount of the unadjusted first quota.
[0088] In operation 680, the server (1000) can provide the result of the execution of the first service program to the electronic device (2000).
[0089] Although it has been described above that the first quota for the user's first resource is adjusted using other quotas for the user's first resource and second resource, it is not limited thereto. For example, the server (1000) may adjust the first quota for the user's first resource using quotas for resources of other users belonging to the user's group. Additionally, for example, the server (1000) may adjust the first quota for the user's first resource using quotas for resources of other users belonging to a group different from the user's group.
[0090] FIG. 7 is a flowchart of a method for a server to monitor the remaining amount of a quota allocated to a user and to adjust the user's quota according to one embodiment.
[0091] In operation 660, the server (1000) may adjust the first quota using at least one of the remaining amount of the second quota or the remaining amount of the third quota. In operation 670, the server (1000) may adjust the first quota using at least one of the remaining amount of the second quota or the remaining amount of the third quota. Since the description of operations 660 and 670 is described in FIG. 6, the description thereof will be omitted for convenience.
[0092] In operation 710, the server (1000) can monitor the remaining amount of the first quota. The server (1000) can monitor the remaining amount of the first quota while executing the first service program for the task based on the first quota. The server (1000) can monitor the required amount of the first resource needed to complete the task and the remaining amount of the first quota in real time or periodically.
[0093] In operation 720, the server (1000) can determine whether adjustment of the first quota is necessary. The server (1000) can determine whether the user's first quota for the first resource is insufficient for the completion of the task. For example, if, as a result of monitoring in operation 710, the remaining amount of the first quota is smaller than the amount of the first resource required for the completion of the task, the server (1000) can determine that additional adjustment of the first quota is necessary. Also, for example, if, as a result of monitoring in operation 710, the remaining amount of the first quota is smaller than a threshold, the server (1000) can determine that additional adjustment of the first quota is necessary.
[0094] If it is determined that the first quota needs to be adjusted as a result of the judgment in operation 720, the server (1000) adjusts the schedule of execution of the service program in operation 730, and the server (1000) can further adjust the first quota in operation 660.
[0095] In operation 730, the server (1000) can adjust the schedule of execution of a first service program and other service programs that use the first resource. The server (1000) can identify the work schedules of the first service program and other service programs that use the first resource and monitor the load of the first resource. According to one embodiment, the server (1000) can change the execution time of the first service program to adjust the usage time of the first resource for the user's work when the first quota is insufficient. According to one embodiment, if the load of the first resource is high and the execution of the first service program for the user's work is not smooth, the server (1000) can change (e.g., postpone) the execution time of other service programs that use the first resource.
[0096] An embodiment in which a server (1000) according to one embodiment adjusts the execution schedule of a service program is described in more detail in FIG. 8. Meanwhile, according to one embodiment, the operation 730 of adjusting the execution schedule of a service program may be omitted.
[0097] If, as a result of the judgment in operation 720, it is determined that adjustment of the first quota is not necessary, the server (1000) in operation 680 can complete the work through the first service program while deducting the first quota, and can provide the result of the work to the electronic device (2000).
[0098] FIG. 8 is a flowchart of a method in which a server, according to one embodiment, controls the execution of service programs based on the priority of the service programs.
[0099] In operation 800, the server (1000) can monitor the load of resources. According to one embodiment, the load of resources currently in use or scheduled to be used for the execution of tasks requested by a user and other tasks can be monitored. For example, the execution of a first service program is required for the execution of a first task requested by a user, and a first resource may be used for the execution of the first service program. Also, for example, the execution of a second service program is required for the execution of a second task requested by a user, and a first resource may be used for the execution of the second service program. Also, for example, the execution of a third service program is required for the execution of a third task requested by another user, and a first resource may be used for the execution of the third service program. In this case, the first resource may be used for at least one of the execution of the first service program for the first task, the execution of the second service program for the second task, or the execution of the third service program for the third task. Additionally, the server (1000) can monitor the remaining portion excluding the portion occupied in the first resource.
[0100] In operation 810, the server (1000) can analyze work patterns. According to one embodiment, the server (1000) can analyze work patterns of tasks that utilize resources. For example, the server (1000) can identify service programs executed to perform a specific task, the execution order of the service programs, the importance of the service programs, and the execution time of the service programs. According to one embodiment, the server (1000) can analyze work patterns of tasks that utilize resources on a task-by-task basis.
[0101] In operation 820, the server (1000) can determine the priority of service programs for performing tasks. The server (1000) can determine the priority of service programs for performing tasks based on service programs identified by task, the execution order of service programs, the importance of service programs, and the execution time of service programs. According to one embodiment, the server (1000) can determine the priority of service programs by considering, for example, the importance of tasks, the remaining quota amount for the user and other users' resources, and the remaining workload of tasks.
[0102] In operation 830, the server (1000) can control the suspension of at least one of the service programs. The server (1000) can control the suspension of at least one of the service programs based on the load of resources and the priority of the service programs using the resources. For example, when resources are used to perform various tasks for users, the server (1000) can determine which tasks to suspend among the tasks based on the priority of the tasks and the remaining amount of quotas allocated to users. Additionally, for example, the server (1000) can suspend some of the tasks of the service programs to perform the tasks to be suspended based on the priority of the service programs. Additionally, for example, the server (1000) can adjust the execution order of the service programs.
[0103] According to one embodiment, the operation may involve multiple resources, and in this case, the server (1000) may stop the execution of some of the service programs or adjust the execution order of the service programs by taking into account the load of other resources, service programs using other resources, and their priorities.
[0104] FIG. 9 is a diagram illustrating an example of a method in which a server manages the execution of a plurality of service programs according to one embodiment.
[0105] In operation 900, the server (1000) can coordinate the execution of the second service program. According to one embodiment, the server (1000) can stop the execution of the second service program. For example, when the first service program of the first resource is executed to perform a user's task and the load of the first resource is above a threshold, the server (1000) can stop the execution of the second service program that is unrelated to the user's task. In this case, for example, the second service program may be a service program for performing another task of the user or a service program for performing another task of another user. Also, for example, the second service program may be a service program with a lower priority than the first service program among a plurality of service programs for performing the user's task.
[0106] According to one embodiment, the server (1000) can adjust settings related to the execution of a second service program. For example, when a first service program of a first resource is executed to perform a user's task and the load of the first resource is above a threshold, the server (1000) can adjust settings related to a second service program unrelated to the user's task. In this case, the server (1000) can adjust settings related to the execution of the second service program in a direction that reduces the system cost for the execution of the service program, optimizes resource usage, or reduces the deduction of quotas.
[0107] According to one embodiment, the server (1000) may enable or disable specific functions of the second service program. For example, when a first service program of the first resource is executed to perform a user's task and the load of the first resource is above a threshold, the server (1000) may disable specific functions of the second service program that are unrelated to the user's task. In this case, the server (1000) may disable specific functions of the second service program in a way that reduces the system cost for the execution of the service program, optimizes resource usage, or reduces the deduction of quotas.
[0108] In operation 910, the server (1000) may recommend the execution of a third service program. For example, if the user's quota for the first resource is insufficient to perform the user's task, the server (1000) may recommend the execution of the third service program to the user. In this case, the server (1000) may transmit information recommending the execution of the third service program to the electronic device (2000). Additionally, for example, the third service program may be a service program with a higher priority than the first service program among a plurality of service programs used to perform the user's task. Or, for example, the third service program may be a service program for performing another task with a higher priority than the user's task. In this case, the other task with a higher priority may be the user's task or another user's task.
[0109] In operation 920, the server (1000) coordinates the execution of the first service program, and in operation 930, the server (1000) can execute the third service program. The server (1000) receives a message from the electronic device (2000) allowing the execution of the third service program, coordinates the execution of the first service program, and can execute the third service program. According to one embodiment, the server (1000) can stop the execution of the first service program. According to one embodiment, the server (1000) can adjust settings related to the execution of the first service program. According to one embodiment, the server (1000) can enable or disable specific functions of the first service program. In this case, for example, the server (1000) can coordinate the execution of the first service program in a way that reduces system costs for the execution of the service program, optimizes resource usage, or reduces quota deductions.
[0110] In operation 940, the server (1000) may reconfigure the first service program. For example, the server (1000) may reconfigure the first service program when the execution of the third service program is completed, when the load of resources for a user's work falls below a threshold, or when the user's quota for resources increases. According to one embodiment, the server (1000) may re-execute the first service program, reconfigure the settings regarding the execution of the first service program to a state prior to reconfiguration, or reactivate specific functions of the first service program.
[0111] FIG. 10 is a flowchart of a method for a server to adjust a user's quota based on the user's proficiency according to one embodiment.
[0112] In operation 1010, the server (1000) can evaluate the proficiency of the users' work. According to one embodiment, the server (1000) can evaluate the proficiency of the work for each user by analyzing the code received from the electronic device (2000) for the requested work. For example, the server (1000) can receive a request for work from the user's electronic device (2000) by receiving code written by the user. In this case, the server (1000) can evaluate the user's workability based on at least one of, for example, the structure of the code, the suitability of the functions within the code, or the execution efficiency of the work performed according to the code.
[0113] In operation 1020, the server (1000) can adjust the quota for the first user and the quota for the second user. For example, if the proficiency of the first user is higher than that of the second user, the server (1000) can set the quota for the first user higher than the quota for the second user. For example, the server (1000) can set the user-based quota for the first user higher than the user-based quota for the second user. For example, the server (1000) can set the priority of users using group-based quotas higher for the first user than for the second user.
[0114] According to one embodiment, the proficiency of users' work can be re-evaluated in real time or periodically, and quotas for users may be adjusted based on the re-evaluated proficiency.
[0115] FIG. 11 is a diagram illustrating an example of a server according to one embodiment coordinating resources allocated to a user and managing service programs.
[0116] In operation 1101, the server (1000) can set a user quota. According to one embodiment, the server (1000) can set a user quota for the resources (1100) of the server (1000). The resources (1100) may include hardware resources (1110) and software resources (1120). For example, the hardware resources (1110) may include, but are not limited to, CPU, memory, and GPU. Additionally, the software resources (1120) may be certain content used in connection with the performance of a task. For example, the software resources may include, but are not limited to, data / query, API, and database (DB) that are pre-generated and stored on the server, such as a dashboard.
[0117] According to one embodiment, the server (1000) may set user quotas for a resource (1100) according to a plurality of quota types. User quotas may include, for example, user-based quotas, group-based quotas, and content-based quotas. For example, when a resource is allocated according to user-based quotas, resource quotas may be allocated and deducted per user. Also, for example, when a resource is allocated according to group-based quotas, resource quotas may be allocated and deducted per group to which the user belongs. Also, for example, when a resource is allocated according to content-based quotas, resource quotas may be allocated and deducted for specific content without being dependent on a user or group.
[0118] In operation 1103, the server (1000) can adjust the user's quota. The server (1000) can adjust the user's quota based on the remaining amount of the user's other quota. To adjust the user's quota, the server (1000) can re-balance the user's quota and other quotas. For example, to adjust the user's first quota for the first resource, the server (1000) can identify at least one of the remaining amount of the user's second quota for the first resource or the remaining amount of the user's third quota for the second resource. The server (1000) can compare the remaining amount of the user's second quota for the first resource or the remaining amount of the user's third quota for the second resource with a threshold, and if the second quota or the third quota exceeds the threshold, it can decrease the remaining amount of the second quota or the remaining amount of the third quota and increase the remaining amount of the first quota.
[0119] According to one embodiment, the server (1000) can adjust the user's quota by using quotas for resources of other users belonging to the user's group. Additionally, for example, the server (1000) can adjust the user's quota by using quotas for resources of other users belonging to a different group from the user's group.
[0120] According to one embodiment, the server (1000) monitors the user's quota during the execution of the task and may adjust the user's quota if it is expected that the user's quota will be insufficient.
[0121] In operation 1105, the server (1000) can analyze the user's work pattern. The server (1000) can analyze the usage pattern of at least one of the resources or service programs used to perform the work. For example, the server (1000) can analyze at least one of the configuration of code for the work, service programs to be executed for the performance of the work, usage patterns of service programs, resources used for the performance of the work, or usage patterns of resources. The server (1000) can analyze the user's work pattern for multiple tasks. Additionally, the server (1000) can analyze the user's work pattern for multiple users.
[0122] In operation 1107, the server (1000) can manage the execution of service programs. The server (1000) can manage the execution of service programs to be executed to perform a user's task based on the user's task pattern. In this case, the server (1000) can stop the execution of some of the service programs and determine the execution order of the service programs by considering at least one of, for example, the user's task pattern, the remaining amount of the user's quota, the result of adjusting the user's quota, or the priority of the service programs for the task.
[0123] For example, the server (1000) can adjust the schedule of execution of a first service program and other service programs that use the first resource. The server (1000) can identify the work schedules of the first service program and other service programs that use the first resource and monitor the load of the first resource. According to one embodiment, the server (1000) can change the execution time of the first service program to adjust the usage time of the first resource for the user's work when the first quota is insufficient. According to one embodiment, if the load of the first resource is high and the execution of the first service program for the user's work is not smooth, the server (1000) can change (e.g., postpone) the execution time of other service programs that use the first resource.
[0124] Meanwhile, according to one embodiment, when the quota for the first resource is insufficient or an overload occurs on the first resource, the execution of a service program using the second resource as well as a service program using the second resource associated with the first resource can be controlled together.
[0125] For example, if an overload occurs in the resources running for a first service that uses a SQL editor program, the quotas related to the resources for the first service are limited, and in addition, other resources (e.g., content-based resources) related to other services (e.g., Dashboard Service) that use a SQL editor program may also be limited. Accordingly, the system of the server (1000) providing the cloud service may not go down.
[0126] In addition, according to one embodiment, when the quota for the first resource is exhausted, the use of the second resource may be induced.
[0127] For example, if the quota for content-based resources related to the SQL editor service is exhausted, resources may be used for other services that utilize hardware resources.
[0128] A method for a server to allocate resources to an electronic device according to one embodiment may include: an operation (600) of receiving a request for the execution of a task from the electronic device; an operation (610) of identifying at least one resource allocated to a user of the electronic device in order to execute a first service program for the execution of the task; an operation (620) of identifying a first quota for the first resource allocated to the user, wherein the first quota is allocated to the user according to a first quota type among a plurality of quota types related to the first resource; an operation (630) of identifying a second quota for the first resource allocated to the user, wherein the second quota is allocated to the user according to a second quota type among the plurality of quota types related to the first resource; and an operation (640) of identifying a third quota for the second resource allocated to the user, wherein the third quota is allocated to the user according to a third quota type among the plurality of quota types related to the second resource. Additionally, the method may include: an operation (650) of identifying whether adjustment of the first quota is required for the execution of the first service program; an operation (660) of adjusting the first quota based on at least one of the remaining amount of the second quota or the remaining amount of the third quota, as determined that adjustment of the first quota is required; an operation (670) of executing the first service program using the first resource based on the adjusted first quota; and an operation (680) of providing the result of execution of the first service program to the electronic device.
[0129] According to one embodiment, the first resource includes at least one of a CPU resource, a GPU resource, or a memory resource, and the second resource may be different from the first resource.
[0130] According to one embodiment, the plurality of quota types may include a user-based quota, a group-based quota to which the user belongs, and a content-based quota to which the user has access rights.
[0131] According to one embodiment, the first quota, the second quota, and the third quota may be reduced according to at least one of the occupancy amount of the first resource, the usage amount of the first resource, the usage time of the first resource, or the number of times the first resource is used.
[0132] According to one embodiment, the operation of adjusting the first quarter may include decreasing at least one of the remaining amount of the second quarter or the remaining amount of the third quarter, and increasing the remaining amount of the first quarter.
[0133] According to one embodiment, the operation of adjusting the first quota may include the operation of adjusting the first quota based on the remaining amount of the fourth quota related to the first resource allocated to other users belonging to the group of the user.
[0134] According to one embodiment, the operation of adjusting the first quota may include the operation of adjusting the first quota based on the remaining amount of the fifth quota related to the second resource allocated to the other user belonging to the group of the user.
[0135] According to one embodiment, the method may include: an operation to evaluate a first proficiency of the user related to the task and a second proficiency of the other user related to the task; and an operation to adjust a first quota assigned to the user and a fourth quota assigned to the other user based on the first proficiency and the second proficiency.
[0136] According to one embodiment, in order to perform the above operation, the operation may include suspending the execution of a second service program that shares the first service program and the first resource.
[0137] According to one embodiment, the method may include: an operation of monitoring the load of a plurality of resources provided by the server; an operation of determining the priority of service programs for performing the operation; and an operation of suspending at least one of the service programs based on the priority.
[0138] FIG. 12 is a block diagram of a server according to one embodiment.
[0139] Referring to FIG. 12, a server (1000) according to one embodiment may include a resource (1100), a service program (1200), a processor (1400), a storage device (1500), and a communication interface (1600).
[0140] A resource (1100) according to one embodiment may include a hardware resource (1110) and a software resource (1120). For example, the hardware resource (1110) may include a CPU, memory, and a GPU, but is not limited thereto. For example, the CPU resource may include at least one CPU, and a portion of the CPU resource may be allocated and occupied by a user, group, or content. For example, the memory resource may include at least one memory, and a portion of the memory resource may be allocated and occupied by a user, group, or work content. For example, the GPU resource may include at least one GPU, and a portion of the GPU resource may be allocated and occupied by a user, group, or content. Additionally, the software resource (1120) may be a specific content used in connection with the performance of a task. The software resource (1100) may be work content used for the performance of a task, and may include data / queries that are pre-generated and stored on a server, such as a dashboard, but is not limited thereto.
[0141] According to one embodiment, the service program (1200) may be a software program of a cloud service provided by a server (1000) and may be a software program used to perform a requested task. The service program (1200) may include a plurality of service programs, such as a first service program (1210) and a second service program (1220). The service program may include, for example, at least one of a service program that executes code on a kernel that allocates and uses a CPU, memory, and GPU, a service program of an SQL editor, or a service program of a service that uses already created Data / Query, but is not limited thereto.
[0142] According to one embodiment, the storage device (1500) may store various data used by at least one component of the server (1000) (e.g., processor (1400)). The data may include, for example, software for executing operations of the server (1000) and input data or output data of the server (1000). The storage device (1500) may be implemented as a component separate from the memory resource included within the hardware resource (1110), but is not limited thereto.
[0143] According to one embodiment, the communication interface (1600) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between a server (1000) and an electronic device (2000), and the performance of communication through the established communication channel. The communication interface (1600) may include one or more communication processors that operate independently of the processor (1400) and support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication interface (1600) may include a wireless communication module (e.g., a cellular communication module, a short-range wireless communication module, or a GNSS (global navigation satellite system) communication module) or a wired communication module (e.g., a LAN (local area network) communication module, or a power line communication module).
[0144] According to one embodiment, the processor (1400) can control at least one other component (e.g., hardware or software component) of the server (1000) connected to the processor (1400) by executing software (e.g., a program), and can perform various data processing or operations. According to one embodiment, as at least part of the data processing or operations, the processor (1400) can store commands or data received from another component (e.g., a communication interface (1600)) in volatile memory, process the commands or data stored in volatile memory, and store the resulting data in non-volatile memory. According to one embodiment, the processor (1400) may include a main processor (e.g., a central processing unit) or an auxiliary processor (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can be operated independently or together with it.
[0145] A processor (1400) according to one embodiment can perform the operation of the server (1000) of FIGS. 1 to 11.
[0146] According to one embodiment, the processor (1400) may receive a request for the performance of a task from the electronic device (2000). According to one embodiment, a user of the electronic device (2000) may request the server (1000) to perform a specific task through the electronic device (2000).
[0147] According to one embodiment, the processor (1400) may identify at least one resource allocated to the user in order to execute a first service program for performing a task. The processor (1400) may identify at least one resource required to execute a first service program related to a requested task in order to perform a requested task. The first service program may include, for example, at least one of a service program that executes code on a kernel that allocates and uses a CPU, memory, and GPU, a service program for an SQL editor, or a service program for a service that uses already generated Data / Query, but is not limited thereto. Additionally, according to one embodiment, the processor (1400) may identify at least one resource allocated to the user. For example, the processor (1400) may identify a first resource allocated to the user among the resources required to execute the first service program. For example, the first resource may include at least one of a hardware resource or a software resource. Additionally, for example, the first resource may include at least one of a CPU resource, a GPU resource, or a memory resource.
[0148] According to one embodiment, the processor (1400) can identify a first quota of a first quota type of user for a first resource. The first quota of a first quota type may be, for example, a quota allocated to a user among the first resources, and may be part of a user-based quota, a group-based quota, or a content-type quota.
[0149] For example, the processor (1400) can identify a user-based quota for a CPU resource as a first quota of a first quota type for a first resource.
[0150] According to one embodiment, the processor (1400) can identify a second quota of a second quota type for a user of a first resource. The second quota of a second quota type may be, for example, a quota allocated to a user among the first resource, and may be a part different from the first quota of a first quota type among a user-based quota, a group-based quota, or a content-type quota for a user.
[0151] For example, the processor (1400) can identify a user's group-based quota for a CPU resource as a second quota of a second quota type for a first resource.
[0152] According to one embodiment, the processor (1400) can identify a third quota of a user's third quota type for a second resource. For example, the second resource may be a resource that is not required for the execution of the first service program. Additionally, for example, the third quota of a third quota type may be a quota allocated to the user among the second resources, and may be at least one of a user-based quota, a group-based quota, or a content-type quota.
[0153] For example, the processor (1400) can identify a user-based quota for a memory resource as a third quota of a third quota type for a second resource.
[0154] According to one embodiment, the processor (1400) may determine whether adjustment of the user's first quota is necessary. According to one embodiment, the processor (1400) may determine whether adjustment of the first quota is necessary based on the remaining amount of the user's first quota for the first resource for performing a task. For example, the processor (1400) may identify the remaining amount of the first quota for the user's first resource. Additionally, the processor (1400) may predict or determine the occupancy, usage, and usage time of the first resource required for the execution of the first service program for performing a task. Additionally, the processor (1400) may compare the occupancy, usage, and usage time of the first resource required for the task with the remaining amount of the user's first quota for the first resource. If the processor (1400) determines that the user's first quota for the task is insufficient for the completion of the task, the processor (1400) may determine that adjustment of the first quota is necessary.
[0155] Additionally, according to one embodiment, the processor (1400) may determine whether adjustment of the first quota is necessary by considering the current load of the first resource. The processor (1400) may identify a portion of the first resource currently being used for other tasks. Other tasks may include other user tasks or other tasks of the user. Based on the portion of the first resource currently being used for other tasks, the processor (1400) may determine whether adjustment of the user's first quota is necessary. For example, if a large portion of the first resource is currently being used for other tasks, the processor (1400) may determine that the first resource is insufficient for performing tasks requested by the user. In this case, the processor (1400) may determine that adjustment of the first quota for the first resource is necessary.
[0156] According to one embodiment, the processor (1400) may adjust the first quota based on at least one of the remaining amount of the second quota or the remaining amount of the third quota when it is determined that adjustment of the user's first quota is necessary. The processor (1400) may re-balance the user's quotas to adjust the first quota. For example, the processor (1400) may identify at least one of the remaining amount of the user's second quota for the first resource or the remaining amount of the user's third quota for the second resource to adjust the user's first quota for the first resource. The processor (1400) can compare the remaining amount of the user's second quota for the first resource or the remaining amount of the user's third quota for the second resource with a threshold, and if the second quota or the third quota exceeds the threshold, it can decrease the remaining amount of the second quota or the remaining amount of the third quota and increase the remaining amount of the first quota.
[0157] In this case, for example, the processor (1400) may adjust the user's quota based on the amount of the first resource required to complete the task and the remaining amount of the user's quota, but is not limited thereto.
[0158] Additionally, for example, the processor (1400) can adjust the schedule of execution of a first service program and other service programs that use the first resource. The processor (1400) can identify the work schedules of the first service program and other service programs that use the first resource and monitor the load of the first resource. According to one embodiment, the processor (1400) can change the execution time of the first service program to adjust the usage time of the first resource for the user's work when the first quota is insufficient. According to one embodiment, if the load of the first resource is high and the execution of the first service program for the user's work is not smooth, the processor (1400) can change (e.g., postpone) the execution time of other service programs that use the first resource.
[0159] According to one embodiment, the processor (1400) may execute a first service program using a first resource based on a first quota. The processor (1400) may execute a first service program using the first resource while deducting the remaining amount of the first quota adjusted by rebalancing.
[0160] If it is determined that adjustment of the user's first quota is not necessary, the processor (1400) may execute the first service program using the first resource while deducting the remaining amount of the unadjusted first quota.
[0161] According to one embodiment, the processor (1400) can provide the execution result of the first service program to the electronic device (2000).
[0162] Although it has been described above that the first quota for the user's first resource is adjusted using other quotas for the user's first resource and second resource, it is not limited thereto. For example, the processor (1400) may adjust the first quota for the user's first resource using quotas for resources of other users belonging to the user's group. Additionally, for example, the processor (1400) may adjust the first quota for the user's first resource using quotas for resources of other users belonging to a group different from the user's group.
[0163] According to one embodiment, the processor (1400) can monitor the remaining amount of the first quota. The processor (1400) can monitor the remaining amount of the first quota while executing a first service program for a task based on the first quota. The processor (1400) can monitor the required amount of the first resource required for the completion of the task and the remaining amount of the first quota in real time or periodically.
[0164] According to one embodiment, the processor (1400) may determine whether adjustment of the first quota is necessary. The processor (1400) may determine whether the user's first quota for the first resource is insufficient for the completion of the task. For example, if, as a result of monitoring in operation 710, the remaining amount of the first quota is smaller than the required amount of the first resource required for the completion of the task, the processor (1400) may determine that additional adjustment of the first quota is necessary. Also, for example, if, as a result of monitoring in operation 710, the remaining amount of the first quota is smaller than a threshold, the processor (1400) may determine that additional adjustment of the first quota is necessary.
[0165] If it is determined that adjustment of the first quota is necessary, according to one embodiment, the processor (1400) may adjust the schedule of execution of the service program and further adjust the first quota.
[0166] According to one embodiment, the processor (1400) can adjust the schedule of execution of a first service program and other service programs that use a first resource. The processor (1400) can identify the work schedules of the first service program and other service programs that use the first resource and monitor the load of the first resource. According to one embodiment, the processor (1400) can change the execution time of the first service program to adjust the usage time of the first resource for a user's work when the first quota is insufficient. According to one embodiment, if the load of the first resource is high and the execution of the first service program for a user's work is not smooth, the processor (1400) can change (e.g., postpone) the execution time of other service programs that use the first resource.
[0167] In case it is determined that adjustment of the first quota is not necessary, according to one embodiment, the processor (1400) can complete the work through the first service program while deducting the first quota and can provide the result of the work to the electronic device (2000).
[0168] FIG. 13 is a block diagram of an electronic device (1301) in a network environment (1300) according to various embodiments. Referring to FIG. 13, in the network environment (1300), the electronic device (1301) may communicate with an electronic device (1302) through a first network (1398) (e.g., a short-range wireless communication network) or with an electronic device (1304) or a server (1308) through a second network (1399) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (1301) may communicate with the electronic device (1304) through a server (1308). According to one embodiment, the electronic device (1301) may include a processor (1320), memory (1330), input module (1350), sound output module (1355), display module (1360), audio module (1370), sensor module (1376), interface (1377), connection terminal (1378), haptic module (1379), camera module (1380), power management module (1388), battery (1389), communication module (1390), subscriber identification module (1396), or antenna module (1397). In some embodiments, at least one of these components (e.g., connection terminal (1378)) may be omitted from the electronic device (1301), or one or more other components may be added. In some embodiments, some of these components (e.g., sensor module (1376), camera module (1380), or antenna module (1397)) may be integrated into a single component (e.g., display module (1360)).
[0169] The processor (1320) can, for example, execute software (e.g., program (1340)) to control at least one other component (e.g., hardware or software component) of the electronic device (1301) connected to the processor (1320) and perform various data processing or operations. According to one embodiment, as at least part of the data processing or operations, the processor (1320) can store commands or data received from other components (e.g., sensor module (1376) or communication module (1390)) in volatile memory (1332), process the commands or data stored in volatile memory (1332), and store the resulting data in non-volatile memory (1334). According to one embodiment, the processor (1320) may include a main processor (1321) (e.g., a central processing unit or an application processor) or an auxiliary processor (1323) that can operate independently or together with it (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor). For example, if the electronic device (1301) includes a main processor (1321) and an auxiliary processor (1323), the auxiliary processor (1323) may be configured to use less power than the main processor (1321) or to be specialized for a specified function. The auxiliary processor (1323) may be implemented separately from the main processor (1321) or as part thereof.
[0170] The auxiliary processor (1323) may control at least some of the functions or states associated with at least one component of the electronic device (1301) (e.g., display module (1360), sensor module (1376), or communication module (1390)) on behalf of the main processor (1321) while the main processor (1321) is in an inactive (e.g., sleep) state, or together with the main processor (1321) while the main processor (1321) is in an active (e.g., application execution) state. According to one embodiment, the auxiliary processor (1323) (e.g., image signal processor or communication processor) may be implemented as part of another functionally related component (e.g., camera module (1380) or communication module (1390)). According to one embodiment, the auxiliary processor (1323) (e.g., neural network processing unit) may include a hardware structure specialized for processing an artificial intelligence model. The artificial intelligence model may be generated through machine learning. Such learning may be performed, for example, on the electronic device (1301) itself where the artificial intelligence is performed, or through a separate server (e.g., server (1308)). The learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model may include a plurality of artificial neural network layers.An artificial neural network may be a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to the hardware structure, the artificial intelligence model may include a software structure, either additionally or substantially.
[0171] The memory (1330) can store various data used by at least one component of the electronic device (1301) (e.g., processor (1320) or sensor module (1376)). The data may include, for example, input data or output data for software (e.g., program (1340)) and related commands. The memory (1330) may include volatile memory (1332) or non-volatile memory (1334).
[0172] The program (1340) may be stored as software in memory (1330) and may include, for example, an operating system (1342), middleware (1344), or an application (1346).
[0173] The input module (1350) can receive commands or data to be used for a component of the electronic device (1301) (e.g., processor (1320)) from outside the electronic device (1301) (e.g., user). The input module (1350) may include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0174] The sound output module (1355) can output a sound signal to the outside of the electronic device (1301). The sound output module (1355) may include, for example, a speaker or a receiver. The speaker may be used for general purposes, such as multimedia playback or recording playback. The receiver may be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part thereof.
[0175] The display module (1360) can visually provide information to an external (e.g., user) of the electronic device (1301). The display module (1360) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling said device. According to one embodiment, the display module (1360) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of the force generated by said touch.
[0176] The audio module (1370) can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module (1370) can acquire sound through the input module (1350) or output sound through the sound output module (1355) or an external electronic device (e.g., electronic device (1302)) (e.g., speaker or headphones) connected directly or wirelessly to the electronic device (1301).
[0177] The sensor module (1376) can detect the operating state of the electronic device (1301) (e.g., power or temperature) or the external environmental state (e.g., user state) and generate an electrical signal or data value corresponding to the detected state. According to one embodiment, the sensor module (1376) may include, for example, a gesture sensor, a gyroscope sensor, a barometric pressure sensor, a magnetic sensor, an accelerometer sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biosensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0178] The interface (1377) may support one or more specified protocols that can be used for the electronic device (1301) to be connected directly or wirelessly to an external electronic device (e.g., electronic device (1302)). According to one embodiment, the interface (1377) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0179] The connection terminal (1378) may include a connector through which the electronic device (1301) can be physically connected to an external electronic device (e.g., electronic device (1302)). According to one embodiment, the connection terminal (1378) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0180] The haptic module (1379) can convert an electrical signal into a mechanical stimulus (e.g., vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic senses. According to one embodiment, the haptic module (1379) may include, for example, a motor, a piezoelectric element, or an electric stimulation device.
[0181] The camera module (1380) can capture still images and video. According to one embodiment, the camera module (1380) may include one or more lenses, image sensors, image signal processors, or flashes.
[0182] The power management module (1388) can manage the power supplied to the electronic device (1301). According to one embodiment, the power management module (1388) can be implemented, for example, as at least part of a power management integrated circuit (PMIC).
[0183] The battery (1389) can supply power to at least one component of the electronic device (1301). According to one embodiment, the battery (1389) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0184] The communication module (1390) can support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between an electronic device (1301) and an external electronic device (e.g., electronic device (1302), electronic device (1304), or server (1308)), and the performance of communication through the established communication channel. The communication module (1390) may include one or more communication processors that operate independently of the processor (1320) (e.g., application processor) and support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (1390) may include a wireless communication module (1392) (e.g., cellular communication module, short-range wireless communication module, or GNSS (global navigation satellite system) communication module) or a wired communication module (1394) (e.g., LAN (local area network) communication module, or power line communication module). The corresponding communication module among these communication modules can communicate with an external electronic device (1304) via a first network (1398) (e.g., a short-range communication network such as Bluetooth, WiFi (wireless fidelity) direct, or IrDA (infrared data association)) or a second network (1399) (e.g., a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (1392) can identify or authenticate the electronic device (1301) within a communication network such as the first network (1398) or the second network (1399) using subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module (1396).
[0185] The wireless communication module (1392) can support 5G networks and next-generation communication technologies following 4G networks, for example, new radio access technology. NR access technology can support high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and connection of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low-latency communications (URLLC)). The wireless communication module (1392) can support a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate, for example. The wireless communication module (1392) can support various technologies for securing performance in the high-frequency band, such as beamforming, massive MIMO (multiple-input and multiple-output), full-dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large-scale antenna. The wireless communication module (1392) can support various requirements specified in the electronic device (1301), external electronic device (e.g., electronic device (1304)), or network system (e.g., second network (1399)). According to one embodiment, the wireless communication module (1392) can support a Peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mMTC, or U-plane latency (e.g., downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less) for realizing URLLC.
[0186] An antenna module (1397) can transmit a signal or power to or from an external source (e.g., an external electronic device). According to one embodiment, the antenna module (1397) may include an antenna comprising a radiator made of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). According to one embodiment, the antenna module (1397) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as a first network (1398) or a second network (1399), may be selected from the plurality of antennas, for example, by a communication module (1390). A signal or power may be transmitted or received between the communication module (1390) and an external electronic device through the selected at least one antenna. According to some embodiments, in addition to the radiator, other components (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as part of the antenna module (1397).
[0187] According to various embodiments, the antenna module (1397) may form a mmWave antenna module. According to one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent to a first surface (e.g., bottom surface) of the printed circuit board and capable of supporting a specified high frequency band (e.g., mmWave band), and a plurality of antennas (e.g., array antennas) disposed on or adjacent to a second surface (e.g., top surface or side surface) of the printed circuit board and capable of transmitting or receiving a signal of the specified high frequency band.
[0188] At least some of the above components can be connected to each other via a communication method between peripheral devices (e.g., bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)) and exchange signals (e.g., commands or data) with each other.
[0189] According to one embodiment, commands or data may be transmitted or received between the electronic device (1301) and an external electronic device (1304) through a server (1308) connected to a second network (1399). Each of the external electronic devices (1302, or 1304) may be the same or a different type of device as the electronic device (1301). According to one embodiment, all or part of the operations performed on the electronic device (1301) may be performed on one or more of the external electronic devices (1302, 1304, or 1308). For example, if the electronic device (1301) needs to perform a function or service automatically or in response to a request from a user or another device, the electronic device (1301) may request one or more external electronic devices to perform at least part of the function or service instead of performing the function or service itself or additionally. One or more external electronic devices that receive the above request may execute at least part of the requested function or service, or additional function or service related to the request, and transmit the result of the execution to the electronic device (1301). The electronic device (1301) may provide the result as is or additionally processed as at least part of the response to the request. For this purpose, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used. The electronic device (1301) may provide ultra-low latency services using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device (1304) may include an Internet of Things (IoT) device. The server (1308) may be an intelligent server using machine learning and / or neural networks.According to one embodiment, an external electronic device (1304) or server (1308) may be included within the second network (1399). The electronic device (1301) may be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
[0190] According to one embodiment, the electronic device (1301) may correspond to the electronic device (2000) and may perform the operation of the electronic device (2000) in FIGS. 1 to 12.
[0191] A server for allocating resources to an electronic device according to one embodiment comprises: a communication interface; a memory for storing instructions; and one or more processors; wherein, when the instructions are executed by the one or more processors, the server causes: to receive a request for the performance of a task from the electronic device through the communication interface; to identify at least one resource allocated to a user of the electronic device in order to execute a first service program for the performance of the task; to identify a first quota for the first resource allocated to the user, wherein the first quota is allocated to the user according to a first quota type among a plurality of quota types related to the first resource; to identify a second quota for the first resource allocated to the user, wherein the second quota is allocated to the user according to a second quota type among the plurality of quota types related to the first resource; and to identify a third quota for the second resource allocated to the user, wherein the third quota is allocated to the user according to a third quota type among the plurality of quota types related to the second resource. Identify whether adjustment of the first quota is necessary for the execution of the first service program; if it is determined that adjustment of the first quota is necessary, adjust the first quota based on at least one of the remaining amount of the second quota or the remaining amount of the third quota; execute the first service program using the first resource based on the adjusted first quota; and provide the result of the execution of the first service program to the electronic device.
[0192] According to one embodiment, the first resource includes at least one of a CPU resource, a GPU resource, or a memory resource, and the second resource is different from the first resource, a server.
[0193] According to one embodiment, the plurality of quota types may include a user-based quota, a group-based quota to which the user belongs, and a content-based quota to which the user has access rights.
[0194] According to one embodiment, the first quota, the second quota, and the third quota may be reduced according to at least one of the occupancy amount of the first resource, the usage amount of the first resource, the usage time of the first resource, or the number of times the first resource is used.
[0195] According to one embodiment, when the instructions are executed by the one or more processors, the server may: decrease at least one of the remaining amount of the second quota or the remaining amount of the third quota, and increase the remaining amount of the first quota.
[0196] According to one embodiment, when the instructions are executed by the one or more processors, the server may be able to: adjust the first quota based on the remaining amount of the fourth quota related to the first resource allocated to other users belonging to the group of the user.
[0197] According to one embodiment, when the instructions are executed by the one or more processors, the server may be able to: adjust the first quota based on the remaining amount of the fifth quota related to the second resource allocated to the other user belonging to the group of the user.
[0198] According to one embodiment, when the instructions are executed by the one or more processors, the server may: evaluate the first proficiency of the user related to the task and the second proficiency of the other user related to the task, and based on the first proficiency and the second proficiency, adjust the first quota allocated to the user and the fourth quota allocated to the other user.
[0199] According to one embodiment, when the instructions are executed by the one or more processors, the server may: stop the execution of the second service program that shares the first service program and the first resource in order to perform the task.
[0200] According to one embodiment, when the instructions are executed by the one or more processors, the server may: monitor the load of a plurality of resources provided by the server, determine the priority of service programs for performing the task, and, based on the priority, stop at least one of the service programs.
[0201] The electronic device according to the various embodiments disclosed in this document may be of various forms. The electronic device 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 consumer electronics device. The electronic device according to the embodiments of this document is not limited to the devices described above.
[0202] The various embodiments of this document and the terms used therein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various modifications, equivalents, or substitutions of said 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 said items unless the relevant context clearly indicates otherwise. In this document, phrases such as "A or B," "at least one of A and B," "at least one of A or B," "A, B or C," "at least one of A, B and C," and "at least one of A, B, or C" may each include any one of the items listed together in the corresponding phrase, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used simply to distinguish said components from other said components and do not limit said components in any other aspect (e.g., importance or order). Where any (e.g., 1st) component is referred to as “coupled” or “connected” to another (e.g., 2nd) component, with or without the terms “functionally” or “communicationly,” it means that said any component may be connected to said other component directly (e.g., via a wire), wirelessly, or through a third component.
[0203] The term “module” as used in the 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, for example. A module may be a component formed integrally, or a minimum unit of said component or a part thereof 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).
[0204] Various embodiments of the present document may be implemented as software (e.g., program (1340)) comprising one or more instructions stored in a storage medium (e.g., internal memory (1336) or external memory (1338)) readable by a machine (e.g., electronic device (1301)). For example, a processor (e.g., processor (1320)) of the machine (e.g., electronic device (1301)) may call at least one of the one or more instructions stored from the storage medium and execute it. This enables the machine to be operated to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code that can be executed by an interpreter. The storage medium readable by the machine may be provided in the form of a non-transitory storage medium. Here, 'non-temporary' simply means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently and cases where it is stored temporarily.
[0205] According to one embodiment, the method according to the various embodiments disclosed herein may be provided by being included in a computer program product. The computer program product may be traded between a seller and a buyer as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or distributed online (e.g., download or upload) through an application store (e.g., Play Store™) or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily created on a device-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
[0206] According to various embodiments, each component (e.g., module or program) of the components described above may include a singular or multiple entities, and some of the multiple entities may be separated and placed in other components. According to various embodiments, one or more of the components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Generally or additionally, multiple components (e.g., module or program) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the multiple components in the same or similar manner as those performed by the corresponding component among the multiple components prior to integration. According to various embodiments, operations performed by the module, program, or other components 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 the method by which a server allocates resources to an electronic device, An operation (600) of receiving a request to perform a task from the above electronic device; An operation (610) of identifying at least one resource allocated to a user of the electronic device in order to execute a first service program for performing the above task; The operation of identifying (620) a first quota for a first resource allocated to the user, wherein the first quota is allocated to the user according to a first quota type among a plurality of quota types related to the first resource; The operation of identifying (630) a second quota for the first resource allocated to the user, wherein the second quota is allocated to the user according to the second quota type among the plurality of quota types related to the first resource; The operation of identifying (640) a third quota for a second resource allocated to the user, wherein the third quota is allocated to the user according to a third quota type among the plurality of quota types related to the second resource; An operation (650) to identify whether adjustment of the first quota is required for the execution of the first service program; An operation (660) to adjust the first quarter based on at least one of the remaining amount of the second quarter or the remaining amount of the third quarter, as it is determined that adjustment of the first quarter is necessary; An operation (670) of executing the first service program using the first resource based on the above adjusted first quota; and The operation of providing the execution result of the first service program to the electronic device (680); A method including 2. In Paragraph 1, A method in which the first resource comprises at least one of a CPU resource, a GPU resource, or a memory resource, and the second resource is different from the first resource.
3. In Paragraph 1, A method wherein the plurality of quota types described above include a user-based quota, a group-based quota to which the user belongs, and a content-based quota over which the user has access rights.
4. In Paragraph 1, A method in which the first quota, the second quota, and the third quota are deducted according to at least one of the occupancy amount of the first resource, the usage amount of the first resource, the usage time of the first resource, or the number of times the first resource is used.
5. In Paragraph 1, The operation of adjusting the first quarter above is, A method comprising the operation of decreasing at least one of the remaining amount of the second quarter or the remaining amount of the third quarter, and increasing the remaining amount of the first quarter.
6. In Paragraph 1, The operation of adjusting the first quarter above is, An operation to adjust the first quota based on the remaining amount of the fourth quota related to the first resource allocated to other users belonging to the group of the above user; A method including 7. In Paragraph 6, The operation of adjusting the first quarter above is, An operation to adjust the first quota based on the remaining amount of the fifth quota related to the second resource allocated to other users belonging to the group of the above user; A method including 8. In Paragraph 6, An action of evaluating the first proficiency of the user related to the above task and the second proficiency of the other user related to the above task; and An operation to adjust the first quota assigned to the user and the fourth quota assigned to the other user based on the first proficiency and the second proficiency; A method including 9. In Paragraph 1, To perform the above task, an action of suspending the execution of a second service program that shares the first service program and the first resource; A method that further includes.
10. In Paragraph 1, An operation to monitor the load of multiple resources provided by the above server; An operation to determine the priority of service programs for performing the above task; and An action of suspending at least one of the service programs based on the above priority; A method including 11. In a server that allocates resources to electronic devices, Communication interface; Memory for storing instructions; and One or more processors; Includes, When the above commands are executed by the one or more processors, the server: Receiving a request to perform a task from the electronic device through the communication interface; To execute a first service program for performing the above task, at least one resource allocated to a user of the electronic device is identified; Identifying a first quota for a first resource allocated to the above user, wherein the first quota is allocated to the user according to a first quota type among a plurality of quota types related to the first resource; Identifying a second quota for the first resource allocated to the user, wherein the second quota is allocated to the user according to a second quota type among the plurality of quota types related to the first resource; Identify a third quota for a second resource allocated to the user, wherein the third quota is allocated to the user according to a third quota type among the plurality of quota types related to the second resource; Identify whether adjustment of the first quota is required for the execution of the first service program; As it is determined that adjustment of the first quota is necessary, the first quota is adjusted based on at least one of the remaining amount of the second quota or the remaining amount of the third quota; Based on the above-mentioned adjusted first quota, execute the first service program using the first resource; A server that provides the execution result of the above-mentioned first service program to the above-mentioned electronic device.
12. In Paragraph 11, A server in which the first resource comprises at least one of a CPU resource, a GPU resource, or a memory resource, and the second resource is different from the first resource.
13. In Paragraph 11, A server in which the above plurality of quota types include user-based quotas, group-based quotas to which the user belongs, and content-based quotas for which the user has access rights.
14. In Paragraph 11, A server in which the first quota, the second quota, and the third quota are deducted according to at least one of the occupancy amount of the first resource, the usage amount of the first resource, the usage time of the first resource, or the number of times the first resource is used.
15. In Paragraph 11, When the above commands are executed by the one or more processors, the server: A server that reduces at least one of the remaining amount of the second quota or the remaining amount of the third quota and increases the remaining amount of the first quota.
Citation Information
Patent Citations
Resource allocation method and resource manager
CN110532087A
Method, device and equipment for intelligently scheduling computing resources
CN116401030A
Resource quota method and device, equipment and storage medium
CN116775267A
Method and system for allocating and managing computer cloud desktop resources
CN118467177A
Method and system for implementing shared quotas
US7716275B1