Method for managing user and server applications in a multiprocessor computer system
First Claim
1. A method of allocating processes among a plurality of processors in a multi-processor computer, said processes comprising user processes, each instance of a user process being dedicated to a single user, and server processes that typically run as a single instance to support all users, the method comprising the steps of:
- (a) organizing said user processes into a user collection;
(b) organizing said server processes into at least one server collection;
(c) for each user and server collection, assigning all of the processes in such collection to a set of processors from the plurality of processors;
(d) within said user collection, organizing said user processes into at least one user session wherein each user session is associated with a particular user, and assigning all of the user processes within such session to a subset of processors from the set of processors assigned to said user collection;
(e) in response to a request to create a new user process, determining whether the new user process should be organized into an existing session within said user collection, and if not, dynamically creating a new user session, organizing the new user process in the new user session, and assigning the new user session to a subset of processors from the set of processors assigned to said user collection; and
(f) in response to a request to create a new server process, determining whether the new server process should be organized into an existing server collection, and if not, dynamically creating a new server collection, organizing the new server process in the new server collection, and assigning the new server collection to a set of processors from the plurality of processors.
2 Assignments
0 Petitions
Accused Products
Abstract
The invention groups multiple user and server processes executing in a multi-processor computer into collections such that the processes therein share the same processor affinity. User processes have an instance dedicated to each computer system user, and are organized into a user collection and within the collection are user sessions associated with a particular user. All of the processes in a user session share the same processor affinity. Server processes typically run as a single instance to support all users, and are organized into server collections. New collections and sessions are dynamically created responsive to the creation of new processes whenever it is determined the new processes should not be assigned to existing collections or sessions. As such, the allocation of processors to a collection or user session may occur dynamically in response to process creation or deletion, thereby enabling processor allocation to take into account current computer usage patterns.
-
Citations
11 Claims
-
1. A method of allocating processes among a plurality of processors in a multi-processor computer, said processes comprising user processes, each instance of a user process being dedicated to a single user, and server processes that typically run as a single instance to support all users, the method comprising the steps of:
-
(a) organizing said user processes into a user collection;
(b) organizing said server processes into at least one server collection;
(c) for each user and server collection, assigning all of the processes in such collection to a set of processors from the plurality of processors;
(d) within said user collection, organizing said user processes into at least one user session wherein each user session is associated with a particular user, and assigning all of the user processes within such session to a subset of processors from the set of processors assigned to said user collection;
(e) in response to a request to create a new user process, determining whether the new user process should be organized into an existing session within said user collection, and if not, dynamically creating a new user session, organizing the new user process in the new user session, and assigning the new user session to a subset of processors from the set of processors assigned to said user collection; and
(f) in response to a request to create a new server process, determining whether the new server process should be organized into an existing server collection, and if not, dynamically creating a new server collection, organizing the new server process in the new server collection, and assigning the new server collection to a set of processors from the plurality of processors. - View Dependent Claims (2, 3, 4, 5)
in response to determining that a new user process should be organized into an existing user session, organizing the new user process into such existing user session such that the new user process is assigned to the subset of processors for the such existing user session, in response to determining that a new server process should be organized into an existing server collection, organizing the new server process into such existing server collection such that the new server process is assigned to the set of processors for the such existing server collection.
-
-
3. The method of claim 1, further comprising the steps of:
-
in response to a request to delete an existing user process, removing the existing user process from an existing session within which the existing user process is organized, determining whether any other user processes are organized in the existing user session, and, if not, deleting the existing user session;
in response to a request to delete an existing server process, removing the existing server process from an existing server collection within which the existing server process is organized, determining whether any other server processes are organized in the existing server collection, and, if not, deleting the existing server collection.
-
-
4. The method of claim 3, further comprising the step of:
upon deletion of an existing server collection, reassigning processors included in said set of processors assigned to said deleted server collection to said user collection.
-
5. The method of claim 4, further comprising the step of:
periodically reassigning user sessions to subsets of processes within said set of processes assigned to said user collection to balance the user process workload among the set of processes assigned to said user collection.
-
6. A computer system for processing a plurality of processes comprising user processes, each instance of a user process being dedicated to a single user, and server processes that typically run as a single instance to support all users, said computer system comprising:
-
a plurality of processors; and
a program configured to;
(1) organize said user processes into a user collection;
(2) organize said server processes into at least one server collection;
(3) for each user and server collection, assign all of the processes in such collection to a set of processors from the plurality of processors;
(4) within said user collection, organize said user processes into at least one user session wherein each user session is associated with a particular user, and assign all of the user processes within such session to a subset of processors from the set of processors assigned to said user collection;
(5) in response to a request to create a new user process, determine whether the new server process should be organized into an existing session within said user collection, and if not, dynamically create a new user session, organize the new user process in the new user session, and assign the new user session to a subset of processors from the set of processors assigned to said user collection; and
(6) in response to a request to create a new server process, determine whether the new server process should be organized into an existing server collection, and if not, dynamically create a new server collection, organize the new server process in the new server collection, and assign the new server collection to a set of processors from the plurality of processors. - View Dependent Claims (7, 8, 9, 10)
in response to determining that a new user process should be organized into an existing user session, organize the new user process into such existing user session such that the new user process is assigned to the subset of processors for the such existing user session, in response to determining that a new server process should be organized into an existing server collection, organize the new server process into such existing server collection such that the new server process is assigned to the set of processors for the such existing server collection.
-
-
8. The computer system of claim 6, wherein the program is further configured to:
-
in response to a request to delete an existing user process, remove the existing user process from an existing session within which the existing user process is organized, determine whether any other user processes are organized in the existing user session, and, if not, delete the existing user session;
in response to a request to delete an existing server process, remove the existing server process from an existing server collection within which the existing server process is organized, determine whether any other server processes are organized in the existing server collection, and, if not, delete the existing server collection.
-
-
9. The computer system of claim 8, wherein the program is further configured to:
upon deletion of an existing server collection, reassign processors included in said set of processors assigned to said deleted server collection to said user collection.
-
10. The computer system of claim 8, wherein the program is further configured to:
periodically reassign user sessions to subsets of processes within said set of processes assigned to said user collection to balance the user process workload among the set of processes assigned to said user collection.
-
11. A computer-readable medium comprising a program for use in allocating processes among a plurality of processors in a multiprocessor computer, said processes comprising user processes, each instance of a user process being dedicated to a single user, and server processes that typically run as a single instance to support all users, said program configured to:
-
(a) organize said user processes into a user collection;
(b) organize said server processes into at least one server collection;
(c) for each user and server collection, assign all of the processes in such collection to a set of processors from the plurality of processors;
(d) within said user collection, organize said user processes into at least one user session wherein each user session is associated with a particular user, and assign all of the user processes within such session to a subset of processors from the set of processors assigned to said user collection;
(e) in response to a request to create a new user process, determine whether the new server process should be organized into an existing session within said user collection, and if not, dynamically create a new user session, organize the new user process in the new user session, and assign the new user session to a subset of processors from the set of processors assigned to said user collection; and
(f) in response to a request to create a new server process, determine whether the new server process should be organized into an existing server collection, and if not, dynamically create a new server collection, organize the new server process in the new server collection, and assign the new server collection to a set of processors from the plurality of processors.
-
Specification