Wake Lock Aware Job Scheduling for Mobile Energy Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern smartphones experience increased energy consumption due to frequent CPU wakeups, even when the screen is off, as various services and applications continue to execute background activities, leading to battery drain.
Innovation Solution
Implementing a wake lock aware scheduling system that includes a wake lock profiler and scheduler, which estimates wake lock durations and adjusts job scheduling to opportunistically piggyback on existing wake lock time windows, allowing the CPU to sleep for longer periods and reducing active-to-sleep transitions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the CPU executes background activities of applications and services, then the system functionality is maintained, but the energy consumption increases due to frequent CPU wakeups
Solution Approach 1:
The wake lock profiler proactively identifies upcoming wake lock events and provides advance notice to the scheduler. The scheduler then pre-arranges job executions during these predicted wake windows before they occur, allowing the CPU to sleep confidently knowing background tasks will be handled during upcoming wake periods.
Solution Approach 2:
The system dynamically adjusts CPU scheduling decisions based on real-time wake lock predictions. The scheduler modifies job execution timing adaptively, concentrating task execution during predicted wake windows and extending sleep periods when no wake events are anticipated, creating a flexible balance between functionality and energy savings.
2Productivity
If the CPU stays awake to execute background activities, then all scheduled jobs can be completed, but the time spent in stand-by mode is reduced
Solution Approach 1:
The scheduler receives advance wake lock predictions and proactively schedules jobs to execute during these predicted windows before they occur. This preliminary scheduling ensures job completion is maintained while maximizing the CPU's time in low-power stand-by mode between these planned execution windows.
Solution Approach 2:
The system organizes CPU execution into periodic wake windows aligned with predicted wake lock events. Jobs are batched and scheduled to execute during these periodic wake intervals, allowing the CPU to alternate between active execution periods and extended stand-by periods, thereby maintaining productivity while increasing overall stand-by duration.
3Adaptability or versatility
If multiple jobs are scheduled independently without coordination, then each service can execute its tasks, but the number of CPU wakeups increases
Solution Approach 1:
The system merges multiple independent job schedules into a unified wake lock-aware schedule. The centralized scheduler coordinates all background jobs across different services, consolidating their execution into shared wake windows. This maintains service independence in terms of job functionality while combining their execution timing to reduce the total number of CPU wakeups.
Solution Approach 2:
The wake lock profiler acts as an intermediary between individual services and the scheduler. It collects wake lock information from various services, processes this information centrally, and provides coordinated scheduling decisions back to the scheduler, enabling energy-efficient coordination without direct service-to-service communication.
4Device complexity
If the scheduler executes jobs without wake lock information, then simple scheduling is maintained, but energy optimization opportunities are lost
Solution Approach 1:
The wake lock profiler serves as a lightweight intermediary that handles the complexity of wake lock tracking and prediction. It maintains wake lock information and provides processed hints to the scheduler without requiring the scheduler itself to implement complex wake lock analysis logic, thus keeping scheduling complexity manageable while enabling energy optimization.
Solution Approach 2:
The wake lock profiler autonomously monitors and predicts wake lock events without requiring intervention from individual services or complex scheduler logic. It self-manages the collection, analysis, and dissemination of wake lock information, providing energy optimization capabilities with minimal added system complexity.
Data Source
Figure 1~2
Figure 3A~3C
Figure 4~5
AI summary
Embodiments include computing devices, apparatus, and methods implemented by the apparatus for implementing wake lock aware scheduling. The apparatus may receive a wake lock request by a wake lock profiler and acquire wake lock information of a wake lock event associated with the wake lock request. The wake lock information may include a wake lock time parameter. The apparatus may send a hint having the wake lock time parameter. The apparatus may receive the hint, determine whether ready jobs can execute during the wake lock event, and send a request for permission to schedule the ready jobs for execution during the wake lock event in response to determining that the ready jobs can execute during the wake lock event.