Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.


  1. Advanced Patent Search
Publication numberUS4481583 A
Publication typeGrant
Application numberUS 06/316,878
Publication dateNov 6, 1984
Filing dateOct 30, 1981
Priority dateOct 30, 1981
Fee statusPaid
Publication number06316878, 316878, US 4481583 A, US 4481583A, US-A-4481583, US4481583 A, US4481583A
InventorsMark W. Mueller
Original AssigneeAt&T Bell Laboratories
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Method for distributing resources in a time-shared system
US 4481583 A
A method is disclosed for distributing processing resources among a plurality of users of a time-shared system wherein resources are divided among various user accounts; each user assigning specific weights to the various programs (processes) in his account. A program is selected for processing in accordance with its assigned weight, the resources allocated to the account containing the process, and its recent processing rate. Programs are executed through a series of processing intervals; after each interval the priority of the executing program is lowered in proportion to the resources consumed. Priorities are recalculated after each processing interval for all programs competing for access to the resources.
Previous page
Next page
What is claimed is:
1. A method for time sharing the resources of a processing machine among a plurality of accounts, each account containing processes competing for access to said resources including the periodic use of specific hardware associated with the processing machine, comprising the machine performed steps of:
assigning a separate processing rate entitlement to each account in response to performance requirements selected by each separate user, said processing rate entitlement being a measure of entitlement to access the resources of said processing machine;
allocating a share of the processing rate entitlement to the various processes within each account;
measuring the time periods during which each specific hardware is used by each process;
multiplying said time periods during which specific hardware is used with weight factors associated with each specific hardware to determine the resources consumed by each process;
calculating a processing rate for each process by dividing the resources consumed by a predetermined time interval;
calculating a priority for each process by dividing the allocated processing rate entitlement by the processing rate; and
executing the process having the highest priority.
2. The method of claim 1 wherein each process executes in a series of processing intervals, during one of said processing intervals one or more items of specific hardware are used, and after said one of said processing intervals priority is recalculated for each of the processes by repeating the steps of claim 1.
3. The method of claim 2 wherein the recalculation of processing rate further includes the step of multiplying the existing value of the calculated processing rate by a number less than unity.
4. In a system having at least one account, a method for scheduling processes for execution by a processing machine, each process being associated with an account and having an initial value of priority, each process utilizing one or more particular resources during execution, each account being assigned a processing rate entitlement in response to user selected performance requirements, and each process in the account being assigned a weight factor in response to user selected performance requirements, comprising the machine performed steps of:
apportioning the processing rate entitlement among the processes in each account in accordance with their assigned weight factors;
measuring the time interval during which a particular resource is used by each of said processes;
multiplying the time interval during which a particular resource is used and a separate numerical quantity associated with each particular resource to determine resource consumption for each process;
calculating a resource consumption rate for each process by dividing the resources consumed by a predetermined time interval;
dividing the apportioned processing rate entitlement by the resource consumption rate to determine a value of priority for each process; and
executing the process having the highest priority.
5. The method of claim 4 wherein processes are executed in discrete processing intervals, the value of priority being recalculated for each of the processes after each processing interval by repeating the steps of claim 4.
6. The method of claim 5 wherein the recalculation of resource consumption rate further includes the step of:
multiplying the magnitude of the previously calculated resource consumption rate by a number whose magnitude is less than unity.
7. The method of claim 4 further including the steps of:
calculating an average resource consumption rate as the summation of the individual resource consumption rates of all processes divided by the number of processes; and
constraining the values of priority for the various processes to a predetermined range by multiplying the values of priority by a scaling factor, said scaling factor being proportional to the average resource consumption rate of said processes.

This invention relates to the distribution of resources in a time-shared system and more particularly to a method for establishing priorities among resource users.


There are basically two types of systems available to a user in need of processing resources, shared and dedicated systems, each having its own particular advantages. Shared systems offer the user low start-up cost and no support obligations. Dedicated systems offer the user a fixed size resource so he need not compete with a large user community in order to gain access to the processing resource. Neither system offers the advantages of the other.

