WO2001038980A1 - Resource governor and structure therefor - Google Patents

Resource governor and structure therefor Download PDF

Info

Publication number
WO2001038980A1
WO2001038980A1 PCT/AU2000/001418 AU0001418W WO0138980A1 WO 2001038980 A1 WO2001038980 A1 WO 2001038980A1 AU 0001418 W AU0001418 W AU 0001418W WO 0138980 A1 WO0138980 A1 WO 0138980A1
Authority
WO
WIPO (PCT)
Prior art keywords
buffer
resource
resources
execution
tasks
Prior art date
Application number
PCT/AU2000/001418
Other languages
French (fr)
Inventor
Raymond John Huetter
Original Assignee
Bullant Technology Pty Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AUPQ4181A external-priority patent/AUPQ418199A0/en
Application filed by Bullant Technology Pty Ltd filed Critical Bullant Technology Pty Ltd
Priority to AU15042/01A priority Critical patent/AU1504201A/en
Publication of WO2001038980A1 publication Critical patent/WO2001038980A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Definitions

  • the present invention relates to a resource governor and structure therefor and, more particularly although not exclusively, to a resource governor and structure particularly suited for a symmetric multiprocessing (SMP) computer environment.
  • SMP symmetric multiprocessing
  • a typical prior art computer system 201 will have a number of tasks or other resources in a work pool 202 from which resource consumers such as first worker 203, second worker 204 and third worker 205 take tasks/resources for execution/consumption and subsequent return to work pool 202 after execution/ consumption.
  • the resource governor and structure therefor of the present invention is not to be confused with a task scheduler or a task scheduler algorithm.
  • the resource governor is implemented as a special purpose task. This task, itself, may be the subject of a task scheduler under the ultimate control of and, for example, called by the operating system specific to any platform upon which the resource governor may be implemented.
  • the resource governor and any structure by which it is implemented is not a task scheduler.
  • a task scheduler does not resolve resource conflicts and, indeed, as a result of scheduling a task for execution may cause a resource conflict to occur when that task runs.
  • a method of allocation of usable resources to resource consumers in a computer system said computer system having a plurality of usable resources available for work or to be worked on and one or more resource consumers capable of consuming said usable resources; said method comprising:
  • said resource governor receiving used resources from said resource consumers .
  • said usable resources include tasks, unused objects, a unit of network bandwidth or a designated unit of an input/output operation.
  • each said resource consumer includes an input buffer.
  • each said resource consumer device includes an output buffer.
  • said input buffer is a non- locking buffer.
  • More preferably said output buffer is a non- locking buffer.
  • said input buffer is a ring buffer.
  • said output buffer is a ring buffer.
  • a method of allocation of tasks to execution devices in a computer system comprising: (a) instituting a special purpose task as a task allocator;
  • each said execution device includes an input buffer.
  • each said execution device includes an output buffer.
  • said input buffer is a non- locking buffer.
  • said output buffer is a non- locking buffer. Even more preferably said input buffer is a ring buffer. Even more preferably said output buffer is a ring buffer.
  • a structure suitable for use in conjunction with a resource governor comprising a resource consumer having at least one input buffer and from which said resource consumer takes usable resources for use.
  • said resource consumer accepts resources for use of a predefined type from said at least one input buffer.
  • said resource consumer obtains said usable resources for use only from said at least one input buffer.
  • said at least one input buffer receives resources of only said predefined type.
  • said resource consumer experiences no contention for execution of said usable resources for use.
  • said structure further includes an output buffer into which said resource consumer places said usable resources following execution by said resource consumer.
  • said at least one input buffer is a nonlocking buffer.
  • said output buffer is a non-locking buffer. More preferably said input buffer is a ring buffer. More preferably said output buffer is a ring buffer.
  • FIG. 1 is a block diagram of a resource distribution arrangement for a prior art system
  • Fig. 2 graphically illustrates behaviour which can be experienced by the system of Fig. 1 under high load
  • Fig. 3A is a block diagram of a structure according to a first preferred embodiment of the present invention
  • Fig. 3B is a block diagram of a structure according to a second preferred embodiment of the present invention
  • Fig. 4 is a block diagram of a resource governor arrangement according to a further preferred embodiment of the invention
  • Fig. 5 is a block diagram of a task governor according to a further embodiment of the invention.
  • Figs. 6 A-H illustrate detailed operation of the governor of Fig . 5 ;
  • Fig. 7 illustrates graphically the behaviour of the system of Fig. 5 for large system loads
  • Fig. 8 is a block diagram of a transaction processing system to which an embodiment of the present invention has been applied.
  • Fig. 9 is a block diagram of a further system to which an embodiment of the present invention has been applied
  • a resource consumer 210 according to a first preferred embodiment of the invention comprising a resource consumer device 211 which accepts resources for consumption via input buffer 212.
  • the arrangement is such that resource consumer device 211 can take only one defined resource at a time from input buffer 212 thereby providing an inherently contention- free structure for consumption of resources by resource consumer device 211.
  • a resource consumer 215 according to a second embodiment of the invention is illustrated comprising, in this instance, a resource consumer device 216 which receives resources for consumption from input buffer 217 and then, after consumption of resources, outputs the consumed resources to output buffer 218.
  • resources for consumption are fed to the input buffers 212, 217 and from whence, in order of delivery into buffer 212, 217 the resources are taken by respective consumer devices 211, 216. In this way no contentions occur within the consumer devices 211, 216 because the consumer devices can operate simply on the basis of working on (consuming) one resource at a time and, in the case of the second embodiment of Fig. 3B, simply placing an executed or consumed resource into output buffer 218 before looking to, and preferably only to, input buffer 217 for the next resource for consumption by resource consumer 216.
  • resources can be any definable unit of work which can be worked upon by a resource consumer.
  • the resource can be a task for execution by the resource consumer which, itself, can be a CPU or thread of a computer system.
  • a resource can also be a data block or other definable unit of data which requires work to be performed on it. More broadly, a resource can be a unit of network bandwidth or a definable input/output operation.
  • the arrangements of Fig. 3A or 3B and, more specifically in this instance, the arrangement of Fig. 3B can be applied via the intermediary of a resource governor or resource allocator to a system of resource allocation which allows allocation and consumption of resources without the consuming devices becoming involved in the allocation process.
  • the resource consumers do not need to have their execution interrupted for the purpose of resource allocation or resolution of contention.
  • the consumers are numbered as for the second embodiment of Fig. 3B with the first resource consumer and its components incorporating the suffix a, the second resource consumer and its components the suffix b and so on .
  • a plurality of resources 219 await allocation in resource pool 220.
  • the resources 219 are allocated for consumption by consumers 215a, 215b exclusively by a special purpose thread or task known as the resource governor 221.
  • the resource governor 221 allocates resources to buffers 217a, b ... consecutively, providing there is room in the buffers to take the resources for consumption.
  • the resource governor 221 also receives from output buffers 218a, b ... consumed resources which are either re-allocated to an input buffer or are returned to the resource pool 220.
  • the resource governor 221 is the only entity which supplies resources to input buffers 217a, b ... and receives consumed resources from output buffers 218a, b ... there is no locking required and no resource contention.
  • the combination of the single purpose resource governor 221 with the buffering arrangement illustrated in Fig. 4 means that the resource consumers 215a, b ... do not become involved in resource contention issues and can devote themselves exclusively to resource consumption in the form of what might generally be termed useful work.
  • the resources 219 are tasks for execution by a multi-tasking computer system.
  • the resource pool 220 comprises tasks which are dormant in the system.
  • the governor 221 removes them from the pool 220 and puts them into the next available input buffer 217a, b ....
  • the resource consumers 215a, b ... remove tasks from their respective input buffers 217a, b ..., execute them and then place them into output buffers 218a, b ... following which the governor 221 removes these tasks from the output buffers.
  • This particular embodiment exhibits the property that the resource scheduling overhead varies linearly with the number of consumers 215a, b ... available to do work and not with the total amount of work to be done.
  • Figs. 6A to 6H provide a particular example of the arrangement of Fig. 4 and, more particularly, the arrangement of Fig. 5 where the resources comprise tasks in the form of additions of integers which need to be performed by consumers or workers which, in this case, are simple adder devices.
  • the resource pool 220 comprises a structure of the type described with reference to Fig. 3B where the consumer takes the form of an addition requestor 222 having an input ring buffer 223 into which completed additions are placed and an output ring buffer 224 into which addition operations 225 are placed for working on by consumers, in this instance in the form of adders 215a, 215b.
  • governor 221 accepts addition operation 225 (the addition of integers 1 and 2) (Fig. 6B) .
  • the governor 221 then puts the addition operation 225 into the input ring buffer 217a of first adder 216a (Fig. 6C) .
  • First adder 216a then takes the addition operation 225 from input ring buffer 217a and performs the addition (to produce the result integer 3) as shown in Fig. 6D.
  • first adder 216a then inserts the (completed) addition operation 225 into output ring buffer 218a as shown in Fig. 6E.
  • Governor 221 then takes the (completed) addition operation 225 from the output ring buffer 218a and puts it into the input ring buffer 223 of (addition) resource pool 220 as shown in Fig. 6F.
  • FIGS. 6G and 6H show the application of the basic sequence just described with reference to Figs. 6A through to
  • first adder 215a or second adder 215b for execution by one or other of first adder 215a or second adder 215b.
  • the arrows in Fig. 6H indicate the direction of insertion into respective input buffers and removal from the respective output buffers.
  • this basic arrangement can be scaled to handle a significantly larger number of addition operations by adjusting the size (length) of the various buffers with reference to the rate at which the adders can perform addition operations and the governor can put and get addition operations.
  • the additions are allocated by the special purpose governor 221.
  • each adder is not concerned with resource allocation or resource conflict resolution.
  • each adder is devoted to performing sequentially the work which it is defined to do, in this instance addition, so long as addition operations are available for removal from an input buffer of that adder .
  • FIG. 8 a further example of the application of the governor arrangement and the buffering arrangement described with reference to Figs. 3 and 4 is illustrated. Again, like components are numbered as for the description with reference to Fig. 4.
  • system 230 is a transaction processing system and has available to it disk storage 231 which is written to and read from via an I/O subsystem 232 which is communicated with exclusively by a special purpose task termed the delta writer 215c which is devoted to writing transactions to disk storage 231.
  • the delta writer 215c is a particular resource consumer for the transaction processing system 230.
  • the other resource consumers are first CPU 215a and second CPU 215b, each adapted to consume all other kinds of tasks derived from task pool 220.
  • the special purpose governor task 221 is programmed to be aware of the special purpose delta writer 215c and allocates all transactions requiring a disk write to the input buffer 217c of delta writer 215c. Having performed the disk I/O portion via I/O subsystem 232 the executed transaction write tasks are placed in output ring buffer 218c from which governor 221 can then remove these executed tasks for reallocation or return to task pool 220.
  • the CPU's 215a, 215b are not required to be involved in time consuming disk I/O operations. Furthermore contentions for resources including disk I/O resources are removed from the transaction processing system 230 by use of the single special purpose governor 221 (which may itself be a task) which is designated as the sole task permitted to place resources for consumption into the input ring buffers 217a, b, c and remove consumed resources from the output buffers 218a, b, c and also to exclusively take resources from and place resources back into task pool 220.
  • the single special purpose governor 221 which may itself be a task
  • a single resource consumer accesses more than one input buffer.
  • the resource consumer comprises a multiple input buffer resource consumer 240.
  • Like components are numbered as for the task implementation of Fig. 5.
  • First input buffer 217al receives resources for consumption in the form of tasks from task governor 221.
  • Second input buffer 217a2 receives resources for consumption in the form of particular data structures in the form of unused or available objects supplied by a garbage collector or cleaner task 241.
  • the resource consumer device 216a is a CPU programmed to recognise and request, as required or needed, different types of resources for consumption including, in this instance, tasks from input buffer 217al and unused or available objects from second input buffer 217a2.

