Patent Description:
Electronic devices are able to perform many functions. The performance of even the same function has been improved with the development of the technology. In addition, when the power of an electronic device is applied, functions being performed in a background are increased. For example, a data transmission speed is increased, and the electronic device can output high-resolution motion picture playback. When the electronic device is turned on, even a security-related application can operate in the background. However, since many functions are performed with limited resources, a number of problems can occur.

<CIT> entitled "Method of Virtualization and OS-Level Thermal Management and Multithreaded Processor with Virtualization and OS-Level Thermal Management', in the name of Pradip Bose et al. discloses a program, product and method of managing task execution on an integrated circuit chip such as a chip-level multiprocessor (CMP) with simultaneous multithreading (SMT). Multiple chip operating units or cores have chip sensors (temperature sensors or counters) for monitoring temperature in units. Task execution is monitored for hot tasks and especially for hotspots. Task execution is balanced, thermally, to minimize hot spots. Thermal balancing may include SMT heat balancing, CMP heat balancing, deferring execution of identified hot tasks, migrating identified hot tasks from a current core to a colder core, user-specified core-hopping, and SMT hardware threading.

<CIT> discloses a method of operating an electronic system including a heterogeneous multi-core processor. The method includes measuring the temperature and/or workload of a big (high-performance) core and switching a current core load from the big core to a small (low-power) core in response to the measured temperature and workload of the big core.

<CIT> discloses a method and apparatus of a device that manages a thermal profile of a device by selectively throttling central processing unit operations of the device. The device manages a thermal profile of the device by adjusting throttling of a central processing unit execution of a historically high energy consuming task. In this embodiment, the device monitors thermal level of the thermal profile of the device, the device is executing a plurality of tasks that utilize a plurality of processing cores of the device. If the thermal level of the device exceeds a thermal threshold, the device identifies one of the plurality tasks as a historically high energy consuming task, and throttles this historically high energy consuming task by setting a force idle execution time for the historically high energy consuming task. The device further executes the plurality of tasks.

When an electronic device uses certain elements, such as a communication module or a processor, the usage can generated heat. If the amount of heat that is generated becomes excessive, the heat can degrade and even destroy the used elements.

Limiting the whole performance of a system can alleviate the foregoing problem. The method can limit the performance of the system by decreasing the number of cycles for the processor or compulsorily terminating a process being that is infrequently used. However, this may cause a problem in that user's service quality satisfaction is degraded.

According to the certain embodiments of the disclosure, the electronic device can control the heat generation of the electronic device by controlling the process being executed in the background.

According to the certain embodiments of the disclosure, the electronic device can control the heat generation of the electronic device by adaptively controlling the process less sensitive to a user's sensible performance.

According to the certain embodiments of the disclosure, it is possible not to degrade a quality of service being provided to a user while controlling the heat generation of the electronic device.

In relation to the description of the drawings, the same or similar reference numerals may be used with respect to the same or similar constituent elements. The above and other aspects, features and advantages of certain embodiments of the disclosure will be more apparent from the following detailed description, taken in conjunction with the accompanying drawings, in which:.

Hereinafter, certain embodiments of the disclosure may be described with reference to the accompanying drawings.

<FIG> is a block diagram illustrating an electronic device <NUM> in a network environment <NUM> according to certain embodiments.

The electronic device according to certain embodiments may be one of various types of electronic devices.

In the disclosure, a process is a program being executed by a processor, and may be called a task or an application. The processor may schedule the process being executed in a predetermined time unit. If necessary, the processor delay scheduling the process being executed for a predetermined time. In the disclosure, a time in which the processor does not schedule/delays at least one of process from being executed and where the corresponding process does not operate may be defined as a "delay time" or "delay time of the corresponding process". A time in which the processor re-schedules the process having configured the delay time and the process operates may be defined as an "operation time" or "operation time of the corresponding process".

<FIG> is a block diagram illustrating a part of an electronic device according to certain embodiments of the disclosure. Certain components described in the block diagram may correspond to components with like numbering in <FIG>.

Referring to <FIG>, an electronic device <NUM> may include an antenna module <NUM>, a communication module <NUM>, a battery <NUM>, a processor <NUM>, and a temperature measurement module <NUM>.

