IP Library Granted Patent US 7,650,601
Granted Patent B2
US 7,650,601 · App. 10/729,463 · Granted Jan 19, 2010

Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment

Assignee: International Business Machines Corporation
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 7,650,601
App. No.
10/729,463
Granted
Jan 19, 2010
Kind
B2
Abstract

A method for managing multiple processors in the execution of one or more processes in a task-based library platform. The one or more processes are partitioned into highly granulized sub-tasks from a library calling process, whereby each sub-task has a protection attribute associated with it. The protection attribute designates processing resources that a processor may use in the execution of the sub-task. The sub-tasks are placed in a central task queue, whereby idling processors in the multiple processor system obtain consecutive sub-tasks in the queue until all the processes have been executed. Each processor executes a sub-task using only those processing resources that have been designated as being available by the protection attribute of the sub-task. The atomic execution results of the one more sub-tasks may then be combined into an execution result for the process. Also provided is a task-based library for processor management.

Claims (46)

1. A method of task management using memory ranges of shared memory, comprising the steps of:

a. executing multiple instances of a kernel;

b. generating one or more tasks to be executed from a plurality of the instances of the kernel;

c. atomizing the one or more tasks into one or more atomic sub-tasks;

d. assigning protection attributes indicating a portion of one of the memory ranges of the shared memory for each respective atomic sub-task of the one or more atomic sub-tasks such that each respective sub-task is executed by one of a plurality of processors which inherits access rights to the shared memory indicated by the protection attributes corresponding to the respective atomic sub-task; and

e. generating one or more groups of temporal related tasks from the one or more atomic sub-tasks, and prioritizing and connecting the one or more groups of temporal related tasks by their temporal relationship and inserting the each temporal related tasks of each of the one or more groups of temporal related tasks into a central task queue to be executed according to their temporal relationship by one or more of the plurality of processors,

wherein each of the protection attributes corresponding to a common instance of the multiple instances of the kernel is assigned to a common memory range of the memory ranges and protection attributes corresponding to different instances of the multiple instances of the kernel are assigned to respectively different memory ranges of the shared memory.

2. The method according to claim 1 , further comprising the step: scheduling the one or more atomic sub-tasks into a central task queue.

3. The method according to claim 2 , wherein the step of scheduling the one or more atomic sub-tasks into the central task queue is done according to one or both of temporal and priority considerations.

4. The method according to claim 2 , further comprising the step of:

obtaining from a first idle processor of the plurality of processors a first atomic sub-task from the central task queue, the first idle processor thereby inheriting the access rights to a first memory range of the shared memory in executing the first atomic sub-task.

5. The method according to claim 4 , further comprising the step of:

obtaining from a further idle processor of the plurality of processor of the plurality of processors a further atomic sub-task from the central task queue, the further idle processor thereby inheriting the access rights to a further memory range of the shared memory in executing the further atomic sub-task.

6. The method according to claim 5 , wherein steps of obtaining first and further idle processors are repeated until there are no further idle processors or no further atomic sub-tasks in the central queue.

7. The method according to claim 1 , further comprising:

designating a master kernel;

submitting, by the multiple instances of the kernel, the one or more atomic sub-tasks to the master kernel;

scheduling, by the master kernel, all of the multiple other instances of the kernel;

consolidating priority and temporal execution parameters of each sub-task; and

placing the one or more sub-tasks into a central task-queue after the consolidating step.

8. The method according to claim 7 , further comprising:

determining whether any of the plurality of processors are idle;

responsive to one of the processors being idle, receiving, by the processor determined to be idle, a first atomic sub-task using, the shared memory designated by the corresponding protection attribute; and

repeatedly and simultaneously determining whether another processor is idle and executing a subsequent atomic sub-task until all tasks are completed.

9. The method of claim 8 , further comprising providing a

summing junction as part of the kernel; and routing the combined execution results of the completed task to an input/output port for delivery to a calling process.

10. A task-based library for processor management for execution of multiple instances of a kernel configured to use memory ranges of shared memory, comprising:

means for receiving one or more tasks to be executed from the multiple instances of the kernel;

a task atomizer for atomizing the one or more tasks into one or more atomic sub-tasks;

a plurality of processors for executing the one or more atomic sub-tasks;

an access rights generator for assigning protection attributes indicating a portion of one of the memory ranges of the shared memory for each respective atomic sub-task of the one or more atomic sub-tasks such that each respective sub-task is executed by one of the plurality of processors which inherits access rights to the shared memory indicated by the protection attributes corresponding to the respective atomic sub-task, wherein each of the protection attributes corresponding to a common instance of the multiple instances of the kernel is assigned to a common memory range of the memory ranges and protection attributes corresponding to different instances of the multiple instances of the kernel are assigned to respectively different memory ranges of the shared memory; and

a central task queue with one or more groups of temporal related tasks generated from the one or more atomic sub-tasks, the one or more groups of temporal related tasks prioritized and connected by their temporal relationship and are executed according to their temporal relationship by one or more of the plurality of processors.

11. The task-based library of claim 10 , further comprising a central task queue for storing the one or more atomic sub-tasks waiting to be executed.

12. The task-based library of claim 11 , further comprising a task scheduler for arranging the one or more atomic sub-tasks in the central task queue.

13. A method of task management for execution of multiple instances of a kernel using memory ranges of shared memory, comprising the steps of:

a. receiving one or more tasks to be executed from the multiple instances of the kernel;

b. atomizing the one or more tasks into one or more atomic sub-tasks;

c. assigning protection attributes indicating a portion of one of the memory ranges of the shared memory for each respective atomic sub-task of the one or more atomic sub-tasks such that each respective sub-task is executed by an idle processor of a plurality of processors which inherits access rights to the shared memory indicated by the protection attributes corresponding to the respective atomic sub-task;

d. scheduling the one or more atomic sub-tasks into a central task queue according to one or both of temporal and priority considerations;

e. obtaining via a first idle processor of the plurality of processors a first atomic sub-task from the central task queue for execution of the first atomic sub-task;

f. obtaining via a further idle processor of the plurality of processors a further atomic sub-task from the central task queue for execution of the further atomic sub-task; and

g. generating one or more groups of temporal related tasks from the one or more atomic sub-tasks, and prioritizing and connecting the one or more groups of temporal related tasks by their temporal relationship and inserting each temporal related tasks of each of the one or more groups of temporal related tasks into said central task queue to be executed according to their temporal relationship by one or more of the plurality of processors,

wherein each of the protection attributes corresponding to a common instance of the multiple instances of the kernel is assigned to a common memory range of the memory ranges and protection attributes corresponding to different instances of the multiple instances of the kernel are assigned to respectively different memory ranges of the shared memory.

14. The method according to claim 13 , further comprising the step of repeating steps e and f until there are no further idle processors or no further atomic sub-task in the central task queue.

15. The method according to claim 13 , wherein the step d of scheduling the one or more atomic sub-tasks into the central task queue is done according to temporal considerations.

16. The method according to claim 13 , wherein the step d of scheduling the one or more atomic sub-tasks into the central task queue is done according to priority considerations.

Assignments (8)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (REEL 062079, FRAME 0677) Recorded Mar 3, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 075015/0574 →
RELEASE OF SECURITY INTEREST Recorded Apr 30, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 071127/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 27, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 070670/0857 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0086 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0001 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 062079/0677 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: TWITTER, INC.
Reel/Frame 032075/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2003
From: AGUILAR, JR., MAXIMINO; CHOW, ALEX C.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 014772/0937 →
Continuity (1)
Related Publication 20050125793A1 · Jun 9, 2005