A dedicated computing system has certain advantages that include user control over response time. A user may, for example, select a system "size" that assures a minimum response time for certain processes. Additionally, the user of a dedicated system may allocate resources to others in a manner that precludes interference with his own use. In general, user control over a processing environment is characterized by three features:

1. Insulation--The degree of independence from the effects of other users on the system.

2. Tunability--the ability to control the rate of execution of a particular process.

3. Predictability--the ability to estimate the response time of a particular process within a usefully narrow range.

In a time-shared computing system a number of priority schemes have arisen whereby a degree of control over the distribution of resources has been achieved. In one known technique priority is granted in accordance with the length of time a user has been waiting, vis-a-vis other users. In another known technique priority is granted to the user having the shortest anticipated run time.

In U.S. Pat. No. 4,096,571 issued to J. E. Vander Mey on June 20, 1978, there is disclosed a "System for Resolving Memory Access Conflicts Among Processors and Minimizing Processor Waiting Times for Access to Memory by Comparing Waiting Times and Breaking Ties by an Arbitrary Priority Ranking." This patent seeks to minimize the maximum processor's waiting time by precluding any processor from reaching the memory twice before another, that has in the meantime requested it, reaches it once.

In the time-shared environment individual programs, or user processes, are not normally run to completion before another user process is run. Each user process is completed through a series of steps or processing bursts. System processes are usually assigned a higher priority than any user process. In a time-shared system described in the Bell System Technical Journal, July-August 1978, Volume 57, Number 6, Part 2, Pages 1935-37, resources are distributed among individual users on a substantially equal basis. "User process priorities are assigned by an algorithm based on a recent ratio of the amount of compute time to real time consumed by the process. A process that has used a lot of compute time in the last real time unit is assigned a low user priority." Priority, therefore, varies in accordance with use thereby providing a desirable negative feedback effect.

From the system's point of view, the challenge is to distribute control to users while maintaining economic viability. One solution is to provide to the user a dedicated system. The larger the user's operation, the more this makes sense. Smaller users, however, will need the economic advantages of a shared system.

It is, therefore, an object of this invention to provide small users of a time-shared processing system with the advantages of a dedicated processing system.

It is another object of this invention to provide all users with a degree of control over such characteristics as insulation, tunability and predictability in the time-shared processing environment.


In accordance with the objects of the invention a method is disclosed for time-sharing resources among a plurality of accounts, each containing one or more processes competing for access to the resources. A selectable share of the resources is assigned to each account and distributed to the individual processes in accordance with relative weights assigned to the various processes. Recent resource consumption is measured for the competing processes and a priority is established based on assigned shares and weights (entitlement) as well as recent resource consumption.

In an illustrative embodiment of the invention, periodic measurements are made of entitlement and the recent rate at which resources have been consumed (recent processing rate). Processes are executed in a plurality of processing intervals. After each interval, priorities of the various competing processes are recalculated; the process having the highest value of priority is selected for execution during the next processing interval.

It is a feature of this invention that access to a processing resource is provided in discrete time intervals in a manner that approximates continuous service.

It is another feature of this invention that users may assign a particular share of processing resources to an account and thereby select a performance level within a usefully narrow range.

It is yet another feature of this invention that spare capacity of a processing resource is shared among accounts in proportion to entitlement and recent processing rate.


FIG. 1 illustrates a specific example of distributing computer resources among three user accounts;

FIG. 2 discloses a flow diagram of a running process and the readjustment of its priority in acccordance with the invention;

FIG. 3 graphically illustrates the time variation in priority in a system having three active processes.


Throughout this specification certain terms are used with great frequency and are herein defined:

User Process-An executing program. It is associated with a user account. The terms "process" and "program" are used interchangeably. A user process may be in an "active" or a "waiting" state. Active processes are those processes that are presently competing for access to the processing resources. A process may be in the waiting state when, for example, it requires additional input before proceeding.

Resource Unit (RU)-A unit of overall resource consumption (including that used by system services). The number of RU's that a program uses is a combination of the individual resources (CPU-seconds, I/O's, etc.) used.