The term "processor" shall be understood to refer to both the singular and plural contexts. The temperature measurement module <NUM> may include at least one temperature sensor. The at least one temperature sensor can include at least one thermometer. The temperature measurement module <NUM> can measure the temperature of the electronic device <NUM>. The temperature sensor may be located around a constituent element (e.g., antenna) empirically known to have a large amount of heat generation. A plurality of temperature sensors may be located around respective constituent elements to measure the temperatures of the respective constituent elements.

For example, the plurality of temperature sensors may be disposed around at least parts of the processor <NUM>, the battery <NUM>, the communication module <NUM>, and the antenna module <NUM>, and the temperature measurement module <NUM> may measure the temperatures of the respective constituent elements. The temperature measurement module <NUM> may determine the temperature (e.g., maximum temperature) of the electronic device <NUM> based on the measured temperatures of the respective constituent elements. It shall be understood that the antenna module <NUM>, battery <NUM>, communication module <NUM>, and processor <NUM> are by way of example, not limitation, and other constituent elements can be used.

The temperature measurement module <NUM> may be separate from the element monitored or integrated to be include with the element monitored.

As will be described below, under certain circumstances, the antenna module <NUM>, the communication module <NUM>, the battery, and/or processor <NUM> can generate a large amount of heat that can degrade or even destroy the component.

The antenna module <NUM> may transmit/receive a signal or power to an external electronic device. The antenna module <NUM> may include a plurality of antennas, and may be controlled by the communication module <NUM>. When the signal strength or power is high or the antenna module <NUM> is too frequently used, the antenna module <NUM> may generate a large amount of heat.

The communication module <NUM> may support at least one or more communications. The communication module <NUM> may be connected to the antenna module <NUM>, and may select at least one of the plurality of antennas included in the antenna module <NUM>. When the communication module <NUM> continuously transmits or receives a large amount of data (e.g., moving image streaming service), the communication module may be generate a large amount of heat.

The battery <NUM> may supply the power to at least one constituent element of the electronic device <NUM>. When the constituent element consumes a large amount of power or when the battery <NUM> is being charged, the battery may generate a large amount of heat.

The processor <NUM> may control at least one constituent element of the electronic device <NUM>. When the number of constituent elements of the electronic device <NUM> controlled by the processor <NUM> becomes large, or the number of clock cycles are increased, the processor <NUM> may generate a large amount of heat.

<FIG> is a block diagram in accordance with functions of an electronic device according to certain embodiments of the disclosure. The temperature measurement unit <NUM> measures the temperature and determines the degree of heat generation of the constituent elements. Based on the degree of heat generation, the delay time configuration unit <NUM> may determine a delay time (if any) of the processor. The process controller <NUM> and impose or effectuate the delay time for the execution of controllable processes that are not sensed by the user identified by the process identification unit <NUM>.

Referring to <FIG>, an electronic device (e.g., electronic device <NUM> of <FIG>) may include a temperature measurement unit <NUM>, a delay time configuration unit <NUM>, a process controller <NUM>, a process identification unit <NUM>, and a process group configuration unit <NUM>.

The temperature measurement unit <NUM> may measure the temperature using the temperature measurement module (e.g., temperature measurement module <NUM> of <FIG>). The temperature measurement unit <NUM> may determine the degree of heat generation of the electronic device <NUM> based on the measured temperature. In case that the temperature measurement module <NUM> includes a plurality of temperature sensors, the temperature measurement unit <NUM> may determine the degrees of heat generation of the respective constituent elements or the electronic device <NUM> based on the temperatures measured from the respective constituent elements (e.g., battery and processor).

The delay time configuration unit <NUM> may configure (or determine) the delay time of the processor in accordance with the degree of heat generation determined by the temperature measurement unit <NUM>. The delay time configuration unit <NUM> may configure the delay time in further consideration of the number of processes being driven. If the amount of heat generation is smaller than a predetermined threshold value, the delay time configuration unit <NUM> may determine a non-heat generation state as the current state, and may configure the delay time to "<NUM>" or may not configure the delay time. The delay time configuration unit <NUM> may transmit the configured delay time to the process controller <NUM>.

The delay time configuration unit <NUM> may also configure an operation time. The delay time configuration unit <NUM> may configure the operation time in further consideration of the number of processes being driven. The delay time configuration unit <NUM> may transmit the configured operation time to the process controller <NUM>.

