WO2001037096A1 - Data object identification and removal system - Google Patents

Data object identification and removal system Download PDF

Info

Publication number
WO2001037096A1
WO2001037096A1 PCT/AU2000/001401 AU0001401W WO0137096A1 WO 2001037096 A1 WO2001037096 A1 WO 2001037096A1 AU 0001401 W AU0001401 W AU 0001401W WO 0137096 A1 WO0137096 A1 WO 0137096A1
Authority
WO
WIPO (PCT)
Prior art keywords
objects
task
unused
cleaner
cleaner task
Prior art date
Application number
PCT/AU2000/001401
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 AUPQ4125A external-priority patent/AUPQ412599A0/en
Priority claimed from US09/474,868 external-priority patent/US6324550B1/en
Application filed by Bullant Technology Pty Ltd filed Critical Bullant Technology Pty Ltd
Priority to AU13722/01A priority Critical patent/AU1372201A/en
Publication of WO2001037096A1 publication Critical patent/WO2001037096A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory

Definitions

  • the present invention relates to a data object removal system and, more particularly, to such a system particularly suited, although not exclusively, for the identification of and subsequent removal of unused or unusable data objects in a memory system of a computer system, thereby to free up system resources and, more particularly, memory resources.
  • object oriented form of computer system
  • the system can be thought of as producing and using objects, the "objects” being data objects having data fields which either contain data values or pointers to objects.
  • Fig. 1 illustrates a generalised object oriented system 301 containing a first data object 302 and a second data object 303.
  • the first data object 302 comprises a single data record having a number of different data fields, one of which is a pointer field 304 containing data which points to
  • Problems with current systems include inability to locate islands, a requirement that the operating system suspend processing while garbage is being collected and a general inability to consistently and comprehensively first identify and then remove unwanted or unused data objects
  • each task adapted to indicate to the cleaner task the identity of a unique reference which it has displaced.
  • said cleaner task takes into account the identity of those unique references which are indicated as having been displaced.
  • a computer system which includes objects with references between objects forming an at least first directed graph; said computer system performing computing functions by way of a plurality of tasks each of which operate with or on said objects and at least one of which tasks is designated as a cleaner task; the system having the property that it is possible for the cleaner task to discover all objects and all starting points; each of said tasks adapted to indicate to the cleaner task the identify of any handle which has been displaced; a method of identification of unused ones of said objects, said method comprising the steps of, in order:
  • said cleaner task traversing said directed graphs commencing at the respective initial starting points of said graphs; during traverse, removing from said set of unused objects the handle of each said object encountered during the traverse;
  • step b said cleaner task traversing all graphs for which the starting point is any handle which has been identified as displaced during execution of step b; and, during traverse, removing from said set of unused objects the handle of each said object encountered during the traverse .
  • a computer architecture which supports a cleaner task; said architecture arranged, in an at least first mode of operation to take and store elsewhere a value immediately prior to said value being over-written.
  • said value which is stored elsewhere is accessible to a cleaner task.
  • the computer architecture is implemented in hardware.
  • the computer architecture is implemented in software. In yet an alternative preferred form the computer architecture is implemented in microcode.
  • each task adapted to indicate to the cleaner task that it has caused a unique reference to be overwritten.
  • said cleaner task takes into account the identity of those unique references which are indicated as having been displaced.
  • Fig.l illustrates a simplified prior art object oriented system
  • Fig. 2 is a block diagram of a system of objects suitable for application of the method of the present invention
  • Fig. 3 is a sequential block diagram of a method of object identification for removal according to a first embodiment of the invention applied to the system of Fig. 2 ;
  • Fig. 4 is a block diagram of a computer architecture to which a further preferred embodiment of the invention has been applied.
  • FIG. 2 With reference to Fig. 2 there is illustrated a system 310 suitable to perform data processing on a computing platform (not shown) .
  • the system 310 comprises a plurality of data objects 311, 312, 313, 314, 315.
  • Each object comprises at least one data record having at least a pointer field 311a adapted to point to the location of another object, in this case object 312.
  • each object has a unique reference or "handle" 311b associated with it.
  • the corresponding handle of an object is identified by the suffix b so, for example, the handle of object 312 is handle 312b
  • the system 310 can be described as a "directed graph" of objects 311, 312 ... having a remembered or initial starting point 320.
  • first object 311 is the first object of the system 310 pointed to by starting point 320.
  • each of the data objects will also include a plurality of data fields 311c, 312c, ... which will contain data required by the computing operation relevant to the current computing tasks which system 310 is being asked to undertake in programmed manner.
  • the system 310 will be in a state of flux with many tasks running as a consequence of which new objects are created and pointer fields are continually being updated to point to different objects according to the demands of the computing task or tasks at hand.
  • a sixth object 316 can come into existence having handle 316b (numerically identified in this case as #2750) and, further, the system is updated whereby pointer field 311a of first object 311 is updated to point to handle 316b instead of handle 312b.
  • second object 312 is no longer pointed to by any other object in the directed graph of system 310.
  • second data object 312 is now effectively garbage and a candidate for identification for removal .
  • a requirement for the data identification for removal system (cleaner task) of Fig. 3 to operate is that system 310 maintains a list 318 of all handles 311b, 312b ... during execution. More generally it needs to be possible for the cleaner task to discover all objects and all initial starting points. The maintenance of the list 318 is one way of ensuring this.
  • Fig. 3A Initially, immediately prior to commencement of a garbage collection or data object identification for removal process being initiated the system 310 is as indicated in Fig. 3A comprising second data object 312 now isolated and with first data object 311 having three pointer fields 311al, 311a2 and 311a3 pointing to respective handles 313b, 314b and 315b of respective third, fourth and fifth objects 313, 314, 315.
  • Initial starting point 320 points to handle 311b of first object 311.
  • a set of unused objects 321 or "garbage set” is initialised and will initially comprise an empty list.
  • a displaced set 322 which is designated to contain all handles which have been displaced during system operation, at least during a predetermined period of time or period of system operation.
  • the displaced set 322 is empty which is to say it contains no handles (or information which would allow the location of handles) which have been displaced during operation of system 310.
  • the condition or time when system 310 will place displaced handles into the displaced set 322 is when the system 310 is in a mode of operation termed, m this example, "displaced mode on”.
  • displaced mode on When system 310 is not m this mode it is said to be in the mode "displaced mode off”. In this instance the system 310 will be put into displaced mode on when the cleaner task is active .
  • system 310 also maintains a known set of objects 323 in the form of a list of all objects 311, 312, ... in system 310. This arrangement is one way of ensuring that the cleaner task can discover all objects of system 310 at any given time.
  • the cleaner task is dormant, and the system is in displaced mode off.
  • the cleaner task copies all references from the known set 323 into the garbage set 321. Fig. 3C 9.
  • the cleaner task puts the system into displaced mode on. 10.
  • the cleaner task then proceeds to walk or traverse the directed graph of objects looking for object references
  • the user task then deposits a handle reference to fourth object 315 into second field or cell 311a2 of first object 311.
  • This deposit causes the handle or reference to object #3 to be displaced.
  • This displaced handle reference ⁇ 3 ⁇ to third object 314 is put into the displaced set 322.
  • the cleaner task removes each handle from the displaced set 322 and uses each such handle as the initial starting point or root and performs a traverse of the graph readable from each such handle.
  • Fig. 3F The cleaner task removes each handle from the displaced set 322 and uses each such handle as the initial starting point or root and performs a traverse of the graph readable from each such handle.
  • the cleaner task removes the reference to object 3 from the garbage set 321.
  • the final garbage set 321 has the handle 315b of second object 312 in it.
  • This object is garbage and can be deleted or re-used.
  • any handle which has previously been encountered during a traversal of a given directed graph will cause the cleaner task to backtrack up that directed graph.
  • an expected characteristic of operation of system 310 is that the at least one user task has the ability to recognise displaced handles and, at least while the system is in displaced mode on, to place either the displaced handles or information pertaining to the identity of the displaced handles, into the displaced set 322 or otherwise make available that information to the cleaner task in order to allow the cleaner task to conduct the (subsequent) traverses described with particular reference to Figs. 3E and 3F and, specifically, step 19.
  • the designated cleaner task expects assistance from all other tasks running on the system, at least during a predetermined period of operation which, with reference to Fig. 3, is designated "displaced mode on” .
  • the collection of displaced handles permits the tasks to keep executing or be executed even whilst the cleaner task is in operation.
  • This concept of the system "remembering" displaced data in the form of displaced handles can be implemented in hardware, software, or microcode.
  • This procedure can be carried out for operations on multiple values over multiple registers during a predefined window of operation of the architecture or during a predefined mode of operation of the architecture.
  • the architecture can be implemented in software or in microcode or in hardware, for example as part of a microprocessor 403.

Abstract

A method of identification of unused data blocks in a computer system; each data block having a unique reference; said method comprising the steps of: (a) designating a special purpose task as a cleaner task which identifies unused data blocks; (b) each task adapted to indicate to the cleaner task the identity of a unique reference which it has displaced.

Description

DATA OBJECT IDENTIFICATION AND REMOVAL SYSTEM
The present invention relates to a data object removal system and, more particularly, to such a system particularly suited, although not exclusively, for the identification of and subsequent removal of unused or unusable data objects in a memory system of a computer system, thereby to free up system resources and, more particularly, memory resources.
BACKGROUND All computer operating systems utilise memory systems for the storage and manipulation of data. During usage it typically occurs that portions of memory contain data which is no longer required. The system needs to be made aware that these memory portions have become available for further use. In one sense it can be said that these memory portions now contain "garbage" and there is a requirement to collect the "garbage" so as to free up the memory resources for further system use.
In an "object oriented" form of computer system the system can be thought of as producing and using objects, the "objects" being data objects having data fields which either contain data values or pointers to objects.
Fig. 1 illustrates a generalised object oriented system 301 containing a first data object 302 and a second data object 303. The first data object 302 comprises a single data record having a number of different data fields, one of which is a pointer field 304 containing data which points to
(that is contains the memory location of) a data field 305 containing numbers in second data object 303.
In such a system memory resources can become unavailable where, for example, data objects come to point back to each other forming an island 306.
In order to get rid of this "garbage" thereby to free unused system resources most systems use some form of garbage collection.
Two commonly used current forms are "reference counting" and "mark/sweep" .
Problems with current systems include inability to locate islands, a requirement that the operating system suspend processing while garbage is being collected and a general inability to consistently and comprehensively first identify and then remove unwanted or unused data objects
(garbage) . It is an object of the present invention, in at least some preferred embodiments, to address or ameliorate one or more of the abovementioned problems. BRIEF DESCRIPTION OF INVENTION
Accordingly, in one broad form of the invention there is provided a method of identification of unused data blocks in a computer system; each data block having a unique reference; said method comprising the steps of:
(a) designating a special purpose task as a cleaner task which identifies unused data blocks;
(b) each task adapted to indicate to the cleaner task the identity of a unique reference which it has displaced.
Preferably said cleaner task, during execution, takes into account the identity of those unique references which are indicated as having been displaced.
In a further broad form of the invention there is provided, in a computer system which includes objects with references between objects forming an at least first directed graph; said computer system performing computing functions by way of a plurality of tasks each of which operate with or on said objects and at least one of which tasks is designated as a cleaner task; the system having the property that it is possible for the cleaner task to discover all objects and all starting points; each of said tasks adapted to indicate to the cleaner task the identify of any handle which has been displaced; a method of identification of unused ones of said objects, said method comprising the steps of, in order:
(a) initiating said cleaner task, said cleaner task defining a set of unused objects which comprises initially all objects in said system;
(b) said cleaner task traversing said directed graphs commencing at the respective initial starting points of said graphs; during traverse, removing from said set of unused objects the handle of each said object encountered during the traverse;
(c) said cleaner task traversing all graphs for which the starting point is any handle which has been identified as displaced during execution of step b; and, during traverse, removing from said set of unused objects the handle of each said object encountered during the traverse .
In a further broad form of the invention there is provided a method of removal or release of unused objects from a computer system of the type described above; said method comprising the steps of:
(a) following the above described method of identification in order to identify a set of unused objects , (b) making available to said system for re-use the memory locations occupied by said set of unused objects .
In yet a further broad from of the invention there is provided a data object identification system operating according to the above described method.
In yet a further broad form of the invention there is provided a data object identifier and removal system operating according to any one of the above described methods and wherein said cleaner task makes available to said computer system for reuse data objects which have been identified as unused data objects.
In yet a further broad form of the invention there is provided a computer architecture which supports a cleaner task; said architecture arranged, in an at least first mode of operation to take and store elsewhere a value immediately prior to said value being over-written.
Preferably said value which is stored elsewhere is accessible to a cleaner task. In one preferred form the computer architecture is implemented in hardware.
In an alternative preferred form the computer architecture is implemented in software. In yet an alternative preferred form the computer architecture is implemented in microcode.
In yet a further broad form of the invention there is provided a method of identification of unused data blocks in a computer system implemented as a cleaner task which can run concurrently with other tasks performed by the computer system; each data block having a unique reference; said method comprising the steps of:
(a) designating a special purpose task as said cleaner task which identifies unused data blocks;
(b) each task adapted to indicate to the cleaner task that it has caused a unique reference to be overwritten.
Preferably said cleaner task, during execution, takes into account the identity of those unique references which are indicated as having been displaced.
BRIEF DESCRIPTION OF DRAWINGS
Embodiments of the present invention will now be described with reference to the accompanying drawings wherein :
Fig.l illustrates a simplified prior art object oriented system; Fig. 2 is a block diagram of a system of objects suitable for application of the method of the present invention;
Fig. 3 is a sequential block diagram of a method of object identification for removal according to a first embodiment of the invention applied to the system of Fig. 2 ; and
Fig. 4 is a block diagram of a computer architecture to which a further preferred embodiment of the invention has been applied.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
With reference to Fig. 2 there is illustrated a system 310 suitable to perform data processing on a computing platform (not shown) .
The system 310 comprises a plurality of data objects 311, 312, 313, 314, 315. Each object comprises at least one data record having at least a pointer field 311a adapted to point to the location of another object, in this case object 312. In all instances each object has a unique reference or "handle" 311b associated with it. (The corresponding handle of an object is identified by the suffix b so, for example, the handle of object 312 is handle 312b) . The system 310 can be described as a "directed graph" of objects 311, 312 ... having a remembered or initial starting point 320. In this instance first object 311 is the first object of the system 310 pointed to by starting point 320. In normal use each of the data objects will also include a plurality of data fields 311c, 312c, ... which will contain data required by the computing operation relevant to the current computing tasks which system 310 is being asked to undertake in programmed manner. In use the system 310 will be in a state of flux with many tasks running as a consequence of which new objects are created and pointer fields are continually being updated to point to different objects according to the demands of the computing task or tasks at hand. So, for example, a sixth object 316 can come into existence having handle 316b (numerically identified in this case as #2750) and, further, the system is updated whereby pointer field 311a of first object 311 is updated to point to handle 316b instead of handle 312b. In this instance the manner in which the update to first object 311 takes place is a superposition operation on pointer field 311a as indicated in superposition equation inset 317 where the handle in pointer field 311a (VAR A) is substituted by the handle of the value VAR B + 1. The original handle in pointer field 311a has thus been "displaced" by another handle.
As a result of this operation second object 312 is no longer pointed to by any other object in the directed graph of system 310. Hence second data object 312 is now effectively garbage and a candidate for identification for removal .
The manner of identification for removal of data object 312 from the system 310 will now be exemplified according to a first preferred embodiment of the invention with reference to Fig. 3. In this instance the method of identification for removal will be allocated to a specific task running on the system 310 and is henceforth termed a "cleaner task" .
In this embodiment, a requirement for the data identification for removal system (cleaner task) of Fig. 3 to operate is that system 310 maintains a list 318 of all handles 311b, 312b ... during execution. More generally it needs to be possible for the cleaner task to discover all objects and all initial starting points. The maintenance of the list 318 is one way of ensuring this.
Initially, immediately prior to commencement of a garbage collection or data object identification for removal process being initiated the system 310 is as indicated in Fig. 3A comprising second data object 312 now isolated and with first data object 311 having three pointer fields 311al, 311a2 and 311a3 pointing to respective handles 313b, 314b and 315b of respective third, fourth and fifth objects 313, 314, 315. Initial starting point 320 points to handle 311b of first object 311.
Also, for the purposes of operation of the cleaner task of this embodiment, a set of unused objects 321 or "garbage set" is initialised and will initially comprise an empty list.
Also defined is a displaced set 322 which is designated to contain all handles which have been displaced during system operation, at least during a predetermined period of time or period of system operation. In this instance, initially, the displaced set 322 is empty which is to say it contains no handles (or information which would allow the location of handles) which have been displaced during operation of system 310. In this instance the condition or time when system 310 will place displaced handles into the displaced set 322 is when the system 310 is in a mode of operation termed, m this example, "displaced mode on". When system 310 is not m this mode it is said to be in the mode "displaced mode off". In this instance the system 310 will be put into displaced mode on when the cleaner task is active .
In this instance the system 310 also maintains a known set of objects 323 in the form of a list of all objects 311, 312, ... in system 310. This arrangement is one way of ensuring that the cleaner task can discover all objects of system 310 at any given time.
The cleaner task can now proceed as follows with reference to Figs. 3A through to 3F of Fig. 3: Example: Cleaner Task Operation Fig. 3A
1. There is one known initial starting point or "root" 320 in the system 310.
2. At some point of execution there is a directed graph of five objects as shown in Fig. 3A.
3. At this point the second object 312 cannot be reached from any object within the directed graph attached to the root .
4. There is one user task in the system. 5. There is one cleaner task in the system.
6. The cleaner task is dormant, and the system is in displaced mode off.
7. The cleaner task wakes. Fig . 3B
8. The cleaner task copies all references from the known set 323 into the garbage set 321. Fig. 3C 9. The cleaner task puts the system into displaced mode on. 10. The cleaner task then proceeds to walk or traverse the directed graph of objects looking for object references
(handles) . Fig. 3D 11. At some point the cleaner is walking through the fields or cells of second object 313 and is at third field or cell 313a3.
12. At this point the user task deposits a handle reference 314b to third object 314 into first field 313al of second object 313.
13. The user task then deposits a handle reference to fourth object 315 into second field or cell 311a2 of first object 311.
14. This deposit causes the handle or reference to object #3 to be displaced.
15. This displaced handle reference {3} to third object 314 is put into the displaced set 322.
16. The cleaner task continues independently of the user task. Fig . 3E
17. At the end of the walk or traverse the cleaner task puts the system into displaced mode off. 18. At this point 3 and 5 are in the garbage set and 3 is in the displaced set.
19. The cleaner task removes each handle from the displaced set 322 and uses each such handle as the initial starting point or root and performs a traverse of the graph readable from each such handle. Fig. 3F
20. The cleaner task removes the reference to object 3 from the garbage set 321.
21. The final garbage set 321 has the handle 315b of second object 312 in it.
22. This object is garbage and can be deleted or re-used.
In a particular preferred form any handle which has previously been encountered during a traversal of a given directed graph will cause the cleaner task to backtrack up that directed graph. Summary
The system described with reference to Fig. 3 works on an underlying assumption that any data field inspected will be in a stable state with valid data in it. So, for example, there can be systems where data fields move into an indeterminate state during a number of clock cycles of the system. It is assumed that the cleaner task and any of the other tasks upon which it relies will not make use of data whilst in an indeterminate state. It will be observed from the description with reference to Fig. 3 that an expected characteristic of operation of system 310 is that the at least one user task has the ability to recognise displaced handles and, at least while the system is in displaced mode on, to place either the displaced handles or information pertaining to the identity of the displaced handles, into the displaced set 322 or otherwise make available that information to the cleaner task in order to allow the cleaner task to conduct the (subsequent) traverses described with particular reference to Figs. 3E and 3F and, specifically, step 19.
That is, stated in another way, the designated cleaner task expects assistance from all other tasks running on the system, at least during a predetermined period of operation which, with reference to Fig. 3, is designated "displaced mode on" .
The collection of displaced handles permits the tasks to keep executing or be executed even whilst the cleaner task is in operation.
This concept of the system "remembering" displaced data in the form of displaced handles can be implemented in hardware, software, or microcode.
Described below is a particular embodiment where this characteristic is implemented directly at the hardware level.
Computer Architecture Implementation
With reference to Fig. 4 the identification methods inherent in the cleaner system previously described with reference to Figs. 2 and 3 can be facilitated by arranging that when a first value 401 in a first register 400 is about to be overwritten the value 401 is first written to a second register 402.
This procedure can be carried out for operations on multiple values over multiple registers during a predefined window of operation of the architecture or during a predefined mode of operation of the architecture. The architecture can be implemented in software or in microcode or in hardware, for example as part of a microprocessor 403.
The above describes only some embodiments of the present invention and modifications, obvious to those skilled in the art can be made thereto without department from the scope and spirit of the present invention.

Claims

1. A method of identification of unused data blocks in a computer system; each data block having a unique reference; said method comprising the steps of: (a) designating a special purpose task as a cleaner task which identifies unused data blocks; (b) each task adapted to indicate to the cleaner task the identity of a unique reference which it has displaced.
2. The method of Claim 1 wherein said cleaner task, during execution, takes into account the identity of those unique references which are indicated as having been displaced.
3. In a computer system which includes objects with references between objects forming an at least first directed graph; said computer system performing computing functions by way of a plurality of tasks each of which operate with or on said objects and at least one of which tasks is designated as a cleaner task; the system having the property that it is possible for the cleaner task to discover all objects and all starting points; each of said tasks adapted to indicate to the cleaner task the identify of any handle which has been displaced; a method of identification of unused ones of said objects, said method comprising the steps of, in order:
(a) initiating said cleaner task, said cleaner task defining a set of unused objects which comprises initially all objects in said system;
(b) said cleaner task traversing said directed graphs commencing at the respective initial starting points of said graphs; during traverse, removing from said set of unused objects the handle of each said object encountered during the traverse;
(c) said cleaner task traversing all graphs for which the starting point is any handle which has been identified as displaced during execution of step b; and, during traverse, removing from said set of unused objects the handle of each said object encountered during the traverse.
4. A method of removal or release of unused objects from a computer system of the type described in claim 3; said method comprising the steps of: (a) following the method of Claim 1 to identify a set of unused objects, (b) making available to said system for re-use the memory locations occupied by said set of unused objects .
5. A data object identification system operating according to the method of Claim 3.
6. A data object identifier and removal system operating according to the method of Claim 1 or Claim 3 and wherein said cleaner task makes available to said computer system for reuse data objects which have been identified as unused data objects.
7. A computer architecture which supports a cleaner task; said architecture arranged, in an at least first mode of operation to take and store elsewhere a value immediately prior to said value being over-written.
8. The architecture of Claim 7 wherein said value which is stored elsewhere is accessible to a cleaner task.
9. The computer architecture of Claim 7 implemented in hardware .
10. The computer architecture of Claim 7 implemented in software .
11. The computer architecture of Claim 7 implemented in microcode .
12. The computer architecture of Claim 8 implemented in hardware .
13. The computer architecture of Claim 8 implemented in software .
14. The computer architecture of Claim 8 implemented in microcode .
15. A method of identification of unused data blocks in a computer system implemented as a cleaner task which can run concurrently with other tasks performed by the computer system; each data block having a unique reference; said method comprising the steps of: (a) designating a special purpose task as a cleaner task which identifies unused data blocks; (b) each task adapted to indicate to the cleaner task that it has caused a unique reference to be overwritten.
16. The method of Claim 15 wherein said cleaner task, during execution, takes into account the identity of those unique references which are indicated as having been displaced.
17. Media incorporating software which implements the method of Claim 1 or Claim 2.
18. Media incorporating software which implements the method of Claim 4.
19. Media according to Claim 17 or Claim 18 wherein said media comprises a CD-ROM.
20. Media according to Claim 17 or Claim 18 wherein said media comprises computer memory.
21. Media according to Claim 17 or Claim 18 wherein said media comprises disc storage.
22. A computer program embodied on a computer readable medium for enabling a method of identification of unused data blocks in a computer system as claimed in Claim 1 or Claim 2.
AMENDED CLAIMS
[received by the International Bureau on 26 April 2001 (26.04.01); original claim 3 amended; new claims 23-26 added; remaining claims unchanged (5 pages)]
1. A method of identification of unused data blocks in a computer system; each data block having a unique reference; said method comprising the steps of: 5 (a) designating a special purpose task as a cleaner task which identifies unused data blockB; (b) each task adapted to indicate to the cleaner task the identity of a unique reference which it has displaced. 10 2. The method of Claim 1 wherein said cleaner task, during execution, takes into account the identity of those unique references which are .indicated as having been displaced. 3. In a computer system which includes objects with 15 references between objects forming an at least first directed graph; said computer system performing computing functions by way of a plurality of tasks each of which operate with or on aaid objects and at least one of which tasks is designated as a cleaner task; the 20 system having the property that it is possible for the cleaner task to discover all objects and all starting points,- each of said tasks adapted to indicate to the cleaner task the identity of any handle which has been displaced; a method of identification of unused ones of said objects, said method comprising the steps of, in order:
(a) initiating said cleaner task, said cleaner task defining a set of unused objects which comprises initially all objects in said system;
(b) said cleaner task traversing said directed graphs commencing at the respective initial starting points of said graphs; during traverse, removing from said set of unused objects the handle of each said object encountered during the traverse,-
(c) said cleaner Bk traversing all graphs for which the starting point is any handle which has been identified as displaced during execution of step b; and, during traverse, removing from said set of unused objects the handle of each said object encountered during the traverse . 4. A method of removal or release of unused objects from a computer system of the type described in claim 3; said method comprising the steps of : (a) following the method of Claim 1 to identify a set of unused objects, (b) making available to said system for re-use the memory locations occupied by said set of unused ob ects .
21. Media according to Claim 17 or Claim 18 wherein said media comprises disc storage.
22. A computer program embodied on a computer readable medium for enabling a method of identification of unused data blocks in a computer system as claimed in Claim 1 or Claim 2.
23. A method of identification of unused data blocks in a computer system; said computer system including data blocks with references between data blocks forming an at least first directed graph; said computer system performing computing functions by way of a plurality of tasks each of which operate with or on said data blocks; each of said data blocks having a unique reference; said method comprising the steps of; (a) designating a special purpose task as a cleaner task which identifies unused data blocks; (b) each of said tasks adapted to indicate to said cleaner task changes to the structure of the directed graph by indicating the identity of a unique reference which it has displaced.
24. The method of Claim 23 wherein said cleaner task, during execution, takes into account the identity of those unique references which are indicated as having been displaced.
25. A computer system including a cleaner task; said computer system including objects with references between objects forming an at least first directed graph; said computer system performing computing functions by way of a plurality of tasks each of which operate with or on said objects and at least one of which tasks is designated as said cleaner task; the system having the property that it is possible for the cleaner task to discover all objects and all starting points; each of said tasks adapted to indicate to said cleaner task the identity of any handle which has been displaced.
26. The computer system of Claim 25 incorporating a method of identification of unused ones of said objects, Baid method comprising the steps of, in order:
(a) initiating said cleaner task, said cleaner task defining a set of unused objects which comprises initially all objects in said syBtem;
(b) said cleaner task traversing said directed graphs commencing at the respective initial starting points of said graphs; during traverse, removing from said set of unused objects the handle of each said object encountered during the traverse; (c) said cleaner task traversing all graphs for which the starting point s any handle which has been identified as displaced during execution of step b; and, during traverse, removing from said set of unused objects the handle of each said object encountered during the traverse .
PCT/AU2000/001401 1999-11-18 2000-11-17 Data object identification and removal system WO2001037096A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU13722/01A AU1372201A (en) 1999-11-18 2000-11-17 Data object identification and removal system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
AUPQ4125A AUPQ412599A0 (en) 1999-11-18 1999-11-18 Data object identification and removal system
AUPQ4125 1999-11-18
US09/474,868 1999-12-29
US09/474,868 US6324550B1 (en) 1999-08-25 1999-12-29 Data object identification and removal system

Publications (1)

Publication Number Publication Date
WO2001037096A1 true WO2001037096A1 (en) 2001-05-25

Family

ID=25646204

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AU2000/001401 WO2001037096A1 (en) 1999-11-18 2000-11-17 Data object identification and removal system

Country Status (1)

Country Link
WO (1) WO2001037096A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019217649A3 (en) * 2018-05-11 2020-02-13 Cigent Technology, Inc. Method and system for improved data control and access

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989134A (en) * 1987-03-20 1991-01-29 Hewlett-Packard Company Method and apparatus for enhancing data storage efficiency
US5241673A (en) * 1990-06-05 1993-08-31 Oce-Nederland B.V. System for garbage collecting unused memory space represented by a digraph by assigning values of node identifiers to selected variables based upon predetermined conditions
US5355483A (en) * 1991-07-18 1994-10-11 Next Computers Asynchronous garbage collection
US5446901A (en) * 1993-06-30 1995-08-29 Digital Equipment Corporation Fault tolerant distributed garbage collection system and method for collecting network objects
US5479633A (en) * 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
US5560003A (en) * 1992-12-21 1996-09-24 Iowa State University Research Foundation, Inc. System and hardware module for incremental real time garbage collection and memory management
US5586285A (en) * 1993-02-19 1996-12-17 Intel Corporation Method and circuitry for increasing reserve memory in a solid state memory disk

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989134A (en) * 1987-03-20 1991-01-29 Hewlett-Packard Company Method and apparatus for enhancing data storage efficiency
US5241673A (en) * 1990-06-05 1993-08-31 Oce-Nederland B.V. System for garbage collecting unused memory space represented by a digraph by assigning values of node identifiers to selected variables based upon predetermined conditions
US5355483A (en) * 1991-07-18 1994-10-11 Next Computers Asynchronous garbage collection
US5479633A (en) * 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
US5560003A (en) * 1992-12-21 1996-09-24 Iowa State University Research Foundation, Inc. System and hardware module for incremental real time garbage collection and memory management
US5586285A (en) * 1993-02-19 1996-12-17 Intel Corporation Method and circuitry for increasing reserve memory in a solid state memory disk
US5446901A (en) * 1993-06-30 1995-08-29 Digital Equipment Corporation Fault tolerant distributed garbage collection system and method for collecting network objects

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019217649A3 (en) * 2018-05-11 2020-02-13 Cigent Technology, Inc. Method and system for improved data control and access
US11106779B2 (en) 2018-05-11 2021-08-31 Cigent Technology, Inc. Method and system for improved data control and access
US11416601B2 (en) 2018-05-11 2022-08-16 Cigent Technology, Inc. Method and system for improved data control and access

Similar Documents

Publication Publication Date Title
US5634120A (en) Computer system supporting utilization of utility functions applicable to concurrently executing jobs by monitoring job excution characteristics and determining eligible job combinations for utility function
AU669988B2 (en) Method and apparatus for goal processing memory management
CN107977275B (en) Task processing method based on message queue and related equipment
US6324550B1 (en) Data object identification and removal system
US20090228537A1 (en) Object Allocation System and Method
WO2001037096A1 (en) Data object identification and removal system
US20100049747A1 (en) Apparatus and method for storing log in a thread oriented logging system
US20040268297A1 (en) Generating a model of software in execution
JPH06214809A (en) Computer system
JP2994138B2 (en) Catalog Variable Management Method for Interactive Processing System
JPH0833856B2 (en) Serial number management method
JP2787107B2 (en) Buffer control system and device
JP2001142757A (en) Method for naming file to be processed
JP3130870B2 (en) Memory dump file reconstruction method
JP2505526B2 (en) Bitmap management method for tasks
JPH06274404A (en) Data storage managing method
JPH07271739A (en) Swap area decentralization system
JPH1165903A (en) Method and device for data base management, and storage medium stored with data base management program
JPH08153031A (en) File management device
JPH05143422A (en) Updated journal managing system
JP2000187593A (en) Object managing device for program system
JPH1139192A (en) Information controller
JPH04280332A (en) Data management system
JPH04352254A (en) Garbage collection system for memory
JPH0552975B2 (en)

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

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 07.11.2002)

122 Ep: pct application non-entry in european phase