|Publication number||US4481583 A|
|Application number||US 06/316,878|
|Publication date||Nov 6, 1984|
|Filing date||Oct 30, 1981|
|Priority date||Oct 30, 1981|
|Publication number||06316878, 316878, US 4481583 A, US 4481583A, US-A-4481583, US4481583 A, US4481583A|
|Inventors||Mark W. Mueller|
|Original Assignee||At&T Bell Laboratories|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (10), Non-Patent Citations (2), Referenced by (78), Classifications (6), Legal Events (4)|
|External Links: USPTO, USPTO Assignment, Espacenet|
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:
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.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US3573856 *||Jun 24, 1969||Apr 6, 1971||Texas Instruments Inc||Distributed priority of access to a computer unit|
|US3676860 *||Dec 28, 1970||Jul 11, 1972||Ibm||Interactive tie-breaking system|
|US3925766 *||Nov 27, 1973||Dec 9, 1975||Honeywell Inf Systems||Dynamically variable priority access system|
|US4001784 *||Dec 20, 1974||Jan 4, 1977||Honeywell Information Systems Italia||Data processing system having a plurality of input/output channels and physical resources dedicated to distinct and interruptible service levels|
|US4030075 *||Jun 30, 1975||Jun 14, 1977||Honeywell Information Systems, Inc.||Data processing system having distributed priority network|
|US4096571 *||Sep 8, 1976||Jun 20, 1978||Codex Corporation||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|
|US4161779 *||Nov 30, 1977||Jul 17, 1979||Burroughs Corporation||Dynamic priority system for controlling the access of stations to a shared device|
|US4183083 *||Apr 14, 1972||Jan 8, 1980||Duquesne Systems, Inc.||Method of operating a multiprogrammed computing system|
|US4208714 *||Feb 21, 1978||Jun 17, 1980||Telefonaktiebolaget L M Ericsson||Apparatus for giving priority to certain data signals|
|US4232294 *||Apr 30, 1979||Nov 4, 1980||Control Data Corporation||Method and apparatus for rotating priorities between stations sharing a communication channel|
|1||Bell 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.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US4584644 *||Mar 8, 1982||Apr 22, 1986||International Business Machines Corp.||Method of controlling use of resources in a data processing system by at least two processes|
|US4633387 *||Feb 25, 1983||Dec 30, 1986||International Business Machines Corporation||Load balancing in a multiunit system|
|US4692860 *||Mar 12, 1984||Sep 8, 1987||Telefonaktiebolaget Lm Ericsson||Apparatus for load regulation in computer systems|
|US4729093 *||Mar 4, 1987||Mar 1, 1988||Motorola, Inc.||Microcomputer which prioritizes instruction prefetch requests and data operand requests|
|US4736318 *||Mar 1, 1985||Apr 5, 1988||Wang Laboratories, Inc.||Data processing system having tunable operating system means|
|US4742447 *||Jan 16, 1986||May 3, 1988||International Business Machines Corporation||Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system|
|US4750116 *||Oct 11, 1985||Jun 7, 1988||International Business Machines Corporation||Hardware resource management|
|US4755938 *||Oct 20, 1986||Jul 5, 1988||Fujitsu Limited||Access request control apparatus which reassigns higher priority to incomplete access requests|
|US4787026 *||Jan 17, 1986||Nov 22, 1988||International Business Machines Corporation||Method to manage coprocessor in a virtual memory virtual machine data processing system|
|US4918599 *||Sep 29, 1986||Apr 17, 1990||Fujitsu Limited||Interrupt control system|
|US5193172 *||Jan 22, 1990||Mar 9, 1993||Hitachi, 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, 1991||Mar 9, 1993||Allen-Bradley Company, Inc.||Programmable controller with multiple priority level task processing|
|US5325525 *||Apr 4, 1991||Jun 28, 1994||Hewlett-Packard Company||Method 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, 1991||May 30, 1995||International Business Machines Corporation||Method 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, 1994||Dec 5, 1995||International Business Machines Corporation||Apparatus and method for managing a data processing system workload according to two or more distinct processing goals|
|US5499345 *||Mar 15, 1995||Mar 12, 1996||Nec Corporation||Bus arbitration system|
|US5522055 *||Aug 25, 1994||May 28, 1996||Matsushita Graphic Communication Systems, Inc.||Electronic file system with pre read memory management of data to be displayed|
|US5530860 *||May 14, 1993||Jun 25, 1996||Fujitsu Limited||Virtual computer control system effectively using a CPU with predetermined assignment ratios of resources based on a first and second priority mechanism|
|US5537542 *||Apr 4, 1994||Jul 16, 1996||International Business Machines Corporation||Apparatus and method for managing a server workload according to client performance goals in a client/server data processing system|
|US5600822 *||Apr 5, 1994||Feb 4, 1997||International Business Machines Corporation||Resource allocation synchronization in a parallel processing system|
|US5603029 *||Jun 7, 1995||Feb 11, 1997||International Business Machines Corporation||System 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, 1996||Dec 1, 1998||Vlsi Technology, Inc.||Adaptive arbitration mechanism for a shared multi-master bus|
|US5894572 *||Jun 7, 1995||Apr 13, 1999||Network Computing Devices, Inc.||Method for process scheduling in a processor based system|
|US5915095 *||Aug 8, 1995||Jun 22, 1999||Ncr Corporation||Method and apparatus for balancing processing requests among a plurality of servers based on measurable characteristics off network node and common application|
|US5948094 *||Sep 17, 1997||Sep 7, 1999||Intel Corporation||Method and apparatus for executing multiple transactions within a single arbitration cycle|
|US6067557 *||Sep 6, 1996||May 23, 2000||Cabletron Systems, Inc.||Method and system for allocating CPU bandwidth by prioritizing competing processes|
|US6092137 *||Nov 26, 1997||Jul 18, 2000||Industrial Technology Research Institute||Fair data bus arbitration system which assigns adjustable priority values to competing sources|
|US6148324 *||Jan 5, 1998||Nov 14, 2000||Lucent Technologies, Inc.||Prioritized load balancing among non-communicating processes in a time-sharing system|
|US6163840 *||Nov 26, 1997||Dec 19, 2000||Compaq Computer Corporation||Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline|
|US6175814||Nov 26, 1997||Jan 16, 2001||Compaq Computer Corporation||Apparatus for determining the instantaneous average number of instructions processed|
|US6195748||Nov 26, 1997||Feb 27, 2001||Compaq Computer Corporation||Apparatus for sampling instruction execution information in a processor pipeline|
|US6237059||Nov 26, 1997||May 22, 2001||Compaq Computer Corporation||Method for estimating statistics of properties of memory system interactions among contexts in a computer system|
|US6237073||Nov 26, 1997||May 22, 2001||Compaq Computer Corporation||Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information|
|US6282561 *||Dec 7, 1995||Aug 28, 2001||Microsoft Corporation||Method and system for resource management with independent real-time applications on a common set of machines|
|US6332178||Nov 26, 1997||Dec 18, 2001||Compaq Computer Corporation||Method for estimating statistics of properties of memory system transactions|
|US6374367||Nov 26, 1997||Apr 16, 2002||Compaq Computer Corporation||Apparatus and method for monitoring a computer system to guide optimization|
|US6430592 *||Jun 2, 1994||Aug 6, 2002||International Business Machines Corporation||System for sharing CPU time amongst multiple users|
|US6438704||Mar 25, 1999||Aug 20, 2002||International Business Machines Corporation||System and method for scheduling use of system resources among a plurality of limited users|
|US6442585||Nov 26, 1997||Aug 27, 2002||Compaq Computer Corporation||Method for scheduling contexts based on statistics of memory system interactions in a computer system|
|US6549930 *||Nov 26, 1997||Apr 15, 2003||Compaq Computer Corporation||Method for scheduling threads in a multithreaded processor|
|US6587865 *||Sep 21, 1998||Jul 1, 2003||International Business Machines Corporation||Locally made, globally coordinated resource allocation decisions based on information provided by the second-price auction model|
|US6701431||Jan 29, 2001||Mar 2, 2004||Infineon Technologies Ag||Method of generating a configuration for a configurable spread spectrum communication device|
|US6714960 *||Nov 20, 1996||Mar 30, 2004||Silicon Graphics, Inc.||Earnings-based time-share scheduling|
|US6968379 *||May 30, 1997||Nov 22, 2005||Sun Microsystems, Inc.||Latency-reducing bandwidth-prioritization for network servers and clients|
|US7171479||Apr 26, 2002||Jan 30, 2007||International Business Machines Corporation||Efficient delivery of boot code images from a network server|
|US7325234||Feb 15, 2002||Jan 29, 2008||Siemens Medical Solutions Health Services Corporation||System and method for monitoring computer application and resource utilization|
|US7571438||Jul 18, 2001||Aug 4, 2009||Microsoft Corporation||Method and system for resource management with independent real-time applications on a common set of machines|
|US7573808 *||Aug 6, 2004||Aug 11, 2009||Fujitsu Limited||Smart resync of data between a network management system and a network element|
|US7810096 *||Jan 3, 2005||Oct 5, 2010||Hitachi, Ltd.||Computer executing multiple operating systems|
|US7970902 *||Mar 19, 2004||Jun 28, 2011||Hewlett-Packard Development Company, L.P.||Computing utility policing system and method using entitlement profiles|
|US9224168||Dec 11, 2012||Dec 29, 2015||Microsoft Technology Licensing, Llc||Tuning product policy using observed evidence of customer behavior|
|US9336359||Feb 6, 2012||May 10, 2016||Microsoft Technology Licensing, Llc||Device certificate individualization|
|US9619766 *||Sep 16, 2013||Apr 11, 2017||International Business Machines Corporation||E-business value web|
|US9691042||May 24, 2012||Jun 27, 2017||International Business Machines Corporation||E-Business value web|
|US9811790||May 15, 2012||Nov 7, 2017||International Business Machines Corporation||E-business value web|
|US20020007389 *||Jul 18, 2001||Jan 17, 2002||Microsoft Corporation||Method and system for resource management with independent real-time applications on a common set of machines|
|US20020178206 *||Feb 15, 2002||Nov 28, 2002||Siemens Medical Solutions Health Services Corporation||System and method for monitoring computer application and resource utilization|
|US20030014474 *||May 30, 2002||Jan 16, 2003||Mckaig Ray S.||Alternate zero overhead task change circuit|
|US20030204603 *||Apr 26, 2002||Oct 30, 2003||International Business Machines Corporation||Efficient delivery of boot code images from a network server|
|US20050149933 *||Jan 3, 2005||Jul 7, 2005||Masahiko Saito||Computer executing multiple operating systems|
|US20050210262 *||Mar 19, 2004||Sep 22, 2005||Jerry Rolia||Computing utility policing system and method using entitlement profiles|
|US20060028979 *||Aug 6, 2004||Feb 9, 2006||Gilbert Levesque||Smart resync of data between a network management system and a network element|
|US20060106845 *||Dec 8, 2004||May 18, 2006||Microsoft Corporation||System and method for computer-based local generic commerce and management of stored value|
|US20060112208 *||Nov 22, 2004||May 25, 2006||International Business Machines Corporation||Interrupt thresholding for SMT and multi processor systems|
|US20060200608 *||Nov 28, 2005||Sep 7, 2006||Shih-Wei Peng||Bus arbiter and bus arbitrating method|
|US20140019180 *||Sep 16, 2013||Jan 16, 2014||International Business Machines Corporation||E-business value web|
|CN104076333A *||Jul 5, 2014||Oct 1, 2014||中国船舶重工集团公司第七二四研究所||Method for implementing rotating phased array radar beam self-adaption arrangement based on twice sorting|
|EP0549208A2 *||Dec 10, 1992||Jun 30, 1993||International Business Machines Corporation||Multiprocess access and accounting control|
|EP0549208A3 *||Dec 10, 1992||May 4, 1994||Ibm||Title not available|
|EP1039383A2 *||Mar 15, 2000||Sep 27, 2000||International Business Machines Corporation||System and method for scheduling system resources|
|EP1039383A3 *||Mar 15, 2000||Aug 23, 2006||International Business Machines Corporation||System and method for scheduling system resources|
|EP2553595A1 *||Mar 17, 2011||Feb 6, 2013||EMC Corporation||Apparatus and method for query prioritization in a shared nothing distributed database|
|EP2553595A4 *||Mar 17, 2011||Oct 29, 2014||Gopivotal Inc||Apparatus and method for query prioritization in a shared nothing distributed database|
|WO1992017796A1 *||Mar 27, 1992||Oct 15, 1992||The Commonwealth Of Australia||Radar control task scheduling|
|WO2001055864A1 *||Jan 29, 2001||Aug 2, 2001||Morphics Technology Inc.||A method of generating a configuration for a configurable spread spectrum communication device|
|WO2002097630A2 *||May 15, 2002||Dec 5, 2002||Siemens Medical Solutions Usa, Inc.||System and method for monitoring computer application and resource utilization|
|WO2002097630A3 *||May 15, 2002||Apr 1, 2004||Siemens Medical Solutions||System and method for monitoring computer application and resource utilization|
|WO2004019206A1 *||Aug 22, 2003||Mar 4, 2004||Xyron Corporation, An Oregon Corporation||Dynamic multilevel task management method and apparatus|
|U.S. Classification||710/244, 713/502|
|Cooperative Classification||G06F2209/5021, G06F9/5038|
|Oct 30, 1981||AS||Assignment|
Owner name: BELL TELEPHONE LABORATORIES, INCORPORATED, 600 MOU
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:MUELLER, MARK W.;REEL/FRAME:003942/0401
Effective date: 19811026
|Mar 25, 1988||FPAY||Fee payment|
Year of fee payment: 4
|Mar 26, 1992||FPAY||Fee payment|
Year of fee payment: 8
|Apr 15, 1996||FPAY||Fee payment|
Year of fee payment: 12