The process controller <NUM> may schedule a specific process based on the delay time and/or the operation time transmitted from the delay time configuration unit <NUM>. For example, the process controller <NUM> may not schedule the specific process for the transmitted delay time. The processor (e.g., processor <NUM> of <FIG>) may not drive the unscheduled process. The process controller <NUM> may re-schedule the specific process after the delay time. The process controller <NUM> may schedule the specific process for the operation time. If the specific process is scheduled, the processor <NUM> may drive the specific process. The process controller <NUM> may repeatedly schedule the specific process using the delay time and/or the operation time. If the processor <NUM> does not drive the process, the current consumption of the processor <NUM> may be decreased, and thus the amount of heat generation of the processor <NUM> may be decreased.

According to certain embodiments of the disclosure, the process identification unit <NUM> may identify whether there is a controllable process among processes being driven. The controllable process may be a process which uses a system resource above a level determined in a background and which is not sensed by the user. For example, a controllable process may be determined as follows. A process related to a user interface (display, touchscreen, speaker, microphone, camera) may be a process that is sensed by the user, and may be considered an uncontrollable process being driven in a foreground. A process using music, a moving image, or a camera may also be a process being sensed by the user and considered an uncontrollable process being driven in the foreground. A process which uses the processor <NUM> for more than a predetermined time and above a predetermined level or a process in which data throughput continues for a predetermined time may be a controllable process, but whether to control such a process may be determined in accordance with the degree of heat generation of the electronic device <NUM>. A process receiving broadcast intents, system, virtual private network (VPN), launcher, call, multimedia messaging service (MMS), input to the electronic device <NUM>, or process related to development tools may be considered an uncontrollable process. The process identification unit <NUM> may transmit the controllable process to the process group configuration unit <NUM>.

By way of example, a controllable process may be a scheduled backup process or a scheduled process transferring data to the cloud.

The process group configuration unit <NUM> may receive the controllable process transmitted from the process identification unit <NUM>, and may configure a process group. A plurality of process groups may be configured in accordance with the degree of heat generation.

The delay time configuration unit <NUM>, process controller <NUM>, process identification unit <NUM>, and process group configuration unit <NUM> may be implemented by software (e.g., program <NUM>) including one or more instructions stored in a machine (e.g., electronic device <NUM>) readable storage medium (e.g., built-in memory <NUM> or external memory <NUM>).

<FIG> is a flowchart in accordance with functions of an electronic device according to certain embodiments of the disclosure.

Referring to <FIG>, an electronic device (e.g., electronic device <NUM> of <FIG>) may include a kernel driver <NUM>, an operating system framework <NUM>, and a kernel scheduler <NUM>.

The kernel driver <NUM> may control hardware (e.g., temperature sensor <NUM>). The kernel driver <NUM> may measure the temperature by controlling the temperature sensor <NUM>. For example, the kernel driver <NUM> may read the measured temperature by controlling the temperature sensor <NUM>, or may receive the temperature identified by and transferred from another module (e.g., communication processor). The temperature sensor <NUM> may be located around a constituent element having a large amount of heat generation in the electronic device <NUM>. If a plurality of temperature sensors <NUM> are provided, they may be located around a plurality of constituent elements of the electronic device <NUM>, respectively. The kernel driver <NUM> may transmit the measured temperature to a heat generation manager <NUM> of the operating system framework <NUM>.

The operating system framework <NUM> may include the heat generation manager <NUM>, a delay time configuration unit <NUM>, a process configuration unit <NUM>, a controllable process identification unit <NUM>, a process identification unit <NUM>, a processor usage rate check unit <NUM>, and a network throughput check unit <NUM>.

The heat generation manager <NUM> may determine the degree of heat generation of the electronic device <NUM> using the temperature transmitted from the temperature sensor <NUM>. If a plurality of temperature sensors <NUM> are provided, the heat generation manager <NUM> may receive information about a plurality of temperatures and measurement locations. The heat generation manager <NUM> may determine the degree of heat generation of the electronic device <NUM> based on at least parts of the plurality of temperatures.

If the plurality of temperature sensors <NUM> are provided, the heat generation manager <NUM> may receive the plurality of temperatures, and may determine the degree of heat generation of the electronic device <NUM> based on information about the locations where the received temperatures have been measured (e.g., antenna module, communication module, battery, or processor) and the at least parts of the plurality of temperatures.