Processing Unit (PU)-A measure of the rate at which RU's are used and equal to one RU per second. Thus, executing programs consume RU's at a rate specified in terms of PU's. From the user's point of view a level of performance is bought by contracting for PU's, and RU's are paid for as they are used.

Processing resources are allowcated to user accounts from a pool of processing resources (e.g., a physical computer). This pool has associated with it a PU capability or capacity. The total number of allocable PU's cannot exceed the resource pool capability. However, depending on service demand and the level of reservation, it may be possible to "overbook" to some extent.

FIG. 1 illustrates the allocation of computer system resources among three user accounts A, B, C. Each of the accounts has at least one program, or process, competing for execution. These are referred to as "active" processes. FIG. 1 broadly illustrates, with numerical detail, how resources are allocated and provides a simple introduction into a time-shared computing environment.

As shown in FIG. 1 relative weights (w) are assigned by the user to the various programs within an account. The processing resources of the account are divided among programs in the same way PU's divide the resources of the system among accounts. Within an account the rate at which the programs execute is proportional to the weight assigned to them. Weights give the user control over program execution and so address the aforementioned "tunability" objective. It is noted that only the relative value of the weights are meaningful. Furthermore, weights have significance only within an account.

A pool of processing resources provides PU's to user accounts A, B, C designated 110, 120, 130. User A has one program which has been found to typically consume 6 RU's. It has been decided that the objective response time is 6 seconds so 1 PU is needed for program A1. With only one program, user A need only contract for 1 PU for that account to achieve the objective response time. Program A1 is assigned a weight of 1. As discussed above, only the relative weights within a user account are meaningful; so, any number would lead to the same result.

User B has three programs, estimated to use 15 RU's, 30 RU's and 30 RU's. Run by themselves these programs would need 5 RU's, 10 PU's, and 10 PU's to achieve an objective response time of 3 seconds for each. Weights of 5, 10 and 10 are therefore assigned to programs B1, B2 and B3, respectively. User B plans to use these programs frequently but has only contracted for 10 PU's for this account. When user B tries to use all three programs at the same time the system divides the 10 PU's in the account among the three programs in the ratio of 5:10:10 as specified by the assigned weights. Their controlled rates of execution are now 2 PU's, 4 PU's, and 4 PU's. These sum to 10 PU's, the contracted level. If the system has spare capacity account B would receive a proportional share of it.

User C has two programs. According to measurements, C1 typically consumes 60 RU's and C2, 12 RU's. User C would like C1 to have a response time less than 7.5 seconds and C2 to have a response time under 3 seconds. So, 8 PU's and 4 PU's are needed for C1 and C2 respectively. User C plans to use C2 constantly and C1 fairly often. It is thus felt that a contract of 10 PU's for that account would be a good compromise between consistent high performance and low cost. When user C uses C1 and C2, concurrently, performance may be degraded since 12 PU's are needed to meet the objective response times. Programs C1 and C2 are assigned weights of 8 and 4; although, any assignment in the ratio of 2:1 would lead to the same result.

The terms used in FIG. 1 can be readily generalized to extend the overall concept to include an arbitrarily number of accounts and programs contained therein. Account i is said to contain Qi PU's. Thus, in terms of FIG. 1, Account B, Qb =10 PU's. Process j in account i has a weight of wij. Returning once again to FIG. 1, wc2 =4.