Abstract

A method of allocation of usable resources to resource consumers in a computer system, the computer system having a plurality of usable resources available for work or to be worked on and one or more resource consumers capable of consuminmg said usable resources. The method comprising: (a) instituting a special purpose task as a resource governor; (b) the resource governor distributing the usable resources to the resonrce consumers; (c) the resource governor receiving used resources from the resource consumers.

Description

RESOURCE GOVERNOR & STRUCTURE THEREFOR
The present invention relates to a resource governor and structure therefor and, more particularly although not exclusively, to a resource governor and structure particularly suited for a symmetric multiprocessing (SMP) computer environment.
BACKGROUND
Conventional computer operating system environments such as Windows 98, Windows NT and Unix are structured to be multi-tasked, multi-threaded systems whereby the processing tasks of the underlying hardware which the operating system resource manages are managed so as to provide efficient, time shared usage of the execution cycles of the underlying CPU or CPU's.
Typically these existing systems are not particularly fine grained and it is frequently observed, for example where such systems utilise the spinlock method of resolving resource requests, that they reach a point of diminishing returns as the task load increases on the underlying CPU's.
More broadly the structure of existing systems tends to lead to a dramatic growth in resource conflicts as system load increases . A typical computing system spends a significant amount of time resolving resource contentions which occur within the system during operation.
With reference to Fig. 1 and Fig. 2 a typical prior art computer system 201 will have a number of tasks or other resources in a work pool 202 from which resource consumers such as first worker 203, second worker 204 and third worker 205 take tasks/resources for execution/consumption and subsequent return to work pool 202 after execution/ consumption.
Because all of the workers are taking work from the one pool directly resource contentions occur which require resolution before useful work can be done.
With reference to Fig. 2, as reflected in graph 207, it can be seen that underlying CPU utilisation in this example, is devoted 90% or more to resolving resource contention
(lightly shaded area 208 in graph 207) and 10% or less to what might be termed "useful" work or activity (cross-hatched area 209 in graph 207) . It is an object of the present invention to overcome or ameliorate one or more of the abovementioned disadvantages or at least provide a useful alternative. SUMMARY OF INVENTION
The resource governor and structure therefor of the present invention, as to be described below, is not to be confused with a task scheduler or a task scheduler algorithm. In embodiments of the resource governor of the present invention, as to be described below, the resource governor is implemented as a special purpose task. This task, itself, may be the subject of a task scheduler under the ultimate control of and, for example, called by the operating system specific to any platform upon which the resource governor may be implemented. The resource governor and any structure by which it is implemented is not a task scheduler. A task scheduler does not resolve resource conflicts and, indeed, as a result of scheduling a task for execution may cause a resource conflict to occur when that task runs.
Accordingly, in one broad form of the invention there is provided a method of allocation of usable resources to resource consumers in a computer system, said computer system having a plurality of usable resources available for work or to be worked on and one or more resource consumers capable of consuming said usable resources; said method comprising:
(a) instituting a special purpose task as a resource governor; (b) said resource governor distributing said usable resources to said resource consumers;
(c) said resource governor receiving used resources from said resource consumers . Preferably said usable resources include tasks, unused objects, a unit of network bandwidth or a designated unit of an input/output operation.
Preferably each said resource consumer includes an input buffer. Preferably each said resource consumer device includes an output buffer.
More preferably said input buffer is a non- locking buffer.
More preferably said output buffer is a non- locking buffer.
Even more preferably said input buffer is a ring buffer.
Even more preferably said output buffer is a ring buffer.
In a further broad form of the invention there is provided a method of allocation of tasks to execution devices in a computer system; said computer system having a plurality of tasks for execution and one or more execution devices capable of executing said tasks; said method comprising: (a) instituting a special purpose task as a task allocator;
(b) said task allocator distributing said tasks for execution to said execution devices; (c) said task allocator receiving from said execution devices said executed tasks . Preferably each said execution device includes an input buffer.
Preferably each said execution device includes an output buffer.
More preferably said input buffer is a non- locking buffer.
More preferably said output buffer is a non- locking buffer. Even more preferably said input buffer is a ring buffer. Even more preferably said output buffer is a ring buffer.
In yet a further broad form of the invention there is provided a structure suitable for use in conjunction with a resource governor, said structure comprising a resource consumer having at least one input buffer and from which said resource consumer takes usable resources for use.
Preferably said resource consumer accepts resources for use of a predefined type from said at least one input buffer. Preferably said resource consumer obtains said usable resources for use only from said at least one input buffer.
Preferably said at least one input buffer receives resources of only said predefined type. Preferably said resource consumer experiences no contention for execution of said usable resources for use.
Preferably said structure further includes an output buffer into which said resource consumer places said usable resources following execution by said resource consumer. Preferably said at least one input buffer is a nonlocking buffer.
Preferably said output buffer is a non-locking buffer. More preferably said input buffer is a ring buffer. More preferably said output buffer is a ring buffer.
BRIEF DESCRIPTION OF DRAWINGS
Embodiments of the present invention will now be described with reference to the accompanying drawings wherein: Fig. 1 is a block diagram of a resource distribution arrangement for a prior art system;
Fig. 2 graphically illustrates behaviour which can be experienced by the system of Fig. 1 under high load; Fig. 3A is a block diagram of a structure according to a first preferred embodiment of the present invention;
Fig. 3B is a block diagram of a structure according to a second preferred embodiment of the present invention; Fig. 4 is a block diagram of a resource governor arrangement according to a further preferred embodiment of the invention;
Fig. 5 is a block diagram of a task governor according to a further embodiment of the invention; Figs. 6 A-H illustrate detailed operation of the governor of Fig . 5 ;
Fig. 7 illustrates graphically the behaviour of the system of Fig. 5 for large system loads;
Fig. 8 is a block diagram of a transaction processing system to which an embodiment of the present invention has been applied; and
Fig. 9 is a block diagram of a further system to which an embodiment of the present invention has been applied
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
With reference to Fig. 3A there is illustrated a resource consumer 210 according to a first preferred embodiment of the invention comprising a resource consumer device 211 which accepts resources for consumption via input buffer 212. The arrangement is such that resource consumer device 211 can take only one defined resource at a time from input buffer 212 thereby providing an inherently contention- free structure for consumption of resources by resource consumer device 211.
With reference to Fig. 3B a resource consumer 215 according to a second embodiment of the invention is illustrated comprising, in this instance, a resource consumer device 216 which receives resources for consumption from input buffer 217 and then, after consumption of resources, outputs the consumed resources to output buffer 218.
In use for the embodiments of both Fig. 3A and Fig. 3B resources for consumption are fed to the input buffers 212, 217 and from whence, in order of delivery into buffer 212, 217 the resources are taken by respective consumer devices 211, 216. In this way no contentions occur within the consumer devices 211, 216 because the consumer devices can operate simply on the basis of working on (consuming) one resource at a time and, in the case of the second embodiment of Fig. 3B, simply placing an executed or consumed resource into output buffer 218 before looking to, and preferably only to, input buffer 217 for the next resource for consumption by resource consumer 216. In the context of computer systems "resources" can be any definable unit of work which can be worked upon by a resource consumer. So, for example, the resource can be a task for execution by the resource consumer which, itself, can be a CPU or thread of a computer system. A resource can also be a data block or other definable unit of data which requires work to be performed on it. More broadly, a resource can be a unit of network bandwidth or a definable input/output operation. With reference to Fig. 4 the arrangements of Fig. 3A or 3B and, more specifically in this instance, the arrangement of Fig. 3B can be applied via the intermediary of a resource governor or resource allocator to a system of resource allocation which allows allocation and consumption of resources without the consuming devices becoming involved in the allocation process. Stated another way, in this embodiment, the resource consumers do not need to have their execution interrupted for the purpose of resource allocation or resolution of contention. In the arrangement of Fig. 4 the consumers are numbered as for the second embodiment of Fig. 3B with the first resource consumer and its components incorporating the suffix a, the second resource consumer and its components the suffix b and so on . In this instance a plurality of resources 219 await allocation in resource pool 220. The resources 219 are allocated for consumption by consumers 215a, 215b exclusively by a special purpose thread or task known as the resource governor 221.
The resource governor 221 allocates resources to buffers 217a, b ... consecutively, providing there is room in the buffers to take the resources for consumption. The resource governor 221 also receives from output buffers 218a, b ... consumed resources which are either re-allocated to an input buffer or are returned to the resource pool 220.
Because the resource governor 221 is the only entity which supplies resources to input buffers 217a, b ... and receives consumed resources from output buffers 218a, b ... there is no locking required and no resource contention.
The combination of the single purpose resource governor 221 with the buffering arrangement illustrated in Fig. 4 means that the resource consumers 215a, b ... do not become involved in resource contention issues and can devote themselves exclusively to resource consumption in the form of what might generally be termed useful work.
With reference to Fig. 5 a particular example of an application of the arrangement of Fig. 4 is illustrated where the resources 219 are tasks for execution by a multi-tasking computer system. In this instance the resource pool 220 comprises tasks which are dormant in the system. When dormant tasks become active the governor 221 removes them from the pool 220 and puts them into the next available input buffer 217a, b ....
The resource consumers 215a, b ... remove tasks from their respective input buffers 217a, b ..., execute them and then place them into output buffers 218a, b ... following which the governor 221 removes these tasks from the output buffers. This particular embodiment exhibits the property that the resource scheduling overhead varies linearly with the number of consumers 215a, b ... available to do work and not with the total amount of work to be done.
Figs. 6A to 6H provide a particular example of the arrangement of Fig. 4 and, more particularly, the arrangement of Fig. 5 where the resources comprise tasks in the form of additions of integers which need to be performed by consumers or workers which, in this case, are simple adder devices.
Again, like components are numbered as for Fig. 4 and Fig. 5.
In this instance the resource pool 220 comprises a structure of the type described with reference to Fig. 3B where the consumer takes the form of an addition requestor 222 having an input ring buffer 223 into which completed additions are placed and an output ring buffer 224 into which addition operations 225 are placed for working on by consumers, in this instance in the form of adders 215a, 215b.
Governor 221 accepts addition operation 225 (the addition of integers 1 and 2) (Fig. 6B) . The governor 221 then puts the addition operation 225 into the input ring buffer 217a of first adder 216a (Fig. 6C) .
First adder 216a then takes the addition operation 225 from input ring buffer 217a and performs the addition (to produce the result integer 3) as shown in Fig. 6D.
Having completed the addition operation ("the work") first adder 216a then inserts the (completed) addition operation 225 into output ring buffer 218a as shown in Fig. 6E. Governor 221 then takes the (completed) addition operation 225 from the output ring buffer 218a and puts it into the input ring buffer 223 of (addition) resource pool 220 as shown in Fig. 6F.
Figs. 6G and 6H show the application of the basic sequence just described with reference to Figs. 6A through to
6F where there are multiple addition operations 225a, b, c, d
... p for execution by one or other of first adder 215a or second adder 215b. The arrows in Fig. 6H indicate the direction of insertion into respective input buffers and removal from the respective output buffers.
It will be appreciated that this basic arrangement can be scaled to handle a significantly larger number of addition operations by adjusting the size (length) of the various buffers with reference to the rate at which the adders can perform addition operations and the governor can put and get addition operations. In all instances it will be observed that the additions are allocated by the special purpose governor 221. It will also be observed that, each adder is not concerned with resource allocation or resource conflict resolution. By virtue of the buffering arrangement illustrated each adder is devoted to performing sequentially the work which it is defined to do, in this instance addition, so long as addition operations are available for removal from an input buffer of that adder .
With reference to Fig. 7 experiments have indicated that an expected behaviour of a computer system where resources are governed utilising the methods and structure previously described the characteristic curve of system load (tasks) graphed against work done by the system initially rises steeply as per portion 226, then plateaus at plateau point 227 before falling away gradually in accordance with portion 228. This characteristic can be interpreted that, under heavy task load, the system overhead associated with scheduling of tasks grows gradually with increasing number of tasks . A saturation point is ultimately reached (not shown) as will occur with any real -world system which is bounded by resource constraints, be they number of CPU's, CPU execution speed, memory resources etc.
With reference to Fig. 8 a further example of the application of the governor arrangement and the buffering arrangement described with reference to Figs. 3 and 4 is illustrated. Again, like components are numbered as for the description with reference to Fig. 4.
In this instance there is a resource pool in the form of task pool 220 from which tasks are scheduled exclusively by resource governor 221. In this instance system 230 is a transaction processing system and has available to it disk storage 231 which is written to and read from via an I/O subsystem 232 which is communicated with exclusively by a special purpose task termed the delta writer 215c which is devoted to writing transactions to disk storage 231.
In one embodiment the delta writer 215c is a particular resource consumer for the transaction processing system 230. The other resource consumers are first CPU 215a and second CPU 215b, each adapted to consume all other kinds of tasks derived from task pool 220.
The special purpose governor task 221 is programmed to be aware of the special purpose delta writer 215c and allocates all transactions requiring a disk write to the input buffer 217c of delta writer 215c. Having performed the disk I/O portion via I/O subsystem 232 the executed transaction write tasks are placed in output ring buffer 218c from which governor 221 can then remove these executed tasks for reallocation or return to task pool 220.
Thus the CPU's 215a, 215b are not required to be involved in time consuming disk I/O operations. Furthermore contentions for resources including disk I/O resources are removed from the transaction processing system 230 by use of the single special purpose governor 221 (which may itself be a task) which is designated as the sole task permitted to place resources for consumption into the input ring buffers 217a, b, c and remove consumed resources from the output buffers 218a, b, c and also to exclusively take resources from and place resources back into task pool 220.
With reference to Fig. 9 there is shown a further embodiment of the invention where a single resource consumer accesses more than one input buffer. In this instance the resource consumer comprises a multiple input buffer resource consumer 240. Like components are numbered as for the task implementation of Fig. 5.
In this instance there is a first input buffer 217al and a second input buffer 217a2.
First input buffer 217al receives resources for consumption in the form of tasks from task governor 221.
Second input buffer 217a2 receives resources for consumption in the form of particular data structures in the form of unused or available objects supplied by a garbage collector or cleaner task 241.
The resource consumer device 216a, in this instance, is a CPU programmed to recognise and request, as required or needed, different types of resources for consumption including, in this instance, tasks from input buffer 217al and unused or available objects from second input buffer 217a2.
As for earlier embodiments no resource contention is experienced by CPU 216a nor is it required, during resource consumption, to resolve conflicts or contentions. When a resource for consumption of type "task" is required by CPU 216a it is programmed to obtain resources for consumption of that type only from first input buffer 217al. Similarly it is programmed to recognise resources for consumption of type "objects" and is programmed to obtain those, when it requires, exclusively from second input buffer 217a2.
The above describes only some embodiments of the present invention and modifications, obvious to those skilled in the art, can be made thereto without departing from the scope and spirit of the present invention.
In particular, the structures previously described have broad application within computer systems and can, for example, include the situation where a computer system will apply multiple applications of the structure of Fig. 4.