The degree of heat generation may include a plurality of levels (or steps), and even a case having no heat generation may be included in the plurality of levels (e.g., level <NUM>). In the description, if the amount of heat generation is smaller than a threshold value, it may be considered as no heat generation.

The heat generation manager <NUM> may transmit the heat generation level corresponding to the degree of heat generation (or measured temperature) among the plurality of heat generation levels to the delay time configuration unit <NUM>. For example, if the measured temperature is 30C/86F to 40C/104F degrees, the heat generation manager <NUM> may transmit the heat generation level (e.g., level <NUM>) corresponding to the measured temperature to the delay time configuration unit <NUM>. The range of the respective levels may be configured in consideration of the constituent elements included in the electronic device <NUM>. For example, if the electronic device <NUM> includes constituent elements being sensitive to the temperature, the number of levels may be increased through subdivision of the levels. In certain embodiments, if the measured temperature is between 20C/68F and 30C/86F, the device is considered at level <NUM>.

The heat generation manager <NUM> may operate only in case that the heat generation manager <NUM> is notified of the existence of the controllable process from the controllable process identification unit <NUM>.

The disclosure, the delay time configuration unit <NUM> may configure (or determine) the delay time and/or the operation time of the processor. The delay time configuration unit <NUM> may configure the delay time and/or the operation time based on the heat generation level received from the heat generation manager <NUM>. The delay time configuration unit <NUM> may configure a long delay time in case of determining that the amount of heat generation of the electronic device <NUM> is large. In case of determining a large amount of heat generation, the delay time configuration unit <NUM> may configure a short operation time. The delay time configuration unit <NUM> may transmit the configured delay time and/or operation time to the process configuration unit <NUM>. The delay time and the operation time will be described in detail with reference to <FIG> below.

The process configuration unit <NUM> may configure the delay time and/or the operation time to be applied to the controllable process using the delay time and/or the operation time transmitted from the delay time configuration unit <NUM>.

The process identification unit <NUM> may identify the process being executed by the processor <NUM>. A plurality of processes may be identified to be under execution. The process identification unit <NUM> may transmit the identified process to the processor usage rate check unit <NUM>.

The processor usage rate check unit <NUM> may check the processor usage rate with respect to the respective processes transmitted by the process identification unit <NUM>. The processor usage rate check unit <NUM> may check (or identify) the process whose usage rate is larger than a first threshold value among the processes transmitted by the process identification unit <NUM>, and may transmit the checked process to the network throughput check unit <NUM>. Even the processes whose usage rates are smaller than the first threshold value may be transmitted to the network throughput check unit <NUM> for parallel identification of the network throughput. According to certain embodiments of the disclosure, the first threshold value may be determined in consideration of the performance of the process.

The network throughput check unit <NUM> may check the network throughput with respect to the respective processes transmitted by the processor usage rate check unit <NUM>. The network throughput check unit <NUM> may check (or identify) the process whose network throughput is larger than a second threshold value among the processes transmitted by the processor usage rate check unit <NUM>, and may transmit the checked process to the controllable process group configuration unit <NUM> and the controllable process identification unit <NUM>. According to certain embodiments of the disclosure, the second threshold value may be determined in consideration of the kind of the network (e.g., 4th generation (<NUM>), <NUM>, or wireless fidelity (WIFI)).

The controllable process identification unit <NUM> may identify whether a controllable process exists among the processes transmitted from the network throughput check unit <NUM>. If it is identified that the controllable process exists, the controllable process identification unit <NUM> may notify the heat generation manager <NUM> of the existence of the controllable process.

The kernel scheduler <NUM> may schedule the process (e.g., program <NUM> of <FIG>). The kernel scheduler <NUM> may include the process controller <NUM> and the controllable process group configuration unit <NUM>.

The process controller <NUM> may perform scheduling with respect to the controllable process group configured by the controllable process group configuration unit <NUM>. The process controller <NUM> may use the delay time and/or the operation time transmitted from the process configuration unit <NUM>.

The controllable process group configuration unit <NUM> may configure the controllable process group using the process transmitted from the network throughput check unit <NUM>. The controllable process group may be divided into a plurality of controllable process groups based on the first threshold value and/or the second threshold value. A plurality of controllable process groups may be provided in accordance with the first threshold value and/or the second threshold value, and some processes may be included in the plurality of controllable process groups.

