Wake Lock Aware Job Scheduling for Mobile Energy Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesystem functionalityVSAvoidenergy consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improvejob completionVSAvoidstand-by mode duration
Core Design Contradiction:
ProductivityVSDuration of action of stationary object

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #19Periodic action

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

Engineering Contradiction:
Improveservice independenceVSAvoidenergy loss from wakeups
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Device complexity

If the scheduler executes jobs without wake lock information, then simple scheduling is maintained, but energy optimization opportunities are lost

Engineering Contradiction:
Improvescheduling complexityVSAvoidenergy consumption
Core Design Contradiction:
Device complexityVSUse of energy by moving object

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3472684B1Wake lock aware system wide job scheduling for energy efficiency on mobile devices
Publication Date: 2020.04.08 QUALCOMM INC
  • EP3472684B1 patent drawingFigure 1~2
  • EP3472684B1 patent drawingFigure 3A~3C
  • EP3472684B1 patent drawingFigure 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.