Claims

1. A method of allocation of usable resources to resource consumers in a computer system, said computer system having a plurality of usable resources available for work or to be worked on and one or more resource consumers capable of consuming said usable resources; said method comprising:
(a) instituting a special purpose task as a resource governor; (b) said resource governor distributing said usable resources to said resource consumers; (c) said resource governor receiving used resources from said resource consumers .
2. The method of Claim 1 wherein said usable resources include tasks, unused objects, a unit of network bandwidth or a designated unit of an input/output operation.
3. The method of Claim 1 wherein each said resource consumer includes an input buffer.
4. The method of Claim 1 wherein each said resource consumer device includes an output buffer.
5. The method of Claim 3 wherein said input buffer is a non-locking buffer.
6. The method of Claim 4 wherein said output buffer is a non-locking buffer.
7. The method of Claim 5 wherein said input buffer is a ring buffer.
8. The method of Claim 6 wherein said output buffer is a ring buffer.
9. A method of allocation of tasks to execution devices in a computer system; said computer system having a plurality of tasks for execution and one or more execution devices capable of executing said tasks; said method comprising:
(a) instituting a special purpose task as a task allocator;
(b) said task allocator distributing said tasks for execution to said execution devices;
(c) said task allocator receiving from said execution devices said executed tasks.
10. The method of Claim 9 wherein each said execution device includes an input buffer.
11. The method of Claim 9 wherein each said execution device includes an output buffer.
12. The method of Claim 10 wherein said input buffer is a non-locking buffer.
13. The method of Claim 11 wherein said output buffer is a non- locking buffer.
14. The method of Claim 12 wherein said input buffer is a ring buffer.
15. The method of Claim 13 wherein said output buffer is a ring buffer.
16. A structure suitable for use in conjunction with a resource governor, said structure comprising a resource consumer having at least one input buffer and from which said resource consumer takes usable resources for use.
17. The structure of Claim 16 wherein said resource consumer accepts resources for use of a predefined type from said at least one input buffer.
18. The structure of Claim 16 or Claim 17 wherein said resource consumer obtains said usable resources for use only from said at least one input buffer.
19. The structure of Claim 17 wherein said at least one input buffer receives resources of only said predefined type.
20. The structure of Claim 16 wherein said resource consumer experiences no contention for execution of said usable resources for use.
21. The structure of Claim 16; said structure further including an output buffer into which said resource consumer places said usable resources following execution by said resource consumer.
22. The structure of Claim 16 wherein said at least one input buffer is a non- locking buffer.
23. The structure of Claim 21 wherein said output buffer is a non-locking buffer.
24. The structure of Claim 22 wherein said input buffer is a ring buffer.
25. The structure of Claim 23 wherein said output buffer is a ring buffer.
26. Media incorporating software which implements the method of any one of Claims 1 to 8 or Claims 9 to 15.
27. The media of Claim 26 wherein said media comprises a CD- ROM.
28. The media of Claim 26 wherein said media comprises computer memory.
29. The media of Claim 26 wherein said media comprises disk storage .
30. A computer program embodied on a computer readable medium for enabling a method of allocation of usable resources as claimed in any one of Claims 1 to 8.
31. A computer program embodied on a computer readable medium for enabling a method of allocation of tasks to execution devices in a computer system as claimed in any one of Claims 9 to 15.
PCT/AU2000/001418 1999-11-22 2000-11-22 Resource governor and structure therefor WO2001038980A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU15042/01A AU1504201A (en) 1999-11-22 2000-11-22 Resource governor and structure therefor

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
AUPQ4181 1999-11-22
AUPQ4181A AUPQ418199A0 (en) 1999-11-22 1999-11-22 Resource governor & structure therefor
US63726700A 2000-08-10 2000-08-10
US09/637,267 2000-08-10

