Parallel traversal of a dynamic list
First Claim
1. A computer-implemented method for traversing a first set of objects in a first dynamic list in a computer system, comprising:
- providing said first dynamic list that includes said first set of objects;
copying said first set of objects by using a computer;
partitioning copies of said first set of objects in said first dynamic list in an operating system of the computer system into a plurality of second dynamic lists in the operating system, each second dynamic list of said plurality of second dynamic lists contains a different subset of said copies of said first set of objects, copies of said first set of objects being disposed in said plurality of second dynamic lists;
wherein said first dynamic list represents an active threads list being used in conjunction with a scheduler in said computer system, said first set of objects represent thread objects in said active threads list; and
traversing said plurality of second dynamic lists in parallel by using a plurality of kernel traversal threads, thereby causing at least some of said copies of said first set of objects to be traversed in parallel by the kernel traversal threads;
wherein said traversing of said plurality of second dynamic lists in parallel includes re-calculating priority values associated with said copies of said first set of objects that are disposed in said plurality of second dynamic lists; and
wherein said traversing of said plurality of second dynamic lists includes modifying a priority value associated with each of said copies of said first set of objects.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer-implemented method for traversing a first set of objects in a first dynamic list in a computer system. The method includes partitioning copies of the first set of objects into a plurality of second dynamic lists, each of the plurality of second dynamic lists being configured to contain a subset of the copies of the first set of objects, copies of the first set of objects being disposed in the plurality of second dynamic lists. The method also includes traversing the plurality of second dynamic lists using a plurality of traversal threads, thereby causing at least some of the copies of the first set of objects to be traversed in parallel.
15 Citations
37 Claims
-
1. A computer-implemented method for traversing a first set of objects in a first dynamic list in a computer system, comprising:
-
providing said first dynamic list that includes said first set of objects; copying said first set of objects by using a computer; partitioning copies of said first set of objects in said first dynamic list in an operating system of the computer system into a plurality of second dynamic lists in the operating system, each second dynamic list of said plurality of second dynamic lists contains a different subset of said copies of said first set of objects, copies of said first set of objects being disposed in said plurality of second dynamic lists; wherein said first dynamic list represents an active threads list being used in conjunction with a scheduler in said computer system, said first set of objects represent thread objects in said active threads list; and traversing said plurality of second dynamic lists in parallel by using a plurality of kernel traversal threads, thereby causing at least some of said copies of said first set of objects to be traversed in parallel by the kernel traversal threads; wherein said traversing of said plurality of second dynamic lists in parallel includes re-calculating priority values associated with said copies of said first set of objects that are disposed in said plurality of second dynamic lists; and wherein said traversing of said plurality of second dynamic lists includes modifying a priority value associated with each of said copies of said first set of objects. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 26, 30, 31)
-
-
9. An article of manufacture comprising a computer-readable program storage medium for storing computer readable code embodied therein, said computer readable code being configured to permit a computer system to traverse a first set of objects in a first dynamic list in the computer system, comprising:
-
computer-implemented code for providing said first dynamic list that includes said first set of objects, copying said first set of objects, and permitting the computer system to partition copies of said first set of objects in said first dynamic list in an operating system of the computer system into a plurality of second dynamic lists in the operating system, each second dynamic list of said plurality of second dynamic lists contains a different subset of said copies of said first set of objects, said copies of said first set of objects being disposed in said plurality of second dynamic lists; wherein said first dynamic list represents an active threads list being used in conjunction with a scheduler in said computer system, said first set of objects represent thread objects in said active threads list; and computer-implemented code for permitting the computer system to traverse said plurality of second dynamic lists in parallel by using a plurality of kernel traversal threads, thereby causing at least some of said copies of said first set of objects to be traversed in parallel by the kernel traversal threads; wherein traversal of said plurality of second dynamic lists in parallel includes re-calculating priority values associated with said copies of said first set of objects that are disposed in said plurality of second dynamic list; and wherein said traversal of said plurality of second dynamic lists includes modifying a priority value associated with each of said copies of said first set of objects. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 27, 32, 33)
-
-
17. An arrangement configured for traversing a first set of objects in a first dynamic list in a computer system, the arrangement comprising:
-
a processor; a computer-readable program storage medium; means for providing said first dynamic list that includes said first set of objects; means for copying said first set of objects; means for partitioning copies of said first set of objects in said first dynamic list in an operating system of the computer system into a plurality of second dynamic lists in the operating system, each second dynamic list of said plurality of second dynamic lists contains a different subset of said copies of said first set of objects, copies of said first set of objects being disposed in said plurality of second dynamic lists; wherein said first dynamic list represents an active threads list being used in conjunction with a scheduler in said computer system, said first set of objects represent thread objects in said active threads list; and means for traversing said plurality of second dynamic lists in parallel by using a plurality of kernel traversal threads, thereby causing at least some of said copies of said first set of objects to be traversed in parallel by the kernel traversal threads; wherein said traversing of said plurality of second dynamic lists in parallel includes re-calculating priority values associated with said copies of said first set of objects that are disposed in said plurality of second dynamic lists; and wherein said traversing of said plurality of second dynamic lists includes modifying a priority value associated with each of said conies of said first set of objects. - View Dependent Claims (18, 19, 20, 21, 22, 28, 34, 35)
-
-
23. An apparatus for traversing a first set of objects in a first dynamic list in a computer system, the apparatus comprising:
-
a processor; a computer-readable program storage medium; an operating system configured to provide said first dynamic list that includes said first set of objects, copy said first set of objects, and partition copies of said first set of objects in said first dynamic list in the operating system of the computer system into a plurality of second dynamic lists in the operating system, each second dynamic list of said plurality of second dynamic lists contains a different subset of said copies of said first set of objects, copies of said first set of objects being disposed in said plurality of second dynamic lists, wherein said first dynamic list represents an active threads list being used in conjunction with a scheduler in said computer system, said first set of objects represent thread objects in said active threads list, and wherein the operating system is configured to traverse said plurality of second dynamic lists in parallel by using a plurality of kernel traversal threads, thereby causing at least some of said copies of said first set of objects to be traversed in parallel by the kernel traversal threads; wherein traversal of said plurality of second dynamic lists in parallel includes re-calculating priority values associated with said copies of said first set of objects that are disposed in said plurality of second dynamic lists; and wherein said traversal of said plurality of second dynamic lists includes modifying a priority value associated with each of said copies of said first set of objects. - View Dependent Claims (24, 25, 29, 36, 37)
-
Specification