The controllable process group may be a group distinguished to differently configure the delay time and the operation time during scheduling. For example, the first group may configure the delay time to <NUM> and the operation time to <NUM>, and the second group may configure both the delay time and the operation time to <NUM>. According to certain embodiments of the disclosure, the controllable process group may be a group which will apply the delay time and the operation time by levels during the scheduling. For example, the first group may be a process group to be applied in case that the first threshold value and the second threshold value are equal to or larger than <NUM>, and the second group may be a process group to be applied in case that the first threshold value and the second threshold value are equal to or larger than <NUM>.

<FIG> is a diagram illustrating processes scheduled by a process controller (e.g., process controller <NUM> of <FIG>) according to certain embodiments of the disclosure.

The process controller can set a certain time period, such as <NUM>. Excessive heat can be avoided by not executing controllable processes during a certain proportions of periods. When there is no heat generation, or heat generation is below a first threshold, the electronic device can be considered to be at Level <NUM> control. When the device is at Level <NUM>, no delay is imposed on control exclusion processes <NUM>, controllable processes <NUM>, and uncontrollable processes <NUM>. When the temperature of the electronic device is within a first range, the execution of controllable processes <NUM> can be skipped every other time period. When the temperature of the electronic device is within a second range, the execution of controllable processes <NUM> can be skipped two out of every three time periods.

Referring to <FIG>, the process may be divided into a control exclusion process <NUM>, a controllable process <NUM>, and an uncontrollable process <NUM>.

The control exclusion process <NUM> may be a process satisfying a predetermined condition or a process being not included in the controllable process <NUM> since the amount of heat generation of an electronic device (e.g., electronic device <NUM> of <FIG>) is small. For example, if the amount of heat generation of the electronic device <NUM> is small, the process which uses the processor (e.g., processor <NUM> of <FIG>) for more than a predetermined time and above a predetermined level or the process in which data throughput continues for a predetermined time may be included in the control exclusion process <NUM>.

Information about the control exclusion process <NUM>, the uncontrollable process <NUM>, and/or the controllable process <NUM> may be stored in a memory (e.g., memory <NUM> of <FIG>).

Parts of the control exclusion process <NUM>, the uncontrollable process <NUM>, and/or the controllable process <NUM> may be configured by a user, and a related user interface may be provided to the user.

The controllable process <NUM> may be a process satisfying the predetermined condition, and may be a process being subjected to the control due to a large amount of heat generation of the electronic device <NUM>. For example, if the amount of heat generation of the electronic device <NUM> is large, the process which uses the processor <NUM> for more than a predetermined time and above a predetermined level or the process in which data throughput continues for a predetermined time may be included in the controllable process <NUM>.

The uncontrollable process <NUM> may be a process being always scheduled regardless of the degree of heat generation of the electronic device <NUM>. According to certain embodiments of the disclosure, the uncontrollable process <NUM> may be a process related to the critical performance of the electronic device <NUM>. For example, a process receiving broadcast intents, system, virtual private network (VPN), launcher, call, multimedia messaging service (MMS), input to the electronic device <NUM>, or process related to development tools may be a process related to the critical performance of the electronic device <NUM>, and may be included in the uncontrollable process <NUM>. According to certain embodiments of the disclosure, the uncontrollable process <NUM> may be a process sensitive to the user's sensible performance or a process being driven in the foreground. For example, a process related to a user interface may be a process being driven in the foreground, and a process using music, a moving image, or a camera may be a process sensitive to the user's sensible performance, so that the process related to the user interface and the process using the music, moving image, or camera may be included in the uncontrollable process <NUM>.

The control exclusion process <NUM> and the uncontrollable process <NUM> may not be distinguished from each other, and for example, the uncontrollable process <NUM> may be included in the control exclusion process <NUM>, or the control exclusion process <NUM> may be included in the uncontrollable process <NUM>.

The control exclusion process <NUM> and the uncontrollable process <NUM> may not be processes capable of configuring the delay time and/or the operation time, but the controllable process <NUM> may be a process capable of configuring the delay time and/or the operation time. <FIG> shows processes differently scheduled in accordance with the degree of heat generation of the electronic device <NUM>. That is, (a) to (c) of <FIG> distinguishably show the degrees of heat generation as no heat generation, first heat generation, and second heat generation.

In (a) of <FIG> shows a case of no heat generation, and level <NUM> control may be performed. At the level <NUM> control, all of the control exclusion process <NUM>, the controllable process <NUM>, and the uncontrollable process <NUM> may be scheduled without the delay time.

In (b) of <FIG> shows a first heat generation state, and level <NUM> control may be performed. At the level <NUM> control, the control exclusion process <NUM> and the uncontrollable process <NUM> may be scheduled without the delay time, and the controllable process <NUM> may be scheduled through applying of predetermined delay time (e.g., <NUM>) and operation time (e.g., <NUM>). According to certain embodiments of the disclosure, the electronic device <NUM> may perform scheduling by repeatedly applying the delay time and the operation time.

In (c) of <FIG> shows a second heat generation state, and level <NUM> control may be performed. At the level <NUM> control, in the same manner as the level <NUM> control, the control exclusion process <NUM> and the uncontrollable process <NUM> may be scheduled without the delay time, and the controllable process <NUM> may be scheduled through applying of predetermined delay time (e.g., <NUM>) and operation time (e.g., <NUM>). <FIG> corresponds to a case that the amount of heat generation of the first heat generation is smaller than the amount of heat generation of the second heat generation, and the delay time of the level <NUM> control may be shorter than the delay time of the level <NUM> control.

According to certain embodiments of the disclosure, the electronic device <NUM> may perform the level <NUM> control in accordance with the second heat generation, and if the amount of heat generation is decreased, the electronic device <NUM> may perform the level <NUM> control.

<FIG> is a flowchart of an electronic device according to an embodiment of the disclosure.

At operation <NUM>, the electronic device (e.g., electronic device <NUM> of <FIG> or processor <NUM> of the electronic device) may identify the temperature measured using the temperature sensor (e.g., temperature sensor <NUM> of <FIG>). The temperature measured using the temperature sensor <NUM> may be the temperature (e.g., maximum temperature) of the electronic device <NUM>. In case that a plurality of temperature sensors <NUM> are provided, the electronic device <NUM> may determine the temperature of the electronic device <NUM> based on a plurality of temperatures.

At operation <NUM>, the electronic device <NUM> may determine whether the identified temperature is higher than a predetermined temperature. The predetermined temperature may be a temperature corresponding to the degree of heat generation of the electronic device <NUM>. A plurality of predetermined temperatures may be prepared in accordance with the degree of heat generation of the electronic device <NUM>. The electronic device <NUM> may determine the degree of heat generation through comparison of the identified temperature with the predetermined temperature.

If the identified temperature is higher than the predetermined temperature, the electronic device <NUM>, at operation <NUM>, may determine whether at least one process operating in a background satisfies a predetermined condition. The electronic device <NUM> may determine whether to satisfy the predetermined condition with respect to all processors operating in the background. The predetermined condition may be a condition that the process uses the system resource above a predetermined level in the background and/or the process is not sensitive to the user's sensible performance. For example, the process related to the user interface may be a process sensitive to the user's sensible performance, and may be a process which is driven in the foreground and which does not satisfy the predetermined condition. The process using the music, moving image, or camera may also be a process sensitive to the user's sensible performance, and may be a process which is driven in the foreground and which does not satisfy the predetermined condition. As another example, the process which uses the processor <NUM> for more than a predetermined time and above a predetermined level or the process in which data throughput continues for a predetermined time may be the process which satisfies the predetermined condition. The process receiving broadcast intents, system, virtual private network (VPN), launcher, call, multimedia messaging service (MMS), input to the electronic device <NUM>, or process related to development tools may be the process which does not satisfy the predetermined condition.

If the identified temperature is lower than the predetermined temperature, the electronic device <NUM> may determine that the amount of heat generation is small, schedule all the processes being executed, and re-perform the operation <NUM> and the subsequent operations.

If at least one process operating in the background satisfies the predetermined condition, the electronic device <NUM>, at operation <NUM>, may drive the at least one process for only a proportion of time periods and not driving the at least one process during a remaining number of time periods, wherein the process is not executed during a first number of time periods having a first time, and executed for a second number of time periods having a second time. In case that a plurality of predetermined conditions are provided, the electronic device <NUM> may differently schedule the delay time and the operation time by processes satisfying the respective conditions.

