This invention relates to an assembly and method suitable for optimizing allocation of resources in a multi-processor time-shared computer system.
In a time shared computer system, each user gets pro-rated computer resources over some interval of time. These resources are various classes of memory and disk storage and, in multi-processor systems, the available CPUs. These resources are limited to no-more than k users for k processors and not all users can be active or even contained in memory at any given time.
Currently, each user has a priority and is given a fixed slice of computer time in which he does his processing, and then has an inactive period of time during which other users are active. The frequency of user activation is determined by the given user""s priority. There is no discipline for the optimal resource allocation in support of a set of k users, based on optimizing computer resource utilization. The problem addressed in this invention is how to optimally allocate computer resources in support of a given number of active users.
We have now discovered novel methodology and an assembly in realization of this methodology, which are responsive and in satisfaction of this problem.
In a first aspect, we disclose an assembly suitable for optimizing allocation of resources in support of k users, in a multi-processor time-shared computer system, the assembly comprising:
(i) a resource monitor comprising:
(a) means for inputting data comprising current job requirements;
(b) means for operating upon the current job requirements for determining required resources;
(c) means for storing said required resources for subsequent processing by a resource allocation;
and
(ii) a resource allocator connected to the resource monitor comprising:
(a) means for inputting, from the resource monitor, said required resources; and
(b) means for executing the required resources for generating a resource allocation for said k users.
In a second aspect, we disclose a method suitable for optimizing allocation of resources in support of k users, in a multi-processor time-shared computer system, the method comprising the steps of:
1) inputting data comprising current job requirements;
2) operating upon the current job requirements for determining required resources;
3) storing said required resources for subsequent processing by a resource allocator;
and
4) executing the required resources for generating a resource allocation for said k users.