Dormancy of computing device with faulty battery
By recording user preferences and task performance, calculating the penalty score of the task, and controlling the task to enter sleep or sleep mode according to the battery power allocation threshold, the problem of difficulty in effectively managing the sleep and sleep of computing devices under critical battery conditions is solved, and effective savings in battery power consumption and extended battery life are achieved.
Patent Information
- Application Number
- CN202380070627.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-10-04
- Filing Date
- 2023-09-25
- Publication Date
- 2025-05-13
AI Technical Summary
The prior art is difficult to effectively manage the sleep and sleep mode of computing devices under critical battery conditions, resulting in the inability to effectively save battery power consumption.
By recording user preferences and task performance, the task's penalty score is calculated and the task is controlled to enter sleep or sleep mode based on the battery power allocation threshold. This approach takes into account the user's current use of hardware resources and battery health, dynamically adjusting sleep and sleep options.
It realizes intelligent selection of sleep or sleep mode under critical battery conditions, effectively saving battery power, extending the life of the battery charging cycle, and providing a unified experience for different devices and usage modes.
Smart Images

Figure CN119998759A_ABST
Abstract
Description
Background Art
[0001] The present invention relates generally to computer battery management, and more particularly to battery management associated with the hibernation process of a computer device.
[0002] Hibernation is a mode in which a computer is turned off, but its state is saved to continue when it is turned on again. Hibernation is the process of migrating the state of active processes from voltage storage devices to non-volatile storage devices. This is helpful in continuing the computing process to resume the process. Hibernation of processes is used to effectively manage computing device power consumption. Sleep mode, sometimes called standby or suspend mode, is a power saving state that a computer can enter when not in use. The state of the computer is maintained in RAM (random access memory).
[0003] Sleep mode stores the documents and files you are working on into RAM, using a small amount of power in the process. Hibernate mode essentially does the same thing, but saves the information to your hard drive, which allows your computer to shut down completely and use no energy. Sleep mode will put the state of the process into memory, which will resume faster than hibernation.
[0004] In critical battery conditions, hibernation or sleep mode would be a better choice rather than shutting down the computing device because the device can easily fall back to a previous active state. Summary of the invention
[0005] According to one aspect, a computer-implemented method for selecting tasks for hibernation on a battery comprising a computing device is provided, comprising: recording a user preference for tasks that have no penalty for hibernation and sleep; assigning a threshold value to battery power at which a task is selected for at least one of hibernation and sleep, wherein assigning the threshold value to battery power includes considering a user's current use of hardware resources and battery health by battery segment; determining a penalty score for the task based on the user preference for the task that has no penalty and task performance, the task performance including at least one of utilization frequency, memory utilization, task dependency characteristics, and task memory hierarchy, wherein the penalty performance is a value that includes both the user preference and the task performance; and controlling the task to be placed in at least one of a hibernation mode and a sleep mode indicated by its penalty performance during the threshold value of battery power.
[0006] According to another aspect, a system for selecting tasks for hibernation on a battery comprising a computing device is provided, comprising: a hardware processor; and a memory storing a computer program product, which, when executed by the hardware processor, causes the hardware processor to: record a user preference for tasks that have no penalty for hibernation and sleep; assign a threshold to battery power at which a task is selected for at least one of hibernation and sleep, wherein assigning the threshold to battery power includes considering a user's current use of hardware resources and battery health by battery segment; determine a penalty score for the task based on the user preference for the task that has no penalty and task performance, the task performance including at least one of utilization frequency, memory utilization, task dependency characteristics, and task memory hierarchy, wherein the penalty performance is a value that includes both the user preference and the task performance; and control the task to be placed in at least one of a hibernation mode and a sleep mode indicated by its penalty performance during the threshold of battery power.
[0007] According to another aspect, a computer program product for selecting tasks for hibernation on a battery comprising a computing device is provided, comprising a computer-readable storage medium having computer-readable program code embodied therein, the program instructions being executable by a processor to cause the processor to: record, using the processor, a user preference for tasks that have no penalty for hibernation and sleep; assign, using the processor, a threshold for battery power at which a task is selected for at least one of hibernation and sleep, wherein assigning the threshold for battery power includes considering a user's current use of hardware resources and battery health by battery segment; determine, using the processor, a penalty score for the task based on the user preference for tasks that have no penalty and task performance, the task performance including at least one of utilization frequency, memory utilization, task dependency characteristics, and task memory hierarchy, wherein the penalty performance is a value that includes both the user preference and the task performance; and control, using the processor, the task to be placed in at least one of a hibernation mode and a sleep mode indicated by its penalty performance during the threshold of battery power.
[0008] According to an embodiment of the present invention, a computer-implemented method for selecting tasks for hibernation on a battery including a computing device is provided. In one embodiment, the computer-implemented method records a user preference for tasks that have no penalty for hibernation and sleep. The method also assigns a threshold value for battery power at which tasks are selected for at least one of hibernation and sleep. Assigning a threshold value for battery power may include considering the user's current use of hardware resources and battery health by battery segment. The computer-implemented method may then determine a penalty score for the task based on the user preference for tasks that have no penalty and the task performance, the task performance including at least one of utilization frequency, memory utilization, task dependency characteristics, and task memory hierarchy, wherein the penalty performance is a value that includes both the user preference and the task performance. Then, during the assigned threshold value of battery power, the task is placed in at least one of a hibernation mode and a sleep mode indicated by its penalty performance.
[0009] According to another embodiment of the present invention, a system for selecting tasks for hibernation on a battery including a computing device is provided. In one embodiment, the system includes a hardware processor; and a memory storing a computer program product. When executed by the hardware processor, the computer program product causes the hardware processor to record a user preference for tasks that have no penalty for hibernation and sleep, and to allocate a threshold for battery power at which a task is selected for at least one of hibernation and sleep. Assigning a threshold for battery power may include considering a user's current use of hardware resources and battery health by battery segment. The computer program product also employs a hardware processor to determine a penalty score for a task based on a user preference for tasks that have no penalty and task performance, the task performance including at least one of utilization frequency, memory utilization, task dependency characteristics, and task memory hierarchy. The penalty performance is a value that includes both user preferences and task performance. The computer program product also employs a hardware processor to control a task to be placed in at least one of a hibernation mode and a sleep mode indicated by its penalty performance during the allocated threshold of battery power.
[0010] According to an embodiment of the present invention, a computer program product for selecting tasks for dormancy on a battery including a computing device is provided, which includes a computer-readable storage medium having a computer-readable program code embodied therein. The program instructions are executable by a processor. The program instructions cause a hardware processor to record a user preference for tasks that have no penalty for dormancy and sleep, and to allocate a threshold for battery power, at which a task is selected for at least one of dormancy and sleep. Assigning a threshold for battery power may include considering the user's current use of hardware resources and battery health by battery segment. The computer program product may also include instructions for a hardware processor to determine a penalty score for a task based on a user preference for tasks that have no penalty and task performance, the task performance including at least one of utilization frequency, memory utilization, task dependency characteristics, and task memory hierarchy. The penalty performance is a value that includes both user preferences and task performance. The computer program product also uses a hardware processor to control a task to be placed in at least one of a dormancy mode and a sleep mode indicated by its penalty performance during the allocated threshold of battery power.
[0011] These and other features and advantages will become apparent from the following detailed description of illustrative embodiments of the invention, which is to be read in connection with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Preferred embodiments of the present invention will now be described, by way of example only, with reference to the following drawings:
[0013] Figure 1 is an illustration of an example environment / application of a system for intelligent hibernation of a computing device with a failed battery.
[0014] Figure 2 One embodiment of an exemplary plot of battery cell discharge voltages employed in operation of a battery of a computing system is shown.
[0015] Figure 3 is a flow chart / block diagram of one embodiment of a system for intelligent hibernation of a computing device with a failed battery according to one embodiment of the present disclosure.
[0016] Figure 4 is a flow chart / block diagram of a computer-implemented method of providing intelligent hibernation of a computing device having a failed battery according to one embodiment of the present disclosure.
[0017] Figure 5 A table showing one example of tasks with penalties assigned for dependencies on other tasks.
[0018] Figure 6 A table of one example tasks is shown with a total of scores for the population of tasks being monitored for sleep and / or hibernation.
[0019] Figure 7 A table showing one example of a task having a total sum of penalties for the tasks monitored for sleep and / or hibernation.
[0020] Figure 8 It is a diagram showing that an embodiment according to the present disclosure may include Figure 2 A block diagram of a system for intelligent hibernation of a computing device with a failed battery is depicted in FIG.
[0021] Fig. 9 A computing environment according to an embodiment of the present disclosure is depicted. DETAILED DESCRIPTION
[0022] The methods, systems, and computer program products described herein relate to intelligent hibernation of computing devices with faulty batteries. Forced hibernation under critical battery conditions is a common practice, and the hibernation process is usually initiated very close to the battery being completely depleted. Although existing power management systems consider hibernation / sleep of jobs to save battery consumption, they do not consider damaged battery segments and provide a unified experience to different devices and different usage patterns. What is needed is an intelligent way to select the point and method of hibernation based on the use of the computing device rather than waiting for the battery to be depleted. It has been determined that there is a need for a system that can save battery power, thereby providing the greatest degree of user satisfaction, and providing a unified experience for different devices and usage patterns. Part of the method is to assign a threshold to the battery power and then control the task when the threshold is met. The threshold can be established by considering the battery segment health and the user's current resource usage. Battery segment health can take into account the age and condition of the battery. For example, an old battery can include segments that release its power much faster than a new battery. Turning to the user's current resource usage, some applications can take more hardware usage than other resources, such as hardware processors and memory. For example, a game on a computer with high graphics requirements can use more resources than a device used for general Internet browsing. Using the above method to assign thresholds can save battery power, thereby providing maximum user satisfaction and providing a unified experience for different devices and usage modes.
[0023] According to one or more embodiments, the present disclosure provides a method in which processes are intelligently hibernated and overall battery consumption is efficiently utilized.
[0024] Reference now Figure 1-9 Methods, systems, and computer program products are described in more detail.
[0025] Figure 1 An example environment / application of a system for intelligent hibernation of a computing device with a failed battery is shown. Figure 2One embodiment of an exemplary plot of battery cell discharge voltages employed in operation of a battery of a computing system is shown. Figure 3 One embodiment of a system for intelligent hibernation of a computing device with a failed battery is shown. Figure 4 One embodiment of a flow chart / block diagram of a computer-implemented method of providing intelligent hibernation of a computing device having a failed battery is shown.
[0026] Various aspects of the present invention are described herein with reference to the flow chart and / or block diagram of the method, device (system) and computer program product according to embodiments of the present invention. It will be understood that each frame of the flow chart and / or block diagram and the combination of frames in the flow chart and / or block diagram can be implemented by computer-readable program instructions.
[0027] These computer-readable program instructions can be provided to a processor of a computer or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can guide the computer, programmable data processing device and / or other equipment to work in a specific manner, so that the computer-readable storage medium having the instructions stored therein includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes of the flowchart and / or block diagram.
[0028] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes of the flowchart and / or block diagram.
[0029] Flowcharts and block diagrams in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present invention.In this regard, each frame in the flow chart or block diagram can represent a module, segment or part of an instruction, which includes one or more executable instructions for realizing the specified logical function.In some alternative embodiments, the function noted in the frame may not occur in the order noted in the figure.For example, two frames shown continuously can actually be implemented as a step, and are performed simultaneously, substantially simultaneously, in a partially or entirely time-overlapping manner, or these frames can sometimes be performed in reverse order, depending on the function involved.It will also be noted that the combination of the frames in each frame of the block diagram and / or flow chart illustration and the block diagram and / or flow chart illustration can be implemented by a dedicated hardware-based system that performs a specified function or action or performs a combination of special-purpose hardware and computer instructions.
[0030] Figure 1 An example environment is shown in which a system 100 for intelligent hibernation of a computing device works with a computing device to select an application for hibernation and / or sleep. The hibernation system 100 may be cloud-based 11. A user 12 may interact with the intelligent hibernation system 100 of a computing device to identify what tasks they would prefer (e.g., tasks with reference numbers T1, T2, T3, T4, T5, T6, T7, T8, and T9) not to be placed in a hibernation and / or sleep mode as a preference for a battery 13a, 13b of a computing device 14. The intelligent hibernation system 100 of a computing device may select a hibernation / sleep task based on a penalty assigned to the task, which is based on utilization frequency, current memory utilization, dependency on other jobs, and presence in a memory hierarchy (ease of recovery). This also takes into account the user preferences initially input into the system. When battery power is reduced from full capacity 13a to low capacity 13b, the system 100 places the task in sleep and / or hibernation during a threshold period, such as threshold 1, threshold 2, and threshold 3, according to user preferences and the penalty assigned by the hibernation system 100.
[0031] Figure 2 An example of how a typical battery voltage depletes is shown. Figure 2 The curve 15 depicted in FIG. 1 shows an example of the time taken for a battery to discharge from 100% to 0%. This data is usually recorded by a battery monitoring chip, such as a battery fuel gauge, which serves as an interface between the battery and the computing device. The battery monitoring chip can continuously monitor the voltage and current provided by the battery.
[0032] Figure 2A battery producing 1.34V is shown. This state of the battery is referred to as 100%. Producing 1V is considered 0%. In this example, 1V is the minimum voltage required for the computing device to work. The battery monitoring chip assumes that the total capacity of the battery does not change much between each charge and discharge cycle. Therefore, by tracking the amount of voltage used for each discharge, it is easy to calculate how much time is left. If the battery is completely in a damaged state, then Figure 2 The curve graph shown in will drop sharply. This results in a sharp decrease in performance level, for example: the battery drops sharply from 30% to 0%. Historical data will also be obvious in the process of identifying such battery percentage segments, that is, battery damage segments.
[0033] In some embodiments, the methods and systems of the present disclosure improve battery utilization by taking into account a dynamic penalty based approach and the rate of change of battery utilization, based on the idle application hibernation / sleep process of the process.
[0034] Figure 3 1 is a flow chart / block diagram of one embodiment of a system 100 for intelligent hibernation of a computing device with a failed battery. The system 100 includes a user preference 37 interface. The user preference interface is a mechanism by which a user 12 can identify to the system which tasks the user does not want to select in hibernation and sleep modes. These tasks are referred to as zero penalty tasks. The terms task and job are interchangeable in this disclosure because they both refer to some applications that may include computer computations and may require the use of battery power to provide their functionality.
[0035] The system 100 for intelligent dormancy of a computing device with a faulty battery may include a penalty calculator 30 that implements an algorithm for assigning penalties to jobs based on up to four points. For example, the penalty calculator 30 may consider utilization frequency. Considering utilization frequency, the penalty calculator 30 may increase the penalty when the frequency of the process decreases. Utilization frequency may be the first point at which the penalty calculator 30 may calculate a penalty. The second point may be memory utilization. When a process has an increased memory usage, the penalty of the process calculated by the penalty calculator increases. The third point that the penalty calculator 30 considers when calculating the penalty is the dependency of the process on other jobs (e.g., other processes). For example, spell checking is a job that is a dependent job when a word processing document is being edited. The penalty calculated based on job dependency increases as the dependent jobs decrease. Dependent job memory utilization also affects the penalty of the job calculated by the penalty calculator 30. The fourth point that the penalty calculator 30 considers is the ease of restoring jobs and / or processes. For example, jobs in a higher level cache are more easily restored. As the ease of restoration decreases, the penalty increases. In some embodiments, additional base penalties are introduced for the jobs in each of the above points for calculating penalties. As the points progress, the base penalty decreases. The fifth point can be a list of zero-penalty user preference jobs. These are the tasks that are considered zero-penalty tasks.
[0036] The system 100 for intelligent hibernation of a computing device with a faulty battery also includes a job status collector 31, which collects the status of jobs at a separate slab level. "Slab level" is how the battery life of the job being processed is characterized. For example, the battery life can be characterized as slabs, such as 1) 100%-61% battery life, 2) 60% to 46% battery life, 3) 45% to 31% battery life, 4) 30% to 16% battery life, and 5) 15% to 0% battery life. At each slab level, some jobs are assigned different penalties by the penalty calculator 30, and some slabs have zero penalty levels, which are characterized as zero penalty level jobs. Slabs with zero penalty levels are not considered for hibernation. The number of jobs in the zero penalty job list 31 recorded by the job status collector 31 decreases as the number of slabs advances toward 0%. If the battery life is about to run out, the probability that the job does not need to hibernate / sleep decreases. Similarly, a certain number of CPU frequency cycles can always be used to solve zero penalty tasks that are not considered hibernation / sleep. Kernel 32 is a computer program at the core of the computer's operating system that facilitates interaction between hardware and software components. In this example, kernel 32 provides CPU frequency cycles to job status collector 31 to consider how to resolve zero penalty jobs, i.e. jobs that do not require sleep / sleep modes.
[0037] Still reference Figure 3, the system 100 for intelligent hibernation of a computing device with a faulty battery also includes a hibernation / sleep system 34. The hibernation / sleep system 34 considers the penalty calculated by the penalty calculator 30 for the job that has been identified by the job status collector 31 as not having the possibility of hibernation / sleep eliminated, and compares the penalty with a threshold for determining whether to select the job for hibernation / sleep in the current battery tile. The hibernation / sleep system 34 also considers the preferences of the user 12, such as the presence of zero-penalty tasks.
[0038] The thresholds are set by the threshold calculator 35. The threshold calculator 35 starts with battery life categories, such as battery life characterized in blocks such as 1) 100%-61% battery life, 2) 60% to 46% battery life, 3) 45% to 31% battery life, 4) 30% to 16% battery life, and 5) 15% to 0% battery life. The threshold calculator 35 sets the idle start to the battery percentage from when the device is idle. When a computer processor is not being used by any program, it is described as "idle". Each program or task running on a computer system takes a certain amount of processing time on the CPU. If the CPU has completed all tasks, it is idle. Modern processors use idle time to save power. "Idle start" is the time when the computer enters an idle state. Idle start is reset at each change from an active phase to an inactive phase.
[0039] Considering the above situation, the threshold calculator 35 sets the threshold using the following equation (1):
[0040] (1) Basic threshold = remaining total time (x) / dynamic quotient (y)
[0041] The variable "Total Time Remaining (x)" is the time remaining to complete battery depletion.
[0042] The variable "Dynamic Quotient (y)" is Delta (ie, time / percent)*plate constant (ie, percentage). Delta is the time rate of change per battery percentage.
[0043] The plate constant is equal to the default plate percentage + (((battery damage segment end - battery damage segment start) * default plate percentage) / 100). The default plate percentage is the percentage increase for each plate advance. From the above relationship, the first threshold (FT), the second threshold (ST), and the third threshold (TT) can be calculated as follows:
[0044] (2) Total time for battery upgrading = 7x / 4y (FT+ST+TT=x / y+x / 2y+x / 4y)
[0045] The first threshold (FT) is equal to the basic threshold, and the second threshold (ST) and the third threshold (TT) are calculated according to the following relationship:
[0046] (3) Second threshold (ST) = 0.5*basic threshold
[0047] (4) The third threshold (TT) = 0.25*basic threshold.
[0048] From equations (1)-(4), the first, second, and third thresholds may be calculated. The thresholds may be established taking into account battery segment health (battery damage segment end - battery damage segment start) and the user's current resource usage. Battery segment health may take into account the age and condition of the battery. For example, an old battery may include segments that release its power much faster than a new battery.
[0049] For the user's current resource usage, some applications may employ more hardware usage, such as hardware processor and memory, than others. For example, a game on a computer with high graphics requirements may use more resources than a device used for general Internet browsing. Assigning thresholds that take into account both battery segment health and the user's current state of resource usage can save battery power, providing a unified experience for different devices and usage patterns.
[0050] The process for hibernation / sleep is selected by the hibernation / sleep system 34 based on a threshold value.
[0051] For example, for the first threshold, jobs with 50% total penalty will be put to sleep, and jobs will be selected based on penalty (jobs with higher penalties will be considered more than jobs with lower penalties). Jobs with the next 25% penalty will be put to sleep. A certain amount of CPU frequency will also be throttled to save power consumption of the CPU.
[0052] For the second threshold, all sleeping jobs are hibernated, and the remaining jobs with non-zero penalties are put to sleep. A certain amount of CPU frequency will also be suppressed to save CPU power consumption.
[0053] For the third threshold, all jobs in sleep mode are hibernated. In some embodiments, a certain amount of CPU frequency will also be suppressed to save power consumption of the CPU.
[0054] Figure 3 The system 100 shown also includes a timer 36 that can time battery and computer usage, and an interface 37. The interface 37 provides a preference that the user will have to selectively / periodically select jobs in order to prioritize jobs that are to be left out of sleep / hibernation. These jobs will be reduced as the battery is consumed.
[0055] Still reference Figure 3, the sleep / hibernation system 34 may also include a user device interface / output 38 that provides a connection between the mobile device 14 running the task and the smart sleep 100 for the computing device with a failed battery. Through this interface, the system 100 can provide instructions on what jobs / tasks can be put to sleep / hibernation at different thresholds. It should also be noted that the system 100 includes a user device interface / output 38 for incorporation into a larger system (e.g. Figure 8 1. Bus 102 in (as depicted in ).
[0056] Figure 4 A computer-implemented method of providing intelligent hibernation of a computing device having a failed battery. Figure 4 The method described in can start from block 1. Block 1 includes calculating the first, second and third thresholds. The thresholds can be calculated by the threshold calculator 35 of the system 100 for intelligent hibernation of computing devices with faulty batteries. As described above, the inputs for calculating the thresholds can include "total time remaining (x)", which is the time remaining to complete battery depletion, and the time rate of change of each battery percentage (called Delta). Another input for calculating the threshold can be a plate constant. The plate constant is calculated based on the default plate percentage and the battery damage segment in a given plate. As for Figure 3 As described by the threshold calculator of , the above inputs are used to calculate the first, second and third thresholds at block 1 using equations (1)-(4).
[0057] At Block 2, the method may continue by determining a job penalty for activating the sleep / hibernation mode. Figure 4 Block 2 can use at least 4 factors to determine the penalty. Figure 4 In the example shown, the penalty is calculated based on five factors. The five factors may include (1) frequency of use, (2) memory use, (3) the dependency of the job on another job, (4) ease of recovering jobs and / or processes, and (5) user preference for zero-penalty jobs. Zero-penalty jobs are jobs that are not considered for hibernation / sleep. As described above, users 12 can input tasks that they do not wish to enter hibernation and sleep modes.
[0058] exist Figure 4 At block 3, the method may continue to determine whether a first threshold has been reached for the current tile.
[0059] If the first threshold is not met at Block 3 , the method loops back to Block 2 for the next tile and the determination that the first threshold is met is again considered at Block 3 .
[0060] For the first threshold being met at block 3, the method continues to block 4 where jobs with 50% of the total penalty will be put to sleep, and jobs will be selected based on penalty (jobs with higher penalties will be given more consideration than jobs with lower penalties). Jobs with the next 25% penalty will be put to sleep. A certain amount of CPU frequency will also be throttled to save power consumption of the CPU.
[0061] At block 5, the method may continue to determine whether a second threshold has been reached for the current tile.
[0062] If the second threshold is not met at Block 5 , the method loops back to Block 4 for the next tile and the determination that the second threshold is met is again considered at Block 5 .
[0063] For the first threshold being met at block 5, the method continues to block 6 where all sleeping jobs are hibernated and the remaining jobs with non-zero penalties are put to sleep. A certain amount of CPU frequency will also be suppressed to save power consumption of the CPU.
[0064] At block 7 , the method may continue to determine whether a third threshold has been reached for the current tile.
[0065] If the third threshold is not met at Block 7 , the method loops back to Block 6 for the next tile and the determination that the second threshold is met is again considered at Block 7 .
[0066] For the first threshold being met at block 7 , the method continues to block 8 .
[0067] At block 8, for the third threshold, all jobs in sleep mode are hibernated. In some embodiments, a certain amount of CPU frequency will also be suppressed to save power consumption of the CPU.
[0068] this means Figure 4 The end of one embodiment of the computer-implemented method depicted in .
[0069] Figure 5-7 A data table used in one illustrative example of a computer-implemented method and system for intelligent hibernation of a computing device having a failed battery is shown. Figure 5-7 The data in the figure show how to calculate the penalty for 9 tasks, namely Task 1 (T1), Task 2 (T2), and Task 3 (T4).
[0070] (T2), Task 3 (T3), Task 4 (T4), Task 5 (T5), Task 6 (T6), Task 7 (T7), Task 8 (T8) and Task 9 (T9). These tasks are also Figure 1In this example, penalties are calculated based on (1) frequency of utilization, (2) memory utilization, (3) dependency of a job on another job, and (4) ease of recovering a job and / or process.
[0071] The utilization frequency score is calculated as a normalized score from 1 to 10, where 1 is the least utilized job / task and 10 is the most utilized job / task in this example.
[0072] Calculating the memory usage score includes a normalized score from 1 to 10 for the average memory usage of the tasks, where in this example 1 is the value for the task with the least memory usage and 10 is the value for the task with the most memory usage.
[0073] In one example, two main points are considered for calculating the dependent task score. The first point can be whether the task has any dependent tasks. The second point can be the number of dependent tasks. This will reflect the user experience because when the user becomes active, the number of jobs canceled is directly proportional to the job loss. In one example, calculating the dependent task score includes assigning a score of 10 to all tasks that do not have any dependent tasks. The default score for each dependent task is a score reduction of 3. Considering the default score of a task with no dependencies and the reduction in the score of the dependent tasks, the tasks can be labeled on a scale of 1-10. Since the zero-penalized task is equal to 0, in Figure 5-7 In the example shown, all tasks that are not zero-penalty tasks have a default score of 3.
[0074] Tasks can be normalized based on the number of dependent tasks. Figure 5 The table titled Dependency Task Table shows that Figure 5 In the example shown, there are five tasks, such as T2, T4, T5, T7, and T9. Figure 5 In the example shown, the task identified as T4 has two dependent tasks, namely T7 and T9. In this example, the normalized dependency score is equal to the number of dependent tasks assigned to the task divided by the total number of dependent tasks. Figure 4 In the example shown, there are four dependent tasks, i.e., tasks that depend on one another. These tasks are T2, T5, T7, and T9. The tasks that actually depend on task 4, i.e., T4, are tasks T7 and T9, which are 2 dependent tasks. Therefore, for task T4, the normalized score is equal to 0.5, which is 4 / 2. Still referring to Figure 5 In the T4 column of the dependent task table in , using the normalized score, the dependent task score can be calculated based on 10 minus 10 multiplied by the normalized deposition score and minus the value of the default score to be reduced, which is equal to: (10-(10*normalized deposition score)-default score to be reduced). Figure 5In the example shown, since the default score to be reduced is 3, the value of the dependent task score of the T4 task is equal to 2. Similar calculations are provided for T7 and T9, both of which have dependent tasks. The remaining tasks have no dependent tasks and are therefore scored as 10.
[0075] Figure 5-7 The examples shown in the table included in also include an example of calculating the ease of recovery. In this example, the ease of recovery is a normalized score from 1 to 10. A score of 1 illustrates an easy task to recover, while scores close to the maximum value of 10 are difficult to recover. The ease of recovery score depends on the page availability in the cache / RAM closer to the computing unit. Figure 6 Not only is the score for ease of recovery shown, but also scores for frequency penalty (utilization penalty), memory usage penalty (memory utilization), and dependent task penalty are shown.
[0076] Figure 7 A table of penalties associated with tasks according to an example including tasks T1-T9 is included. The total penalty for each task is first calculated, and then the total penalty for the total penalty for each task is calculated. Figure 5-7 In the example shown, the total penalty is equal to 267. In this example, the inputs used to calculate the penalty may include:
[0077] 1. The idle start percentage is 80%, which falls into the first category plate for battery power.
[0078] 2. No battery damage segment is the first type of segment for battery power.
[0079] 3. The total time (x) from idle startup to battery exhaustion is equal to 200 minutes.
[0080] 4. Delta = 3 minutes / %.
[0081] 5. Default sector percentage = 4%.
[0082] Using the above, the plate constant can be calculated as follows, which is 4% in this example: Plate Constant = Default Plate Percentage + (((Battery Damage Segment End - Battery Damage Segment Start) * Default Plate Percentage) / 100) = 4 + (0 * 4) / 100 = 4%
[0083] To determine the first, second, and third thresholds, using the total time from idle start to battery depletion (x) (equal to 200 minutes) and the plate constant, Y can be calculated. Y can be equal to 12 minutes, as calculated by the following equation:
[0084] Y = Delta (ie, time / percentage) * plate constant (ie, percentage) = (3 minutes /
[0085] 1%) / 4%
[0086] After calculating Y and X, the first, second, and third thresholds are calculated as follows:
[0087] First threshold (FT) = X / Y = 200 / 12 = 16.66 minutes
[0088] Second threshold (ST) = X / 2Y = 200 / 24 = 8.33 minutes
[0089] The third threshold (TT) = X / 4Y = 200 / 48 = 4.16 minutes
[0090] After calculating the threshold, we then consider Figure 7 The penalties listed in the table of determine which task can be selected for hibernation and / or sleeping, ie, the job to be cancelled.
[0091] For example, at the first threshold (FT), the jobs (tasks) used for sleeping may be high penalty tasks that amount to up to 50% of the total penalty. Figure 7 The total penalty is equal to 267. In this example, 50% of the total penalty is equal to 133.5. Still referring to Figure 7 , Task 1 (T1), Task 3 (T3), and Task 6 (T6) have penalties 49, 44, and 40, respectively, which when totaled equal 133. Therefore, Task 1 (T1), Task 3 (T3), and Task 6 (T6) are selected for sleep, as Figure 1 As shown. Still considering the first threshold, the job (task) considered sleeping after the sleeping task is the next high penalty task that totals 25% of the total penalty. In this example, 25% of the total penalty is equal to 66.75. Still referring to Figure 7 , Task 8 (T8) and Task 6 (T6) have penalties of 31 and 27, respectively, which when totaled equal 58. Therefore, Task 6 (T6) and Task 8 (T8) are selected to sleep at the first threshold (FT), as Figure 1 shown.
[0092] For example, at the second threshold (ST), the jobs for sleeping may include all jobs (tasks) selected for sleeping at the first threshold (FT), such as task 6 (T6) and task 8 (T8). In addition, at the second threshold (ST), all non-penalty (e.g., zero penalty) jobs (tasks) are put to sleep at the second threshold (ST). For example, referring to Figure 7 In this example, Task 4 (T4), Task 5 (T5), Task 7 (T7) and Task 9 (T9) are all zero-penalty tasks. Figure 1 As shown, both are put to sleep at the second threshold (ST).
[0093] For example, at the third threshold (TT), all sleeping jobs can then be hibernated, Figure 7 In the example shown, this includes Task Four (T4), Task Five (T5), Task Seven (T7), and Task Nine (T9), which are all zero-penalty assignments.
[0094] The above method and system provide an intelligent way to select the point and method of hibernation based on the usage of the computing device rather than waiting for the battery to run out. According to one or more preferred embodiments, the present disclosure provides a method in which processes are intelligently hibernated and the overall battery consumption is efficiently utilized.
[0095] The core logic of improving battery utilization is to hibernate / sleep the process based on its idleness by considering the dynamic penalty based approach and the rate of change of battery utilization.
[0096] The proposed system aims to increase the battery life of charging cycles and make applications more amenable to staged hibernation processes. It also aims to provide a uniform experience for device users with different battery conditions and usage patterns.
[0097] The proposed system is invoked when the user is inactive and when the user activity is noticed in the device, the flow of the system is interrupted to a forced stop. Since the user is now active, all the jobs that were put into sleep / hibernation state will be resumed back.
[0098] Jobs are put to sleep / hibernate in a staged manner and timer thresholds are calculated based on: total remaining time to complete battery drain, current battery drain rate and current battery tile and battery damage segment. The total time of sleep / hibernate (sum of thresholds) will decrease as battery drain progresses. Jobs are penalized based on utilization frequency, current memory utilization, dependency on other jobs and presence in the memory hierarchy (ease of recovery). A user preference list is also considered where a subset of jobs are dynamically selected based on the current tile level which will not be put to sleep / hibernate during the entire process.
[0099] Figure 8 Further shown is a processing system 400, which may include reference Figure 1-7 A system 100 for managing hibernation and sleep of tasks in a battery powered device. An exemplary processing system 400 to which the present invention may be applied is shown according to one embodiment. The processing system 400 includes at least one processor (CPU) 104, which is operably coupled to other components via a system bus 102. The system bus 102 can communicate with the system 200 for rating materials for post combustion carbon capture. A cache 106, a read only memory (ROM) 108, a random access memory (RAM)
[0100] 110, input / output (I / O) adapter 120, sound adapter 130, network adapter 140, user interface adapter 150, and display adapter 160 are operably coupled to system bus 102. As shown, system 100 for providing origin-based identification of policy deviations in a cloud environment can be integrated into processing system 400 by connecting to system bus 102.
[0101] A first storage device 122 and a second storage device 124 are operatively coupled to the system bus 102 through the I / O adapter 120. The storage devices 122 and 124 may be any of disk storage devices (e.g., magnetic disks or optical disk storage devices), solid-state magnetic devices, etc. The storage devices 122 and 124 may be the same type of storage devices or different types of storage devices.
[0102] Speaker 132 is operatively coupled to system bus 102 via sound adapter 130. Transceiver 142 is operatively coupled to system bus 102 via network adapter 140. Display device 162 is operatively coupled to system bus 102 via display adapter 160.
[0103] The first user input device 152, the second user input device 154 and the third user input device 156 are operably coupled to the system bus 102 through the user interface adapter 150. The user input devices 152, 154 and 156 can be any one of a keyboard, a mouse, a keypad, an image capture device, a motion sensing device, a microphone, a device combining the functions of at least two of the aforementioned devices, etc. Of course, other types of input devices can also be used while maintaining the spirit of the present invention. The user input devices 152, 154 and 156 can be user input devices of the same type or user input devices of different types. The user input devices 152, 154 and 156 are used to input and output information to and from the system 400.
[0104] Of course, processing system 400 may also include other elements (not shown) that are readily apparent to those skilled in the art, as well as omitting certain elements. For example, as will be readily appreciated by those skilled in the art, depending on the specific implementation of various other input devices and / or output devices, they may be included in processing system 400. For example, various types of wireless and / or wired input and / or output devices may be used. In addition, as will be readily appreciated by those skilled in the art, additional processors, controllers, memories, etc. in various configurations may also be utilized. These and other variations of processing system 400 are readily apparent to those skilled in the art given the teachings of the present invention provided herein.
[0105] As used herein, the term "hardware processor subsystem" or "hardware processor" may refer to a processor, memory, software, or a combination thereof that collaborate to perform one or more specific tasks. In useful embodiments, the hardware processor subsystem may include one or more data processing elements (e.g., logic circuits, processing circuits, instruction execution devices, etc.). One or more data processing elements may be included in a central processing unit, a graphics processing unit, and / or a separate processor- or computing element-based controller (e.g., logic gates, etc.). The hardware processor subsystem may include one or more on-board memories (e.g., caches, dedicated memory arrays, read-only memories, etc.). In some embodiments, the hardware processor subsystem may include one or more memories, which may be on-board or off-board, or may be dedicated for use by the hardware processor subsystem (e.g., ROM, RAM, basic input / output system (BIOS), etc.).
[0106] In some embodiments, the hardware processor subsystem may include and execute one or more software elements. The one or more software elements may include an operating system and / or one or more applications and / or specific code to achieve a specified result.
[0107] In other embodiments, the hardware processor subsystem may include dedicated, specialized circuits that perform one or more electronic processing functions to achieve a specified result. Such circuits may include one or more application specific integrated circuits (ASICs), FPGAs, and / or PLAs.
[0108] These and other variations of hardware processor subsystems are also contemplated according to embodiments of the present invention.
[0109] The present invention may be a system, method and / or computer program product at any possible level of technical detail integration. For example, in some embodiments, a computer program product for rating materials for post-combustion carbon capture is provided. The computer program product may include a computer-readable storage medium. The computer-readable storage medium may have a computer-readable program code embodied therewith, and the program instructions may be executed by a processor to cause the processor to use the processor to characterize the adsorbent material using a molecular model workflow 26, which generates a microscopic quality factor of the material through microscopic properties; and use the processor to evaluate the material from the molecular model workflow using a process model workflow 27, which generates a macroscopic quality factor of a process step of a carbon recovery process. The computer-readable storage medium also includes instructions that can use the processor to rate the material (using a combined microscopic performance and macroscopic process feasibility generator 29) for use as an adsorbent material using a combined microscopic performance and macroscopic process feasibility generator, which rates the material according to the microscopic quality factor of the material and the macroscopic quality factor of the process step.
[0110] The computer program product may include a computer readable storage medium (or multiple media) having computer readable program instructions thereon for causing a processor to perform aspects of the present invention.The computer program product may also be non-transitory.
[0111] Computer readable storage medium can be a tangible device capable of holding and storing instructions used by an instruction execution device. Computer readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage medium includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punch card or a raised structure in a groove with instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer readable storage medium should not be interpreted as a temporary signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (e.g., a light pulse by an optical fiber cable), or an electrical signal transmitted by a wire.
[0112] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium within the corresponding computing / processing device.
[0113] The computer-readable program instructions for performing the operation of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data of an integrated circuit, or source code or object code written in any combination of one or more programming languages (including object-oriented programming languages, such as Smalltalk, C++, etc.) and procedural programming languages (such as "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., using an Internet service provider via the Internet). In some embodiments, in order to perform various aspects of the present invention, an electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute a computer-readable program instruction by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit.
[0114] Various aspects of the present disclosure are described by narrative text, flow charts, block diagrams of computer systems, and / or block diagrams of machine logic included in computer program product (CPP) embodiments. With respect to any flow chart, depending on the technology involved, the operations may be performed in an order different from the order shown in a given flow chart. For example, again depending on the technology involved, two operations shown in consecutive flow chart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in a manner that at least partially overlaps in time.
[0115] Computer program product embodiments ("CPP embodiments" or "CPP") are terms used in this disclosure to describe any collection of one or more storage media (also referred to as "media") collectively included in a collection of one or more storage devices that collectively include machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can hold and store instructions for use by a computer processor. Without limitation, a computer-readable storage medium may be an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media include: magnetic disks, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROM or flash memory), static random access memories (SRAM), compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, mechanical encoding devices (such as punch cards or pits / land formed in a major surface of a disk), or any suitable combination of the foregoing.
[0116] Computer-readable storage media, as the term is used in this disclosure, should not be construed as storing in the form of transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, light pulses through fiber optic cables, electrical signals transmitted through wires, and / or other transmission media. As will be appreciated by those skilled in the art, data is typically moved at certain occasional points in time during normal operation of the storage device, such as during access, defragmentation, or garbage collection, but this does not make the storage device transitory because the data is not transitory while it is stored.
[0117] refer to Fig. 9, the computing environment 500 includes an example of an environment for executing at least some of the computer codes involved in performing the methods of the present invention, such as the method 200 for rating materials for post-combustion carbon capture. In addition to the block 200, the computing environment 500 includes, for example, a computer 501, a wide area network (WAN) 502, an end user device (EUD) 503, a remote server 504, a public cloud 505, and a private cloud 506. In this embodiment, the computer 501 includes a processor set 510 (including processing circuits 520 and caches 521), a communication structure 511, a volatile memory 512, a persistent storage 513 (including an operating system 522 and the block 200, as described above), a peripheral device set 514 (including a user interface (UI) device set 523, a storage 524, and an Internet of Things (IoT) sensor set 525), and a network module 515. The remote server 504 includes a remote database 530. The public cloud 505 includes a gateway 540 , a cloud orchestration module 541 , a host physical machine set 542 , a virtual machine set 543 , and a container set 544 .
[0118] Computer 501 may take the form of a desktop computer, a laptop computer, a tablet computer, a smart phone, a smart watch or other wearable computer, a mainframe computer, a quantum computer, or any other form of computer or mobile device now known or developed in the future that is capable of running programs, accessing a network, or querying a database such as remote database 530. As is well known in the art of computer technology, and depending on the technology, the execution of the computer-implemented method may be distributed among multiple computers and / or among multiple locations. On the other hand, in this presentation of computing environment 500, the detailed discussion focuses on a single computer, particularly computer 501, to keep the presentation as simple as possible.
[0119] Computer 501 may be located in the cloud, even in Fig. 9 On the other hand, computer 501 need not be in the cloud unless to any extent explicitly indicated.
[0120] Processor set 510 includes one or more computer processors of any type known now or to be developed in the future. Processing circuit 520 may be distributed over multiple packages, such as multiple coordinated integrated circuit chips. Processing circuit 520 may implement multiple processor threads and / or multiple processor cores. Cache 521 is a memory located in the processor chip package and is typically used for data or code that should be quickly accessed by threads or cores running on processor set 510. Cache memory is typically organized into multiple levels based on relative proximity to the processing circuit. Alternatively, some or all of the caches of the processor set may be located "off chip". In some computing environments, processor set 510 may be designed to work with qubits and perform quantum computing.
[0121] Computer readable program instructions are typically loaded onto computer 501 to cause processor set 510 of computer 501 to perform a series of operating steps to implement a computer-implemented method, such that the instructions so executed will instantiate the method specified in the flowchart and / or narrative description of the computer-implemented method included in this document (collectively referred to as the "method of the present invention"). These computer readable program instructions are stored in various types of computer readable storage media, such as cache 521 and other storage media discussed below. The program instructions and associated data are accessed by processor set 510 to control and direct the execution of the method of the present invention. In computing environment 500, at least some of the instructions for executing the method of the present invention may be stored in block 200 in persistent storage 513.
[0122] Communications fabric 511 is the signaling pathways that allow the various components of computer 501 to communicate with each other. Typically, the fabric is comprised of switches and conductive pathways, such as those that make up a bus, a bridge, physical input / output ports, etc. Other types of signal communication pathways may be used, such as fiber optic communication pathways and / or wireless communication pathways.
[0123] Volatile memory 512 is any type of volatile memory now known or developed in the future. Examples include dynamic random access memory (RAM) or static RAM. Typically, volatile memory 512 is characterized by random access, but this is not required unless expressly stated. In computer 501, volatile memory 512 is located in a single package and is internal to computer 501, but, alternatively or additionally, volatile memory can be distributed over multiple packages and / or located externally relative to computer 501.
[0124] Persistent storage 513 is any form of non-volatile storage for computers known now or developed in the future. The non-volatility of the storage means that the stored data is maintained regardless of whether power is supplied to the computer 501 and / or directly to the persistent storage 513. Persistent storage 513 can be a read-only memory (ROM), but typically at least a portion of the persistent storage allows the writing of data, the deletion of data, and the rewriting of data. Some common forms of persistent storage include disks and solid-state storage devices. Operating system 522 can take several forms, such as various known proprietary operating systems or operating systems of the open source portable operating system interface type using a kernel. The code included in block 200 is typically included in at least some of the computer codes involved in executing the method of the present invention.
[0125] The peripheral device set 514 includes a collection of peripheral devices of the computer 501. The data communication connection between the peripheral devices and other components of the computer 501 can be implemented in various ways, such as a Bluetooth connection, a near field communication (NFC) connection, a connection made by a cable (such as a universal serial bus (USB) type cable), a plug-in type connection (e.g., a secure digital (SD) card), a connection made through a local area communication network, and even a connection made through a wide area network such as the Internet. In various embodiments, the UI device set 523 may include components such as display screens, speakers, microphones, wearable devices (such as glasses and smart watches), keyboards, mice, printers, touchpads, game controllers, and tactile devices. Storage 524 is an external storage device, such as an external hard drive, or a pluggable storage device, such as an SD card. Storage 524 can be persistent and / or volatile. In some embodiments, storage 524 can take the form of a quantum computing storage device for storing data in the form of quantum bits. In embodiments where computer 501 needs to have a large amount of storage (e.g., where computer 501 locally stores and manages a large database), the storage may be provided by a peripheral storage device designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. IoT sensor set 525 consists of sensors that can be used in IoT applications. For example, one sensor may be a thermometer, while another sensor may be a motion detector.
[0126] The network module 515 is a collection of computer software, hardware, and firmware that allows the computer 501 to communicate with other computers via the WAN 502. The network module 515 may include hardware such as a modem or a Wi-Fi signal transceiver, software for packetizing and / or depacketizing data transmitted over a communication network, and / or web browser software for transmitting data over the Internet. In some embodiments, the network control function and the network forwarding function of the network module 515 are executed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software defined networks (SDN)), the control function and the forwarding function of the network module 515 are executed on physically separated devices, so that the control function manages several different network hardware devices. Computer-readable program instructions for executing the method of the present invention can generally be downloaded to the computer 501 from an external computer or an external storage device via a network adapter card or a network interface included in the network module 515.
[0127] WAN 502 is any wide area network (e.g., the Internet) capable of transmitting computer data over non-local distances by any technology now known or developed in the future for transmitting computer data. In some embodiments, WAN 502 may be replaced and / or supplemented by a local area network (LAN) designed to transmit data between devices located in a local area, such as a Wi-Fi network. WANs and / or LANs typically include computer hardware, such as copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and edge servers.
[0128] End-user device (EUD) 503 is any computer system used and controlled by an end-user (e.g., a customer of an enterprise operating computer 501), and may take any of the forms discussed above in connection with computer 501. EUD 503 typically receives helpful and useful data from the operation of computer 501. For example, in the hypothetical case where computer 501 is designed to provide recommendations to an end-user, the recommendations would typically be transmitted to EUD 503 from network module 515 of computer 501 via WAN 502. In this manner, EUD 503 may display or otherwise present the recommendations to the end-user. In some embodiments, EUD 503 may be a client device, such as a thin client, a heavy client, a mainframe computer, a desktop computer, etc.
[0129] Remote server 504 is any computer system that provides at least some data and / or functionality to computer 501. Remote server 504 may be controlled and used by the same entity that operates computer 501. Remote server 504 represents a machine that collects and stores helpful and useful data for use by other computers, such as computer 501. For example, in the hypothetical case where computer 501 is designed and programmed to provide recommendations based on historical data, then the historical data may be provided to computer 501 from remote database 530 of remote server 504.
[0130] The public cloud 505 is any computer system that can be used by multiple entities, which provides on-demand availability of computer system resources and / or other computer capabilities (especially data storage (cloud storage) and computing capabilities) without the need for direct active management by users. Cloud computing generally uses the sharing of resources to achieve consistency and economy of scale. The direct and active management of the computing resources of the public cloud 505 is performed by the computer hardware and / or software of the cloud orchestration module 541. The computing resources provided by the public cloud 505 are generally implemented by virtual computing environments running on various computers that constitute the host physical machine set 542, which is a full domain of physical computers in the public cloud 505 and / or available for the public cloud. The virtual computing environment (VCE) is generally in the form of a virtual machine from a virtual machine set 543 and / or a container from a container set 544. It should be understood that these VCEs can be stored as images and can be transmitted between various physical machine hosts as images or after the instantiation of the VCE. The cloud orchestration module 541 manages the transmission and storage of images, deploys new instantiations of VCEs, and manages active instantiations of VCE deployments. Gateway 540 is a collection of computer software, hardware, and firmware that allows public cloud 505 to communicate over WAN 502 .
[0131] Some further explanation of a virtualized computing environment (VCE) will now be provided. A VCE can be stored as an "image". A new active instance of the VCE can be instantiated from the image. Two common types of VCEs are virtual machines and containers. Containers are VCEs that use operating system-level virtualization. This refers to an operating system feature in which the kernel allows the existence of multiple isolated user space instances, called containers. From the perspective of the programs running in them, these isolated user space instances typically behave like actual computers. Computer programs running on a normal operating system can utilize all of the resources of the computer, such as connected devices, files and folders, network shares, CPU capabilities, and quantifiable hardware capabilities. However, programs running within a container can only use the contents of the container and the devices assigned to the container, a feature known as containerization.
[0132] Private cloud 506 is similar to public cloud 505, except that the computing resources are only available to a single enterprise. Although private cloud 506 is depicted as communicating with WAN 502, in other embodiments, the private cloud can be completely disconnected from the Internet and can only be accessed through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types), typically implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between multiple constituent clouds. In this embodiment, public cloud 505 and private cloud 506 are both part of a larger hybrid cloud.
[0133] References in the specification to "one embodiment" or "an embodiment" and other variations of the present invention mean that a particular feature, structure, characteristic, etc. described in conjunction with the embodiment is included in at least one embodiment of the present invention. Therefore, the appearance of the phrase "in one embodiment" or "in an embodiment" and any other variations in various places throughout the specification do not necessarily refer to the same embodiment.
[0134] It should be understood that the use of any of the following " / ", "and / or", and "at least one of", such as in the case of "A / B", "A and / or B", and "at least one of A and B", is intended to cover the selection of only the first listed option (A), or only the second listed option (B), or both options (A and B). As a further example, in the case of "A, B, and / or C" and "at least one of A, B, and C", such wording is intended to include the selection of only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or all three options (A and B and C). This can be extended to many of the listed items, as will be apparent to one of ordinary skill in the art and related arts.
[0135] Having described preferred embodiments of intelligent hibernation for computing devices with failed batteries (which are intended to be illustrative and not limiting), it is noted that modifications and variations may be made by those skilled in the art in light of the above teachings. Therefore, it should be understood that changes may be made in the particular embodiments disclosed that are within the scope of the invention as outlined by the appended claims. Having thus described aspects of the invention with the details and particularity required by the patent laws, what is claimed and desired to be protected by the patent is set forth in the appended claims.
Claims
1. A computer-implemented method for selecting a task for hibernation on a battery comprising a computing device, comprising: Record user preferences for tasks with no penalty for hibernation and sleep; assigning a threshold value for battery power, selecting a task for at least one of hibernation and sleep at the threshold value, wherein assigning the threshold value for battery power includes considering a user's current usage of hardware resources and battery health by battery segment; determining a penalty score for the task based on a user preference for the task without penalty and a task performance, the task performance comprising at least one of utilization frequency, memory utilization, task dependency characteristics, and task memory hierarchy, wherein the penalty performance is a value that includes both the user preference and the task performance; as well as The control task is placed in at least one of a dormant mode and a sleep mode indicated by its penalty performance during a threshold of battery power. 2 . The computer-implemented method of claim 1 , wherein the task has a default score and the penalty score is added to the default score to arrive at a total penalty score for the task.
3. A computer-implemented method according to claim 1 or 2, wherein during a first threshold, a first set of tasks having a first penalty score are put to sleep and a second set of tasks having a second penalty score are put to sleep, wherein the first penalty score is higher than the second penalty score. 4 . The computer-implemented method of claim 3 , wherein during the second threshold, a second set of tasks that were put to sleep during the first threshold are put to sleep. 5 . The computer-implemented method of claim 4 , wherein during the second threshold, at least one of the non-penalized is put to sleep. 6 . The computer-implemented method of claim 5 , wherein during the third threshold, tasks that were sleeping during the second threshold are put to sleep.
7. The computer-implemented method of any one of the preceding claims, wherein the threshold values are each a time corresponding to a reduction in battery power.
8. A system for selecting a task for hibernation on a battery comprising a computing device, comprising: Hardware processor; as well as a memory storing a computer program product which, when executed by a hardware processor, causes the hardware processor to: Record user preferences for tasks with no penalty for hibernation and sleep; assigning a threshold value for battery power, selecting a task for at least one of hibernation and sleep at the threshold value, wherein assigning the threshold value for battery power includes considering a user's current usage of hardware resources and battery health by battery segment; determining a penalty score for the task based on a user preference for the task without penalty and a task performance, the task performance comprising at least one of utilization frequency, memory utilization, task dependency characteristics, and task memory hierarchy, wherein the penalty performance is a value that includes both the user preference and the task performance; as well as The control task is placed in at least one of a dormant mode and a sleep mode indicated by its penalty performance during a threshold of battery power.
9. The system for selecting a task for hibernation on a battery comprising a computing device of claim 8, wherein the task has a default score and the penalty score is added to the default score to arrive at a total penalty score for the task.
10. A system for selecting tasks for hibernation on a battery comprising a computing device according to claim 9, wherein during a first threshold period, a first set of tasks having a first penalty score are put to sleep and a second set of tasks having a second penalty score are put to sleep, wherein the first penalty score is higher than the second penalty score.
11. The system for selecting tasks for hibernation on a battery comprising a computing device of claim 10, wherein during the second threshold period, a second set of tasks that were put to sleep during the first threshold period are put to hibernation.
12. The system for selecting tasks for hibernation on a battery comprising a computing device of claim 11, wherein during the second threshold, at least one task without penalty is put to sleep.
13. The system for selecting tasks for hibernation on a battery comprising a computing device of claim 12, wherein during the third threshold, tasks that were asleep during the second threshold are placed into hibernation.
14. A system for selecting tasks for hibernation on a battery comprising a computing device according to any one of claims 8 to 13, wherein the threshold values are each a time corresponding to a reduction in battery power.
15. A computer program product for selecting tasks for hibernation on a battery comprising a computing device, comprising a computer readable storage medium having computer readable program code embodied therein, the program instructions executable by a processor to cause the processor to: Using the processor to record user preferences for tasks that have no penalty for hibernation and sleep; assigning a threshold value for battery power using a processor, selecting a task for at least one of hibernation and sleep at the threshold value, wherein assigning the threshold value for battery power includes considering a user's current usage of hardware resources and battery health by battery segment; determining, using a processor, a penalty score for the task based on a user preference for the task without penalty and a task performance, the task performance comprising at least one of utilization frequency, memory utilization, task dependency characteristics, and a task memory hierarchy, wherein the penalty performance is a value that includes both the user preference and the task performance; as well as The processor-controlled task is placed into at least one of a hibernation mode and a sleep mode indicated by its penalty performance during a threshold of battery power.
16. The computer program product of claim 15, wherein the task has a default score and the penalty score is added to the default score to arrive at a total penalty score for the task.
17. The computer program product of claim 16, wherein during a first threshold, a first set of tasks having a first penalty score are put to sleep and a second set of tasks having a second penalty score are put to sleep, wherein the first penalty score is higher than the second penalty score.
18. The computer program product of claim 17, wherein during the second threshold period, the second set of tasks that were put to sleep during the first threshold period are put to sleep.
19. The computer program product of claim 18, wherein during the second threshold, at least one of the non-penalized is put to sleep.
20. A computer program comprising program code means adapted to perform the method as claimed in any one of claims 1 to 7 when said program is run on a computer.