← Back to Patent Explorer
US5490274A Expired / Lapsed US ⏱️ 0.0 years remaining

Modified buddy system for managing disk space

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1993-06-30
•
Granted: 1996-02-06
•
Expires: 2013-06-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A modified buddy system is adopted for managing disk space in a disk storage. The modified buddy system uses a minimal amount of memory space and provides very quick access to extents within the disk space. The modified buddy system utilizes a tree structure of nodes, wherein each node represents an extent of disk space. A bitmap is provided for holding state bits for each of the nodes in the tree structure. The bitmap is organized to preserve locality of reference.

Inventors

  • 👤 Mark Zbikowski
  • 👤 Robert I. Ferguson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 06:57
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/0608; G06F3/0628; G06F3/0638; G06F3/0644; G06F3/0668; G06F3/0671; G06F3/0673; G06F3/0674; G06F3/0676

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 207 words
In a data processing system having disk storage with disk space of a given size, a method of managing the disk space, comprising the steps of: (a) modeling the disk space as a tree structure having multiple successively decreasing levels of nodes ranging from a top level to a bottom level, wherein each node represents an extent of the disk space and, for each level, nodes within the level represent extents of a like size, each node in each level other than the bottom level is a parent node having links connecting the parent node to child nodes, that are siblings, in a next successive level, the extents represented by the child nodes constitute a complete subdivision of the extent represented by the parent node, the size of the extents represented by the nodes decreases in each successive level and the sum of the sizes of the extents represented by the nodes for each successive level equals the given size of the disk space; (b) storing state information about each node in a bitmap that specifies whether the extent represented by the node is known to be at least partially allocated or not; and (c) using the bitmap and the tree structure to manage the disk space.
Claim 2
Dependent Claim 207 words
In a data processing system having disk storage with disk space of a given size, a method of managing the disk space, comprising the steps of: (a) modeling the disk space as a tree structure having multiple successively decreasing levels of nodes ranging from a top level to a bottom level, wherein each node represents an extent of the disk space and, for each level, nodes within the level represent extents of a like size, each node in each level other than the bottom level is a parent node having links connecting the parent node to child nodes, that are siblings, in a next successive level, the extents represented by the child nodes constitute a complete subdivision of the extent represented by the parent node, the size of the extents represented by the nodes decreases in each successive level and the sum of the sizes of the extents represented by the nodes for each successive level equals the given size of the disk space; (b) storing state information about each node in a bitmap that specifies whether the extent represented by the node is known to be at least partially allocated or not; and (c) using the bitmap and the tree structure to manage the disk space.
Claim 3
Dependent Claim 38 words
The method recited in claim 1 wherein the step of using the bitmap and the tree structure to manage the disk space further comprises the step of allocating an extent of the disk space represented by a node.
Claim 4
Dependent Claim 185 words
The method recited in claim 2 wherein the step of allocating an extent of the disk space represented by the node further comprises the steps of: (i) updating the state information that is stored in the bitmap about the node to specify that the extent represented by the node is known to be at least partially allocated; (ii) examining the state information that is stored in the bitmap about a parent node of the node to determine whether the extent represented by the parent node is known to be at least partially allocated or not; (iii) where it is determined that the extent represented by the parent node is not known to be at least partially allocated, updating the state information that is stored in the bitmap about the parent node to specify that the extent represented by the parent node is known to be at least partially allocated; and (iv) where it is determined that the extent represented by the parent node is known to be at least partially allocated, maintaining the state information that is stored in the bitmap about the parent node.
Claim 5
Dependent Claim 195 words
The method recited in claim 3, further comprising the steps of: (v) denoting the parent node as a current node; (vi) determining whether there is an additional parent node for the current node; (vii) where there is the additional parent node for the current node, examining the state information that is stored in the bitmap about the additional parent node to determine whether the extent represented by the additional parent node is known to be at least partially allocated or not; (viii) where there is no additional parent node for the current node or where there is the additional extent represented by the parent node for the current node and the additional parent node is known to be at least partially allocated, maintaining the state information stored in the bitmap; and (ix) where there is the additional parent node for the current node and the extent represented by the additional parent node is not known to be at least partially allocated, updating the state information that is stored in the bitmap about the additional parent node to specify that the extent represented by the additional parent node is known to be at least partially allocated.
Claim 6
Dependent Claim 59 words
The method recited in claim 4, further comprising the steps of: (x) denoting the additional parent node as the current node; (xi) determining whether there is a new additional parent node for the current node; and (xii) where there is the new additional parent node, repeating steps (vii)-(ix) using the new additional parent node as the additional parent node.
Claim 7
Dependent Claim 40 words
The method recited in claim 1 wherein the step of using the bitmap and the tree structure to manage the disk space further comprises the step of deallocating an extent of the disk space represented by one of the nodes.
Claim 8
Dependent Claim 169 words
The method recited in claim 6 wherein the step of deallocating an extent of the disk space represented by a node further comprises the steps of: (i) updating the state information that is stored in the bitmap about the node to indicate that the extent represented by the node is not known to be at least partially allocated; (ii) determining if the node has at least one sibling node; and (iii) if the node has at least one sibling node, examining the state information that is stored in the bitmap about each sibling node to determine if each of the extents represented by the sibling nodes is not known to be at least partially allocated and where it is determined that each of the extents represented by the sibling nodes is not known to be at least partially allocated, updating the state information stored in the bitmap about the parent node to specify the extent represented by the parent node is not known to be at least partially allocated.
Claim 9
Dependent Claim 55 words
The method recited in claim 1 wherein the step of modeling allocation of the disk space as the tree structure having multiple successively decreasing levels of nodes further comprises the step of providing the top level to the tree structure which consists of a single node representing an extent comprising all of the disk space.
Claim 10
Dependent Claim 52 words
The method recited in claim 1 wherein the step of modeling the disk space as the tree structure having multiple successively decreasing levels of nodes further comprises the step of providing the bottom level of the tree structure, which comprises nodes that represent extents which are each a disk sector in size.
Claim 11
Dependent Claim 71 words
The method recited in claim 1 wherein the step of using the bitmap and the tree structure to manage the disk space further comprises the steps of: (i) allocating the extent of disk space represented by one of the nodes in the tree structure to hold information; and (ii) updating the state information held in the bitmap to specify that the allocated extent is known to be at least partially allocated.
Claim 12
Dependent Claim 70 words
The method recited in claim 1 wherein the step of using the bitmap and the tree structure to manage the disk space further comprises the steps of: (i) deallocating an extent of disk space represented by one of the nodes in the tree structure; and (ii) updating the state information held in the bitmap to specify that the deallocated extent node is not known to be at least partially allocated.
Claim 13
Dependent Claim 238 words
In a data processing system having disk storage with disk space of a given size, a method comprising the steps of: (a) modeling the disk space as a tree structure having multiple successively decreasing levels of nodes ranging from a top level to a bottom level, wherein each node represents an extent of the disk space, and for each level, nodes within the level represent extents of a like size, each node in each level other than the bottom level is a parent node having links connecting the parent node to child nodes, that are siblings, in a next successive level, the extents represented by the child nodes constitute a complete subdivision of the extent represented by the parent node, the size of the extents represented by the nodes decreases in each successive level and the sum of the sizes of the extents represented by the nodes for each successive level equals the given size of the disk space; (b) storing at least one state bit for each node in an ordered bitmap where the state bits for the nodes are ordered in a breadth first fashion beginning with the top level and continuing in breadth first fashion for each successive level, wherein the state bit for each node specifies whether the extent represented by the node is known to at least partially allocated; and (c) using the bitmap and the tree structure to manage the disk space.
Claim 14
Dependent Claim 238 words
In a data processing system having disk storage with disk space of a given size, a method comprising the steps of: (a) modeling the disk space as a tree structure having multiple successively decreasing levels of nodes ranging from a top level to a bottom level, wherein each node represents an extent of the disk space, and for each level, nodes within the level represent extents of a like size, each node in each level other than the bottom level is a parent node having links connecting the parent node to child nodes, that are siblings, in a next successive level, the extents represented by the child nodes constitute a complete subdivision of the extent represented by the parent node, the size of the extents represented by the nodes decreases in each successive level and the sum of the sizes of the extents represented by the nodes for each successive level equals the given size of the disk space; (b) storing at least one state bit for each node in an ordered bitmap where the state bits for the nodes are ordered in a breadth first fashion beginning with the top level and continuing in breadth first fashion for each successive level, wherein the state bit for each node specifies whether the extent represented by the node is known to at least partially allocated; and (c) using the bitmap and the tree structure to manage the disk space.
Claim 15
Dependent Claim 36 words
The method recited in claim 12 wherein the step of using the bitmap and the tree structure to manage the disk space further comprises the step of allocating an extent represented by one of the nodes.
Claim 16
Dependent Claim 181 words
The method recited in claim 13 wherein the step of allocating the extent represented by the node further comprises the steps of: (i) updating the state bit that is stored in the bitmap about the node to specify that the extent represented by the node is known to be at least partially allocated; (ii) examining the state bit that is stored in the bitmap about a parent node of the node to determine whether the extent represented by the parent node is known to be at least partially allocated or not; (iii) where it is determined that the extent represented by the parent node is not known to be at least partially allocated, updating the state bit that is stored in the bitmap about the parent node to specify that the extent represented by the parent node is known to be at least partially allocated; and (iv) where it is determined that the extent represented by the parent node is known to be at least partially allocated, maintaining the state bit that is stored in the bitmap about the parent node.
Claim 17
Dependent Claim 195 words
The method recited in claim 14, further comprising the steps of: (v) denoting the parent node as a current node; (vi) determining whether there is an additional parent node for the current node; (v) where there is the additional parent node for the current node, examining the state bit that is stored in the bitmap about the additional parent node to determine whether the extent represented by the additional parent node is known to be at least partially allocated or not; (vi) where there is no additional parent node for the current node or whether there is the additional parent node for the current node and the extent represented by the additional parent node is known to be at least partially allocated, maintaining the state bit stored in the bitmap; and (vii) where there is the additional parent node for the current node and the extent represented by the additional parent node is not known to be at least partially allocated, updating the state bit that is stored in the bitmap about the additional parent node to specify that the extent represented by the additional parent node is known to be at least partially allocated.
Claim 18
Dependent Claim 59 words
The method recited in claim 15, further comprising the steps of: (viii) denoting the additional parent node as the current node; (ix) determining whether there is a new additional parent node for the current node; and (x) where there is the new additional parent node repeat steps (v)-(x) using the new additional parent node as the additional parent node.
Claim 19
Dependent Claim 40 words
The method recited in claim 12 wherein the step of using the bitmap and the tree structure to manage the disk space further comprises the step of deallocating an extent of the disk space represented by one of the nodes.
Claim 20
Dependent Claim 130 words
The method recited in claim 17, further comprising the steps of: (i) updating the state bit that is stored in the bitmap about the node to indicate that the extent represented by the node is not known to be at least partially allocated; (ii) determining if the node has at least one sibling node; and (iii) if the node has at least one sibling node, examining the state bit that is stored in the bitmap about each sibling node to determine if each of the extents represented by the sibling nodes is known to be at least partially allocated and updating the state bit stored in the bitmap about the parent node to specify the extent represented by the parent node is not known to be at least partially allocated.
Claim 21
Dependent Claim 47 words
The method recited in claim 12 wherein the step of storing the state bit for each node in the ordered bitmap further comprises the step of storing the state bit for a node immediately next to the state bit for a sibling node in the ordered bitmap.
Claim 22
Dependent Claim 32 words
The method recited in claim 12 wherein the step of modeling the disk space as the tree structure further comprises the step of modeling the disk space as a binary tree structure.
Claim 23
Dependent Claim 20 words
The method as recited in claim 20 wherein the size of the nodes decreases in each successive level by one-half.
Claim 24
Dependent Claim 53 words
The method recited in claim 12 wherein the step of modeling the disk space as the tree structure having multiple successively decreasing levels of nodes further comprises the step of providing the top level of the tree structure which consists of a single node representing an extent comprising all of the disk space.
Claim 25
Dependent Claim 50 words
The method recited in claim 12 wherein the step of modeling the disk space as the tree structure having multiple successively decreasing levels of nodes further comprises the step of providing the bottom level to the tree structure, which comprises nodes representing extents that are a disk sector in size.
Claim 26
Dependent Claim 303 words
In a data processing system having disk storage with disk space of a given size, a method of locating free disk space in the disk storage, comprising the steps of: (a) modeling the disk space as a tree structure having multiple successively decreasing levels of nodes ranging from a top level to a bottom level, wherein each node represents an extent of the disk space and, for each level, nodes within the level represent extents of a like size, each node in each level other than the bottom level is a parent node having links connecting the parent node to child nodes that are siblings in a next successive level, the extents represented by the child nodes constitute a complete subdivision of the extent represented by the parent node, the size of the extents represented by the nodes decreases in each successive level and the sum of the sizes of the extents represented by the nodes for each successive level equals the given size of the disk space; (b) storing state information about each node in a bitmap that specifies whether the extent is known to be at least partially allocated or not; (c) examining the state information in the bitmap about a selected one of the nodes in the tree structure that represents an extent of disk space of a desired size; (d) where the state information in the bitmap about the selected node specifies that the extent represented by the selected node is not known to be at least partially allocated, (i) examining the state information in the bitmap about each sibling of the selected node to determine if any of the siblings are known to be at least partially allocated; and (ii) where any sibling is known to be at least partially allocated, concluding that the selected node is free.
Claim 27
Dependent Claim 303 words
In a data processing system having disk storage with disk space of a given size, a method of locating free disk space in the disk storage, comprising the steps of: (a) modeling the disk space as a tree structure having multiple successively decreasing levels of nodes ranging from a top level to a bottom level, wherein each node represents an extent of the disk space and, for each level, nodes within the level represent extents of a like size, each node in each level other than the bottom level is a parent node having links connecting the parent node to child nodes that are siblings in a next successive level, the extents represented by the child nodes constitute a complete subdivision of the extent represented by the parent node, the size of the extents represented by the nodes decreases in each successive level and the sum of the sizes of the extents represented by the nodes for each successive level equals the given size of the disk space; (b) storing state information about each node in a bitmap that specifies whether the extent is known to be at least partially allocated or not; (c) examining the state information in the bitmap about a selected one of the nodes in the tree structure that represents an extent of disk space of a desired size; (d) where the state information in the bitmap about the selected node specifies that the extent represented by the selected node is not known to be at least partially allocated, (i) examining the state information in the bitmap about each sibling of the selected node to determine if any of the siblings are known to be at least partially allocated; and (ii) where any sibling is known to be at least partially allocated, concluding that the selected node is free.
Claim 28
Dependent Claim 80 words
The method recited in claim 24, further comprising the steps, of where the state information about the selected node specifies that the extent represented by the selected node is known to be at least partially allocated and additional nodes exist in the tree structure at the same level as the selected node, designating a next node in the tree structure, at the same level as the selected node, as the selected node and repeating the method beginning with step (d).
Claim 29
Dependent Claim 49 words
The method recited in claim 25, further comprising the step of storing state information in the bitmap in a breadth first fashion according to ordering of the nodes in the tree structure beginning with the top level and continuing in breadth first fashion for each successive level of nodes.
Claim 30
Dependent Claim 27 words
The method recited in claim 26 wherein the next node is a node which has its state information in the bitmap immediately adjacent to the selected node.
Claim 31
Dependent Claim 54 words
The method recited in claim 26 wherein the next node is a node which has its state information stored closest in the bitmap to state information for a predetermined node among the nodes of the same level as the selected node and having state information that has not yet been examined in the method.
Claim 32
Dependent Claim 89 words
The method recited in claim 24, the method further comprising the steps of, where it is determined that none of the sibling nodes are known to be at least partially allocated: examining state information in the bitmap about a parent node of the selected node to determine whether the parent node is known to be at least partially allocated; and where the patent node is not known to be at least partially allocated, designating the parent node as the selected node and repeating the method beginning with step (d).
Claim 33
Dependent Claim 67 words
The method recited in claim 29, further comprising the steps of, where it is determined that the parent node is known to be at least partially allocated, designating a next node in the tree structure at the same level as the selected node, other than the selected node and the siblings of the selected node, as the selected node and repeating the method beginning with step (d).

References Cited (Backward Citations)

US4536837A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-02-05 1999-08-07 2000-02-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-02-05 2003-08-07 2004-02-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-02-05 2007-08-07 2008-02-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag