Mobile Device Thread Priority Scheduling for Remote Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing remote control systems for mobile devices face bottlenecks due to fixed CPU priorities, leading to inefficient CPU usage and performance degradation when high-bandwidth data links are used, causing delays in screen updates and impacting user experience.

Innovation Solution

A mobile device system with a processor configured to run multiple threads, including a mobile control thread and a priority adjusting thread, dynamically adjusts CPU priority based on usage thresholds and timer settings to balance screen updates with other application performance, ensuring responsive remote control without overwhelming the CPU.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the VNC main thread continuously sends screen updates over high-bandwidth data links, then the remote terminal receives frequent screen updates, but the CPU becomes overwhelmed and other applications are significantly slowed down

Engineering Contradiction:
Improvescreen update frequencyVSAvoidother application performance
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The system implements periodic action by using a timer to intermittently adjust the priority of the VNC main thread. Instead of continuously running at high priority, the thread's priority is periodically lowered after sending updates, allowing other applications to access the CPU. This periodic priority adjustment balances screen update frequency with overall system performance.

Inventive Principle:
Principle #19Periodic action

2Productivity

If the VNC main thread is given high CPU priority, then screen updates are sent frequently, but the system becomes unresponsive to other user actions

Engineering Contradiction:
Improveupdate sending rateVSAvoidsystem responsiveness
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system applies dynamics by making the VNC main thread's CPU priority adjustable rather than fixed. The priority is dynamically changed based on system conditions - elevated when screen updates need to be sent, and lowered when other applications require CPU access. This dynamic adjustment maintains both update frequency and system responsiveness.

Inventive Principle:
Principle #15Dynamics

3Use of energy by moving object

If radio data links with low theoretical data rates are used, then power consumption is reduced, but the update frequency is limited and remote control performance degrades

Engineering Contradiction:
Improvepower consumptionVSAvoiddata transmission rate
Core Design Contradiction:
Use of energy by moving objectVSSpeed

Solution Approach 1:

The system uses parameter changes by adjusting the VNC main thread's priority based on data link conditions. When a high-bandwidth data link becomes available, the thread priority is increased to utilize the available bandwidth for frequent updates. When bandwidth is limited or power saving is needed, the priority is reduced, effectively adapting the system's resource usage to current conditions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP2715518B1Method and system for remote controlling mobile phones
Publication Date: 2017.03.15 REALVNC LTD
  • EP2715518B1 patent drawingFigure 1a~1b
  • EP2715518B1 patent drawingFigure 2
  • EP2715518B1 patent drawingFigure 3

AI summary

A mobile device comprising a processor which is configured to run at least one of a plurality of threads, said plurality of threads comprising a mobile control thread, a priority adjusting thread and at least one other thread; a scheduler for scheduling threads to be run on said processor dependent on a priority of an thread relative to other threads, a display for displaying data to a user, an input system for a user to input commands, and a communication link for connecting said mobile device to a remote terminal, wherein, when said mobile control thread is running the processor is configured to capture data currently displayed on said display; send said captured data over said communication link; and issue an update sent notification to activate said priority adjusting thread; wherein, when said priority adjusting thread is running, the processor is configured to determine, on receipt of an update sent notification, whether a previous update sent notification issued less than a threshold time earlier, determine whether said mobile control thread has used more than a threshold amount of said processor, and if both determining steps are met reduce said priority of said mobile control thread below a priority of said at least one other thread and set a timer whereby when said timer expires, said priority of said mobile control thread is increased above said priority of said at least one other thread.