FIG. 2 provides a more detailed description of the invention by means of a flow chart of a preferable embodiment. An initialization sequence (200) is described in three major blocks (201, 202, 203). Block 201 deals with the initial distribution of computer resources among users. These resources are called Processing Units (PU's) and are associated with particular user accounts. Account i, for example, is shown containing Qi PU's to be distributed among the active processes within that account. A particular process, say j, has a particular weight, wij, assigned to it. This weight may be supplied by the user and is shown in block 202.

Programs are all given a numerical priority and, for the purpose of the example, the values range from 0 to M where M is deemed to be the highest priority. As shown in block 203, the initial (Pij) of process j running under account i is set equal to M, although any initial value would be acceptable. Process j in account i must now compete for processor time along with all other active processes. The activity indicated in Block 210 indicates a selection process, based on highest priority, among n active processes. Assuming that process j in account i is selected to run, the RU's used during execution are monitored and designated Sij. It is appropriate to charge in accordance with use, so a running total of RU usage is maintained for each process. Different processing resources such as CPU time or Input/Output device time may have a different RU value than others. Therefore the RU consumption, during the same time interval, will vary according to the particular resource being used.

Three time clocks t1, t2, t3 are shown in blocks 220, 230 and 240 to illustrate that periodically certain calculations are performed. These calculations ultimately lead to a reordering of priorities among programs. T1, T2 and T3 are predetermined time intervals which represent the length of a period between the various calculations. Block 220 demonstrates that qij, an indication of entitlement, is measured every T1 seconds for all active processes. Entitlement has the dimension of PU's and is a function of the normalized process weight and the number of PU's (Qi) allocated to account i. An acceptable quantitative measure of entitlement is set forth in the following formula: ##EQU1## Thus, qij represents the number of PU's assigned to program j running under account i. Should this same program ever be transferred to another account, it would receive a different entitlement in accordance with the PU's allocated to that account and the relative weights of the other programs with which it must now compete. The normalized weight of program j is calculated by dividing it by the sum of all active program weights operating under the same account. Once the entitlement has been calculated, block 222 indicates that the t1 clock is reset to zero.

Block 230 indicates that every T2 seconds a calculation of priority scaling factor ρ is made. The scaling factor is used to maintain the numerical values of all priorities at about the center of a predetermined range. The priority calculation itself is later discussed in connection with Block 242. Priority values can become very large or small depending upon the average running time of the programs. In order to avoid difficulties in comparing the numerical value of priorities at either end of the range, a scaling factor (whose magnitude varies with the average processing rate) is utilized.

Block 231 illustrates a computation of the average processing rate (RU's per second) for all n active processes. The following formula is an example of an acceptable algorithm for generating a scaling factor responsive to changes in the average processing rate: ##EQU2## The constant "A" is a constant that governs the numerical range of priority values associated with the various processes. Reasonable values would range between 1 and M/2. rij has the dimensions of RU's per second or PU's. Each active process has its own value of r which is a measure of its recent processing rate. Recall that programs are run in a series of discrete processing bursts. In order to maintain the appearance of a continuous processing environment, it is useful to monitor a smoothed measure of the recent processing rate for use in priority scheduling.

Block 232 indicates that t2 is reset to zero before proceeding to Block 240. This assures that the calculation of Block 231 will be performed every T2 seconds.

Block 240 monitors the priority update interval (T3 seconds). Every T3 seconds the priority of all active processes is calculated. Programs will run until their priority falls below that of a competing program; therefore the duration of T3 is important. If T3 is too short, the time devoted to overhead consumes an unacceptable portion of the overall processing time. If T3 is too long, the computer no longer appears to be providing continuous service to all users. T3 should be set to a value comparable to the desired responsiveness of the system.

Block 241 illustrates a particular manner of updating the recent processing rate (r). The formula used in this example is: ##EQU3## where 0<K<1. In the above equation, note that the value of K is less than unity. This has the effect of reducing the new value of r each time the indicated multiplication is carried out. Thus, when process j in account i is not running Sij =0, and rij will be decreased at a rate controlled by the value of K. We shall see in the discussion on priority that a decreasing value of r leads to an increasing value of priority. The processing rate is calculated every T3 seconds for all active programs. The value of r is essentially an exponentially weighted measure of the actual processing rate. As T3 →0 and as K→1 ##EQU4## r tracks the instantaneous processing rate. This method has the practical advantage that it is necessary to carry along only the current value of r.

Variables that enter into the calculation of priority (P) have all been computed and it only remains to perform the actual calculation. Block 242 illustrates a formula that links priority to both entitlement and recent processing rate: ##EQU5## Recall that M is the highest value of priority and ρ is the scaling factor that keeps all values of priority within a predetermined operating range (0-M). As a practical matter, the individual values of priority will tend to cluster about some equilibrium value, say P*. Programs that receive no processing time will all have their priorities uniformly increased with time. The rate at which priority decreases, however, is closely linked with the individual program entitlement. The increases and decreases in priority are graphically illustrated in FIG. 3. For the purpose of clarity, FIG. 3 shows priorities varying linearily with time (i.e., straight lines). A more correct rendering of the priority variations would show changes that are exponential with time.

The time values of priority for processes A1, B3 and C1 (all assumed to be active) are shown in FIG. 3. Recall from FIG. 1 that their relative entitlements were all different:

q.sub.a1 =1PU

q.sub.b3 =4PU's

q.sub.c1 =6.66PU's

Thus, it is to be expected that process C1 will be running more frequently than the others since its entitlement is greater. It follows that upward or downward movement in priority for the various processes shown in FIG. 3 will be noticeably different. The exact nature of the priority adjustment scheme is a matter of design choice implemented by modifying the formula for priority. The more important feature of this illustrative embodiment resides in an ability to regulate access to computer resources by a priority scheme that is responsive to contractable entitlement and recent processing rate.

Block 243 indicates that the measure of consumed resource units Sij and the t3 clock are set to zero. If, however, the process was completed before t3 =T3, then that process is removed from the list of active processes. Blocks 250 and 260 indicate the required decision steps. For the purpose of example we are assuming that process j in account i is the program being executed.

Because the system which provides the resources must occasionally perform certain high priority system tasks, it is not always able to provide an account with its contracted PU's. A compromise which allows the system to pre-empt user level work when necessary, yet still provides the user with a perception of a virtual machine, is to assure the user account of at least its contracted level, between 90 and 100 percent of the time. Thus, a user account is insulated from other user accounts but not necessarily from the system (as it clearly cannot be). System behavior is under system control and, so, can be made to be stable.

The actual execution rate of a program depends on its weight relative to other competing programs in the account and the number of PU's available to the account. Given the number of RU's the program consumes, the objective response time is given by: ##EQU6## The sum is over concurrently active programs within the account. Mathematically this is shown by summing over all active programs in account i. The actual response time is equal to the objective response time when the account receives exactly its contracted number of PU's. The quantities on the right side of the equation are all known or easily estimated. Thus, the user can quickly predict performance. This methodology contrasts sharply with the complex queuing analysis often required to predict delay in conventionally shared systems. The number of RU's consumed will be a function of the data used by the program, but an estimate of an often-used program can be found by executing it with a typical set of data. This is viewed as being the user's responsibility. In a practical implementation, there is a tradeoff between the accuracy of the algorithm and the overhead incurred in making schedule decisions.

The structure described here provides an environment in which the performance of a particular program can be predicted within a usefully narrow range. This satisfies the user objective of predictability.

Although a specific embodiment of this invention has been shown and described, it will be understood that various modifications may be made without departing from the spirit of the invention.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US3573856 *Jun 24, 1969Apr 6, 1971Texas Instruments IncDistributed priority of access to a computer unit
US3676860 *Dec 28, 1970Jul 11, 1972IbmInteractive tie-breaking system
US3925766 *Nov 27, 1973Dec 9, 1975Honeywell Inf SystemsDynamically variable priority access system
US4001784 *Dec 20, 1974Jan 4, 1977Honeywell Information Systems ItaliaData processing system having a plurality of input/output channels and physical resources dedicated to distinct and interruptible service levels
US4030075 *Jun 30, 1975Jun 14, 1977Honeywell Information Systems, Inc.Data processing system having distributed priority network
US4096571 *Sep 8, 1976Jun 20, 1978Codex CorporationSystem for resolving memory access conflicts among processors and minimizing processor waiting times for access to memory by comparing waiting times and breaking ties by an arbitrary priority ranking
US4161779 *Nov 30, 1977Jul 17, 1979Burroughs CorporationDynamic priority system for controlling the access of stations to a shared device
US4183083 *Apr 14, 1972Jan 8, 1980Duquesne Systems, Inc.Method of operating a multiprogrammed computing system
US4208714 *Feb 21, 1978Jun 17, 1980Telefonaktiebolaget L M EricssonApparatus for giving priority to certain data signals
US4232294 *Apr 30, 1979Nov 4, 1980Control Data CorporationMethod and apparatus for rotating priorities between stations sharing a communication channel
Non-Patent Citations
1Bell System Tech. Journal, vol. 57, No. 6, "UNIX Implementation", _K. Thompson, Jul.-Aug. 1978, pp. 1931-1946.
2 *Bell System Tech. Journal, vol. 57, No. 6, UNIX Implementation , K. Thompson, Jul. Aug. 1978, pp. 1931 1946.
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US4584644 *Mar 8, 1982Apr 22, 1986International Business Machines Corp.Method of controlling use of resources in a data processing system by at least two processes
US4633387 *Feb 25, 1983Dec 30, 1986International Business Machines CorporationLoad balancing in a multiunit system
US4692860 *Mar 12, 1984Sep 8, 1987Telefonaktiebolaget Lm EricssonApparatus for load regulation in computer systems
US4729093 *Mar 4, 1987Mar 1, 1988Motorola, Inc.Microcomputer which prioritizes instruction prefetch requests and data operand requests
US4736318 *Mar 1, 1985Apr 5, 1988Wang Laboratories, Inc.Data processing system having tunable operating system means
US4742447 *Jan 16, 1986May 3, 1988International Business Machines CorporationMethod to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US4750116 *Oct 11, 1985Jun 7, 1988International Business Machines CorporationHardware resource management
US4755938 *Oct 20, 1986Jul 5, 1988Fujitsu LimitedAccess request control apparatus which reassigns higher priority to incomplete access requests
US4787026 *Jan 17, 1986Nov 22, 1988International Business Machines CorporationMethod to manage coprocessor in a virtual memory virtual machine data processing system
US4918599 *Sep 29, 1986Apr 17, 1990Fujitsu LimitedInterrupt control system
US5193172 *Jan 22, 1990Mar 9, 1993Hitachi, Ltd.Memory management system for dispatching only to a selected high-use-priority task a maximum allocated and given highest-use-priority real-pages when requested
US5193189 *Dec 9, 1991Mar 9, 1993Allen-Bradley Company, Inc.Programmable controller with multiple priority level task processing
US5325525 *Apr 4, 1991Jun 28, 1994Hewlett-Packard CompanyMethod of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time
US5421011 *Dec 20, 1991May 30, 1995International Business Machines CorporationMethod and system for access and accounting control in a data processing system by using a single resource account for a user or a group of users
US5473773 *Apr 4, 1994Dec 5, 1995International Business Machines CorporationApparatus and method for managing a data processing system workload according to two or more distinct processing goals
US5499345 *Mar 15, 1995Mar 12, 1996Nec CorporationBus arbitration system
US5522055 *Aug 25, 1994May 28, 1996Matsushita Graphic Communication Systems, Inc.Electronic file system with pre read memory management of data to be displayed
US5530860 *May 14, 1993Jun 25, 1996Fujitsu LimitedVirtual computer control system effectively using a CPU with predetermined assignment ratios of resources based on a first and second priority mechanism
US5537542 *Apr 4, 1994Jul 16, 1996International Business Machines CorporationApparatus and method for managing a server workload according to client performance goals in a client/server data processing system
US5600822 *Apr 5, 1994Feb 4, 1997International Business Machines CorporationResource allocation synchronization in a parallel processing system
US5603029 *Jun 7, 1995Feb 11, 1997International Business Machines CorporationSystem of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available
US5845096 *Aug 26, 1996Dec 1, 1998Vlsi Technology, Inc.Adaptive arbitration mechanism for a shared multi-master bus
US5894572 *Jun 7, 1995Apr 13, 1999Network Computing Devices, Inc.Method for process scheduling in a processor based system
US5915095 *Aug 8, 1995Jun 22, 1999Ncr CorporationMethod and apparatus for balancing processing requests among a plurality of servers based on measurable characteristics off network node and common application
US5948094 *Sep 17, 1997Sep 7, 1999Intel CorporationMethod and apparatus for executing multiple transactions within a single arbitration cycle
US6067557 *Sep 6, 1996May 23, 2000Cabletron Systems, Inc.Method and system for allocating CPU bandwidth by prioritizing competing processes
US6092137 *Nov 26, 1997Jul 18, 2000Industrial Technology Research InstituteFair data bus arbitration system which assigns adjustable priority values to competing sources
US6148324 *Jan 5, 1998Nov 14, 2000Lucent Technologies, Inc.Prioritized load balancing among non-communicating processes in a time-sharing system
US6163840 *Nov 26, 1997Dec 19, 2000Compaq Computer CorporationMethod and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline
US6175814Nov 26, 1997Jan 16, 2001Compaq Computer CorporationApparatus for determining the instantaneous average number of instructions processed
US6195748Nov 26, 1997Feb 27, 2001Compaq Computer CorporationApparatus for sampling instruction execution information in a processor pipeline
US6237059Nov 26, 1997May 22, 2001Compaq Computer CorporationMethod for estimating statistics of properties of memory system interactions among contexts in a computer system
US6237073Nov 26, 1997May 22, 2001Compaq Computer CorporationMethod for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information
US6282561 *Dec 7, 1995Aug 28, 2001Microsoft CorporationMethod and system for resource management with independent real-time applications on a common set of machines
US6332178Nov 26, 1997Dec 18, 2001Compaq Computer CorporationMethod for estimating statistics of properties of memory system transactions
US6374367Nov 26, 1997Apr 16, 2002Compaq Computer CorporationApparatus and method for monitoring a computer system to guide optimization
US6430592 *Jun 2, 1994Aug 6, 2002International Business Machines CorporationSystem for sharing CPU time amongst multiple users
US6438704Mar 25, 1999Aug 20, 2002International Business Machines CorporationSystem and method for scheduling use of system resources among a plurality of limited users
US6442585Nov 26, 1997Aug 27, 2002Compaq Computer CorporationMethod for scheduling contexts based on statistics of memory system interactions in a computer system
US6549930 *Nov 26, 1997Apr 15, 2003Compaq Computer CorporationMethod for scheduling threads in a multithreaded processor
US6587865 *Sep 21, 1998Jul 1, 2003International Business Machines CorporationLocally made, globally coordinated resource allocation decisions based on information provided by the second-price auction model
US6701431Jan 29, 2001Mar 2, 2004Infineon Technologies AgMethod of generating a configuration for a configurable spread spectrum communication device
US6714960 *Nov 20, 1996Mar 30, 2004Silicon Graphics, Inc.Earnings-based time-share scheduling
US6968379 *May 30, 1997Nov 22, 2005Sun Microsystems, Inc.Latency-reducing bandwidth-prioritization for network servers and clients
US7171479Apr 26, 2002Jan 30, 2007International Business Machines CorporationEfficient delivery of boot code images from a network server
US7325234Feb 15, 2002Jan 29, 2008Siemens Medical Solutions Health Services CorporationSystem and method for monitoring computer application and resource utilization
US7571438Jul 18, 2001Aug 4, 2009Microsoft CorporationMethod and system for resource management with independent real-time applications on a common set of machines
US7573808 *Aug 6, 2004Aug 11, 2009Fujitsu LimitedSmart resync of data between a network management system and a network element
US7810096 *Jan 3, 2005Oct 5, 2010Hitachi, Ltd.Computer executing multiple operating systems
US7970902 *Mar 19, 2004Jun 28, 2011Hewlett-Packard Development Company, L.P.Computing utility policing system and method using entitlement profiles
US9224168Dec 11, 2012Dec 29, 2015Microsoft Technology Licensing, LlcTuning product policy using observed evidence of customer behavior
US9336359Feb 6, 2012May 10, 2016Microsoft Technology Licensing, LlcDevice certificate individualization
US9619766 *Sep 16, 2013Apr 11, 2017International Business Machines CorporationE-business value web
US9691042May 24, 2012Jun 27, 2017International Business Machines CorporationE-Business value web
US9811790May 15, 2012Nov 7, 2017International Business Machines CorporationE-business value web
US20020007389 *Jul 18, 2001Jan 17, 2002Microsoft CorporationMethod and system for resource management with independent real-time applications on a common set of machines
US20020178206 *Feb 15, 2002Nov 28, 2002Siemens Medical Solutions Health Services CorporationSystem and method for monitoring computer application and resource utilization
US20030014474 *May 30, 2002Jan 16, 2003Mckaig Ray S.Alternate zero overhead task change circuit
US20030204603 *Apr 26, 2002Oct 30, 2003International Business Machines CorporationEfficient delivery of boot code images from a network server
US20050149933 *Jan 3, 2005Jul 7, 2005Masahiko SaitoComputer executing multiple operating systems
US20050210262 *Mar 19, 2004Sep 22, 2005Jerry RoliaComputing utility policing system and method using entitlement profiles
US20060028979 *Aug 6, 2004Feb 9, 2006Gilbert LevesqueSmart resync of data between a network management system and a network element
US20060106845 *Dec 8, 2004May 18, 2006Microsoft CorporationSystem and method for computer-based local generic commerce and management of stored value
US20060112208 *Nov 22, 2004May 25, 2006International Business Machines CorporationInterrupt thresholding for SMT and multi processor systems
US20060200608 *Nov 28, 2005Sep 7, 2006Shih-Wei PengBus arbiter and bus arbitrating method
US20140019180 *Sep 16, 2013Jan 16, 2014International Business Machines CorporationE-business value web
CN104076333A *Jul 5, 2014Oct 1, 2014中国船舶重工集团公司第七二四研究所Method for implementing rotating phased array radar beam self-adaption arrangement based on twice sorting
EP0549208A2 *Dec 10, 1992Jun 30, 1993International Business Machines CorporationMultiprocess access and accounting control
EP0549208A3 *Dec 10, 1992May 4, 1994IbmTitle not available
EP1039383A2 *Mar 15, 2000Sep 27, 2000International Business Machines CorporationSystem and method for scheduling system resources
EP1039383A3 *Mar 15, 2000Aug 23, 2006International Business Machines CorporationSystem and method for scheduling system resources
EP2553595A1 *Mar 17, 2011Feb 6, 2013EMC CorporationApparatus and method for query prioritization in a shared nothing distributed database
EP2553595A4 *Mar 17, 2011Oct 29, 2014Gopivotal IncApparatus and method for query prioritization in a shared nothing distributed database
WO1992017796A1 *Mar 27, 1992Oct 15, 1992The Commonwealth Of AustraliaRadar control task scheduling
WO2001055864A1 *Jan 29, 2001Aug 2, 2001Morphics Technology Inc.A method of generating a configuration for a configurable spread spectrum communication device
WO2002097630A2 *May 15, 2002Dec 5, 2002Siemens Medical Solutions Usa, Inc.System and method for monitoring computer application and resource utilization
WO2002097630A3 *May 15, 2002Apr 1, 2004Siemens Medical SolutionsSystem and method for monitoring computer application and resource utilization
WO2004019206A1 *Aug 22, 2003Mar 4, 2004Xyron Corporation, An Oregon CorporationDynamic multilevel task management method and apparatus
U.S. Classification710/244, 713/502
International ClassificationG06F9/50
Cooperative ClassificationG06F2209/5021, G06F9/5038
European ClassificationG06F9/50A6E
Legal Events
Oct 30, 1981ASAssignment
Effective date: 19811026
Mar 25, 1988FPAYFee payment
Year of fee payment: 4
Mar 26, 1992FPAYFee payment
Year of fee payment: 8
Apr 15, 1996FPAYFee payment
Year of fee payment: 12