According to certain embodiments of the disclosure, if there is not the process satisfying the predetermined condition among the processes operating in the background, the electronic device <NUM> may schedule all the processes being executed, and re-perform the operation <NUM> and the subsequent operations.

According to certain embodiments of the disclosure, the electronic device <NUM> may repeatedly perform the operation <NUM>. The electronic device <NUM> may perform the operation <NUM> for a predetermined time, or may perform the operation <NUM> until the measured temperature is lowered to the predetermined temperature. The electronic device <NUM> may re-perform the operation <NUM> and the subsequent operations.

<FIG> and <FIG> are a flowchart of an electronic device according to another embodiment of the disclosure.

At operation <NUM>, the electronic device (e.g., electronic device <NUM> of <FIG> or processor <NUM> of the electronic device) may identify the process being executed in the background.

At operation <NUM>, the electronic device <NUM> may determine whether there is the process in which the usage rate of the processor <NUM> is equal to or larger than the first threshold value among the processes identified to be executed in the background. If there is not the process in which the usage rate of the processor <NUM> is equal to or larger than the first threshold value among the processes identified to be executed in the background, the electronic device <NUM>, at operation <NUM>, may determine whether there is the process whose network throughput is equal to or larger than the second threshold value among the processes identified to be executed in the background. If there is not the process in which the usage rate of the processor <NUM> is equal to or larger than the first threshold value or whose network throughput is equal to or larger than the second threshold value, the electronic device <NUM> may schedule all the processes being executed, and re-perform the operation <NUM> and the subsequent operations.

At operation <NUM>, the electronic device <NUM> may determine whether there is the process whose network throughput is equal to or larger than the second threshold value. If there is not the process whose network throughput is equal to or larger than the second threshold value, the electronic device <NUM> may schedule all the processes being executed, and re-perform the operation <NUM> and the subsequent operations.

In <FIG>, the network throughput is compared with the second threshold value after the usage rate of the processor is compared with the first threshold value, but the comparison operations are not limited thereto. According to certain embodiments of the disclosure, the electronic device <NUM> may compare only the usage rate of the processor with the first threshold value, or may compare the network throughput with the second threshold value. For example, if the usage rate of the processor is equal to or larger than the first threshold value among the processes identified to be executed in the background, the electronic device <NUM> may perform operation <NUM>. Further, if the network throughput of the process is equal to or larger than the second threshold value among the processes identified to be executed in the background, the electronic device <NUM> may perform the operation <NUM>. According to certain embodiments, the operation <NUM> (comparison of the usage rate of the processor with the first threshold value) and the operation <NUM> (comparison of the network throughput with the second threshold value) may be independently performed, one of the operation <NUM> and the operation <NUM> may be omitted, or the performing order of the operation <NUM> and the operation <NUM> may be changed.

According to certain embodiments of the disclosure, at operation <NUM>, the electronic device <NUM> may determine whether there is the uncontrollable process or the control exclusion process among the processes in which the usage rate of the processor <NUM> is equal to or larger than the first threshold value or whose network throughput is equal to or larger than the second threshold value. The uncontrollable process may be the process sensitive to the user's sensible performance, and may be the process which should always be scheduled regardless of the degree of heat generation of the electronic device <NUM>. For example, the process related to the user interface and the process using the music, moving image, or camera may be included in the uncontrollable process. The control exclusion process (e.g., control exclusion process <NUM> of <FIG>) may be the process satisfying the predetermined condition, or the process which is not included in the controllable process <NUM> since the amount of heat generation of the electronic device (e.g., electronic device <NUM> of <FIG>) is small.

According to certain embodiments of the disclosure, if a plurality of processes excluding the uncontrollable process or the control exclusion process are provided among the processes in which the usage rate of the processor <NUM> is equal to or larger than the first threshold value or whose network throughput is equal to or larger than the second threshold value, they may be managed as a process group.

According to certain embodiments of the disclosure, in case that a plurality of first and second threshold values are configured, a plurality of process groups may be configured and managed.

According to certain embodiments of the disclosure, at operation <NUM>, the electronic device <NUM> may identify the temperature of the electronic device <NUM>. For example, the electronic device <NUM> may measure the temperature of an internal configuration (antenna module <NUM> or communication module <NUM> of <FIG>) of the electronic device using the temperature sensor (e.g., temperature sensor <NUM> of <FIG>). The electronic device <NUM> may identify the heat generation level corresponding to the measured temperature.