Publications (1)

Publication Number Publication Date
WO2001038980A1 true WO2001038980A1 (en) 2001-05-31

Family

ID=25646207

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AU2000/001418 WO2001038980A1 (en) 1999-11-22 2000-11-22 Resource governor and structure therefor

Country Status (2)

Country Link
AU (1) AU1504201A (en)
WO (1) WO2001038980A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816415A (en) * 1994-07-01 1996-01-19 Nissan Motor Co Ltd Information processor
US5748468A (en) * 1995-05-04 1998-05-05 Microsoft Corporation Prioritized co-processor resource manager and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816415A (en) * 1994-07-01 1996-01-19 Nissan Motor Co Ltd Information processor
US5748468A (en) * 1995-05-04 1998-05-05 Microsoft Corporation Prioritized co-processor resource manager and method

Also Published As

Publication number Publication date
AU1504201A (en) 2001-06-04

Similar Documents

Publication Publication Date Title
US4796178A (en) Special purpose processor for off-loading many operating system functions in a large data processing system
US4779194A (en) Event allocation mechanism for a large data processing system
Baruah et al. Rate-monotonic scheduling on uniform multiprocessors
Spuri et al. Scheduling aperiodic tasks in dynamic priority systems
Jeffay et al. Accounting for interrupt handling costs in dynamic priority task systems
US6223201B1 (en) Data processing system and method of task management within a self-managing application
Lauzac et al. Comparison of global and partitioning schemes for scheduling rate monotonic tasks on a multiprocessor
KR101651871B1 (en) Job Allocation Method on Multi-core System and Apparatus thereof
JP2012511204A (en) How to reorganize tasks to optimize resources
US20090006502A1 (en) Application-Specific Heap Management
JPH0795317B2 (en) Job allocation method for multiprocessor system
US20060048161A1 (en) Resource allocation method and system
Kim et al. Predictability and consistency in real-time database systems
Becker et al. Scheduling multi-rate real-time applications on clustered many-core architectures with memory constraints
US8001341B2 (en) Managing dynamically allocated memory in a computer system
Coffman, Jr An introduction to combinatorial models of dynamic storage allocation
EP0364000B1 (en) A special purpose processor for off-loading many operating system functions in a large data processing system
WO2001038980A1 (en) Resource governor and structure therefor
CN116382844A (en) Dynamic control method and system for distributed storage multi-asynchronous task
CN111125070A (en) Data exchange method and platform
CA2306969A1 (en) Dynamic scaling back of latch requests for computer system resources
Khemka et al. Multiprocessor scheduling of periodic tasks in a hard real-time environment
JPH0438540A (en) Memory managing system
Stankovic On the reflective nature of the Spring kernel
Sprunt et al. Priority-driven, preemptive I/O controllers for real-time systems

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: COMMUNICATION UNDER RULE 69 EPC (EPO FORM 1205A OF 29.11.2002)

122 Ep: pct application non-entry in european phase