IP Library Granted Patent US 8,595,733
Granted Patent B2
US 8,595,733 · App. 12/978,083 · Granted Nov 26, 2013

Process scheduler employing ordering function to schedule threads running in multiple adaptive partitions

View Patent ↗
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 8,595,733
App. No.
12/978,083
Granted
Nov 26, 2013
Kind
B2
Abstract

A system includes a processor, one or more memory storage units, and software code stored in the one or more memory storage units. The software code is executable by the processor to generate a plurality of adaptive partitions that are each associated with one or more process threads. The software code further includes a scheduling system that is executable by the processor for selectively allocating the processor to run the process threads based on a comparison between ordering function values for each adaptive partition. The ordering function value for each adaptive partition is calculated using one or more weighted variables for each adaptive partition. The variables include, for example, 1) the process budget, such as a guaranteed time budget, of the adaptive partition, 2) the critical budget, if any, of the adaptive partition, 3) the rate at which the process threads of an adaptive partition consume processor time.

Claims (14)

1. A system comprising:

a processor;

one or more memory storage units; and

software code stored in the one or more memory storage units, where the software code is executable by the processor to generate a plurality of adaptive partitions that are each associated with one or more process threads, and where the software code comprises a scheduling system executable by the processor configured to selectively allocate the processor to run the process threads based on a comparison between ordering function values for each adaptive partition, where the ordering function value for each adaptive partition is calculated using a plurality of variables for each of the adaptive partitions, where each of the plurality of variables is weighted differently with respect to one another, and where one of the plurality of variables is based on a ratio of a number of predetermined time units of processor time consumed by a corresponding adaptive partition during a previous predetermined interval of time and a predetermined processor time budget associated with the corresponding adaptive partition.

2. The system of claim 1 , where the processor comprises a symmetric multiprocessor.

3. The system of claim 1 , where one of the plurality of variables is based on whether a corresponding adaptive partition has available critical budget and whether a highest priority ready thread of the corresponding adaptive partition has been assigned a critical state.

4. The system of claim 1 , where one of the plurality of variables is based on a highest priority of all ready-to-run threads in a corresponding adaptive partition.

5. The system of claim 1 , where one of the plurality of variables is based on a current rate of processor time consumption of process threads in the corresponding adaptive partition.

6. A method of operating a process scheduler in a processing system having a processor and a plurality of adaptive partitions that are each associated with one or more process threads, the method comprising:

generating an ordering function value for each adaptive partition, where each ordering function is based on plurality of variables for each of the adaptive partitions, where each of the plurality of variables is weighted differently with respect to one another, where generating the ordering function value comprises generating an ordering function value for each adaptive partition, where each ordering function is based on a variable associated with a ratio of a number of predetermined time units of processor time consumed by a corresponding adaptive partition during a previous predetermined interval of time and a predetermined processor time budget associated with the corresponding adaptive partition; and

selectively allocating the processor to run the process thread of the plurality of adaptive partitions based on a comparison between the ordering function values of the plurality of adaptive partitions.

7. The method of claim 6 , where generating the ordering function value comprises generating an ordering function value for each adaptive partition, where each ordering function is based is a variable associated with whether a corresponding adaptive partition has available critical budget and whether a highest priority ready thread of the corresponding adaptive partition has been assigned a critical state.

8. The method of claim 6 , where generating the ordering function value comprises generating an ordering function value for each adaptive partition, where each ordering function is based on a variable associated with a highest priority of all ready-to-run threads in a corresponding adaptive partition.

9. The method claim 6 , where generating the ordering function value comprises generating an ordering function value for each adaptive partition, where each ordering function is based on a variable associated with a current rate of processor time consumption of process threads in the corresponding adaptive partition.

Assignments (12)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 053313/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
CHANGE OF ADDRESS Recorded Feb 27, 2012
From: QNX SOFTWARE SYSTEMS LIMITED
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 027768/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 026883/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 026883/0553 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF THE ASSIGNEE NAME FROM QNX SOFTWARE SYSTEMS GMBH TO QNX SOFTWARE SYSTEMS GMBH & CO. KG PREVIOUSLY RECORDED ON REEL 025865 FRAME 0340. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECT SPELLING TO READ QNX SOFTWARE SYSTEMS GMBH & CO. KG. Recorded Mar 23, 2011
From: DODGE, DAN; DANKO, ATTILLA; MARINEAU-MES, SEBASTIEN; VAN DER VEEN, PETER; BURGESS, COLIN; FLETCHER, THOMAS; STECHER, BRIAN
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 026008/0458 →
REGISTRATION Recorded Feb 28, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025863/0398 →
CHANGE OF SEAT Recorded Feb 28, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025863/0434 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2011
From: DODGE, DAN; DANKO, ATTILLA; MARINEAU-MES, SEBASTIEN; VAN DER VEEN, PETER; BURGESS, COLIN; FLETCHER, THOMAS; STECHER, BRIAN
To: QNX SOFTWARE SYSTEMS GMBH
Reel/Frame 025865/0340 →