IP Library Patent Application 17898797
Patent Application
App. No. 17/898,797

SYSTEM AND METHOD IMPLEMENTING A TASK SCHEDULER FOR A RESOURCE CONSTRAINED COMPUTATION SYSTEM

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
17/898,797
Abstract

A method and system for implementing a task scheduler are provided in a resource constrained computation system that uses meta data provided for each task (e.g. data analysis algorithm or sensor sampling protocol) to determine which tasks should be run in a particular wake cycle, the order in which the tasks are run, and how the tasks are distributed across the available compute resources. When a task successfully completes, it's time of execution is logged in order to provide a reference for when that task should be run again. Task meta data is formatted in a manner to allow for simple integration of new tasks into the processing architecture.

Claims (34)

1 . A method for scheduling tasks in a resource constrained system, the tasks being initialized by defined task dependencies, priority weights, execution parameters, and power estimates, the method comprising:

determining tasks to be run based on time elapsed since last running of the task;

building an acyclic graph based on the task dependencies;

iteratively traversing the acyclic graph from a root node to leaf nodes to determine a set of tasks and an order of execution;

merging sets of tasks based on common sub-tasks;

selecting sets of tasks for execution;

submitting the selected sets of tasks to core processors; and

executing the submitted tasks.

2 . The method as set forth in claim 1 wherein the determining of tasks to be run is based on availability of data and/or availability of a hardware resource, such as a sensor, to determine which tasks to run.

3 . The method as set forth in claim 1 wherein the determining comprises comparing the time elapsed between when a task was last run and the desired time interval between task runs to determine which tasks to run.

4 . The method as set forth in claim 1 wherein the task execution time is recorded in a log as a reference to determine the elapsed time from the last run of a particular task only when the task was successfully completed.

5 . The method as set forth in claim 1 wherein task meta data is formatted to provide information sufficient to execute the tasks within the system and comprises function label, function call parameters, and function call environment configuration such as import calls.

6 . The method as set forth in claim 1 wherein task run time or expected energy use is provided as task meta data and used against a per-cycle run time or energy use budget to determine which subset of tasks to run in a cycle.

7 . The system as set forth in claim 1 further comprising summing priority weights of all sub-tasks wherein the selecting of sets of tasks for execution is based on a maximum summed priority weight and power estimates.

8 . The method as set forth in claim 1 wherein a shared resource, such as an attached sensor, is provided as task meta data and used to construct the acyclic graph.

9 . The method as set forth in claim 1 wherein at least one of the following parameters is user-configurable: task dependencies, priority weights, execution parameters, and power estimates.

10 . A task scheduler system for a resource constrained system, tasks being initialized by defined task dependencies, priority weights, execution parameters and power estimates, the system comprising:

at least one processor;

at least one memory having code or instructions stored thereon, wherein execution of the code or instructions by the processor causes the system to:

determine tasks to be run based on time elapsed since last running of the task;

build an acyclic graph based on the task dependencies;

iteratively traverse the acyclic graph from a root node to leaf nodes to determine a set of tasks and an order of execution;

merge sets of tasks based on common sub-tasks;

select sets of tasks for execution;

submit the selected sets of tasks to core processors; and

execute the submitted tasks.

11 . The system as set forth in claim 10 wherein determining the tasks to be run is based on availability of data and/or availability of a hardware resource, such as a sensor, to determine which tasks to run.

12 . The system as set forth in claim 10 wherein determining the tasks to be run comprises comparing the time elapsed between when a task was last run and the desired time interval between task runs to determine which tasks to run.

13 . The system as set forth in claim 10 wherein the task execution time is recorded in a log as a reference to determine the elapsed time from the last run of a particular task only when the task was successfully completed.

14 . The system as set forth in claim 10 wherein task meta data is formatted to provide information sufficient to execute the tasks within the system and comprises function label, function call parameters, and function call environment configuration such as import calls.

15 . The system as set forth in claim 10 wherein task run time or expected energy use is provided as task meta data and used against a per-cycle run time or energy use budget to determine which subset of tasks to run in a cycle.

16 . The system as set forth in claim 10 wherein the system is caused to sum priority weights of all sub-tasks wherein the selecting of sets of tasks for execution is based on a maximum summed priority weight and power estimates.

17 . The system as set forth in claim 10 wherein a shared resource, such as an attached sensor, is provided as task meta data and used to construct the acyclic graph.

18 . The system as set forth in claim 10 wherein at least one of the following parameters is user-configurable: task dependencies, priority weights, execution parameters, and power estimates.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2025
From: XEROX CORPORATION
To: GENESEE VALLEY INNOVATIONS, LLC
Reel/Frame 073225/0116 →
SECOND LIEN NOTES PATENT SECURITY AGREEMENT Recorded Jul 2, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 071785/0550 →
FIRST LIEN NOTES PATENT SECURITY AGREEMENT Recorded Apr 11, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 070824/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2024
From: COCKER, ERIC D.
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 068084/0079 →
NUNC PRO TUNC ASSIGNMENT Recorded Jul 25, 2024
From: SHREVE, MATTHEW A.
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 068084/0173 →
SECURITY INTEREST Recorded Feb 13, 2024
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066741/0001 →
SECURITY INTEREST Recorded Nov 20, 2023
From: XEROX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065628/0019 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVAL OF US PATENTS 9356603, 10026651, 10626048 AND INCLUSION OF US PATENT 7167871 PREVIOUSLY RECORDED ON REEL 064038 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 28, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064161/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064038/0001 →