According to certain embodiments of the disclosure, at operation <NUM>, the electronic device <NUM> may determine whether the heat generation level is level <NUM> heat generation based on the temperature identified at operation <NUM>. For example, the level <NUM> heat generation may be the level of no heat generation.

According to certain embodiments of the disclosure, if the heat generation level is the level <NUM> heat generation, the electronic device <NUM>, at operation <NUM>, may perform the level <NUM> control with respect to the process that is not uncontrollable at operation <NUM>. For example, the level <NUM> control may be the control for the electronic device <NUM> to schedule all the processes being executed without the delay time. The electronic device <NUM> may schedule the processes excluding the uncontrollable process or the control exclusion process without the delay time among the processes in which the usage rate of the processor <NUM> is equal to or larger than the first threshold value or whose network throughput is equal to or larger than the second threshold value.

According to certain embodiments of the disclosure, at operation <NUM>, the electronic device <NUM> may determine whether the heat generation level is the level <NUM> heat generation based on the temperature identified at operation <NUM>. For example, the level <NUM> heat generation may be the heat generation level which has a larger amount of heat generation than the level <NUM> heat generation, but which has a smaller amount of heat generation than the level n heat generation.

According to certain embodiments of the disclosure, if the heat generation level is the level <NUM> heat generation, the electronic device <NUM>, at operation <NUM>, may perform the level <NUM> control. For example, the level <NUM> control may be the control for the electronic device <NUM> to make the delay time and the operation time equal to each other during scheduling of the process. The electronic device <NUM> may schedule the process excluding the uncontrollable process or the control exclusion process through making the delay time and the operation time equal to each other among the processes in which the usage rate of the processor <NUM> is equal to or larger than the first threshold value or whose network throughput is equal to or larger than the second threshold value.

According to certain embodiments, at operation <NUM>, the electronic device <NUM> may schedule the process through making the delay time shorter than the operation time during the scheduling of the process.

According to certain embodiments of the disclosure, at operation <NUM>, the electronic device <NUM> may determine whether the heat generation level is the level n heat generation based on the temperature identified at operation <NUM>. For example, the level n heat generation may be the heat generation level having the largest amount of heat generation.

According to certain embodiments of the disclosure, at operation <NUM>, the electronic device <NUM> may perform the level n control in case that the heat generation level is the level n heat generation. For example, the level n control may be the control for the electronic device <NUM> to make the delay time longer than the operation time during the scheduling of the process. The electronic device <NUM> may schedule the process excluding the uncontrollable process or the control exclusion process through making the delay time longer than the operation time among the processes in which the usage rate of the processor <NUM> is equal to or larger than the first threshold value or whose network throughput is equal to or larger than the second threshold value.

It should be appreciated that certain embodiments of the present disclosure and the terms used therein are not intended to limit the technological features set forth herein to particular embodiments and include various changes, equivalents, or replacements for a corresponding embodiment.

Certain embodiments as set forth herein may be implemented as software (e.g., the program <NUM>) including one or more instructions that are stored in a storage medium (e.g., internal memory <NUM> or external memory <NUM>) that is readable by a machine (e.g., the electronic device <NUM>).

According to an embodiment, a method according to certain embodiments of the disclosure may be included and provided in a computer program product.

Claim 1:
An electronic device (<NUM>) comprising:
a temperature sensor (<NUM>, <NUM>, <NUM>); and
a processor (<NUM>) configured to schedule a plurality of processes within a plurality of time periods,
wherein the processor (<NUM>) is further configured to:
detect that a temperature of the electronic device (<NUM>) exceeds a predetermined temperature;
configure a plurality of process groups including a first process group and a second process group, wherein the first process group comprises at least one process that satisfies a predetermined condition, and the second process group comprises at least one process that does not satisfy the predetermined condition; and
when the temperature exceeds the predetermined temperature:
run the at least one process of the first process group within first time periods of the plurality of time periods that are scheduled as operation times for the at least one process of the first process group and not run the at least one process of the first process group within second time periods of the plurality of time periods that are scheduled as delay times for the at least one process of the first process group, and
run the at least one process of the second process group within each of the plurality of time periods.