IP Library Granted Patent US 10,185,653
Granted Patent B2
US 10,185,653 · App. 15/056,092 · Granted Jan 22, 2019

Integrated systems and methods for the transactional management of main memory and data storage

Inventors: Michael Andrew Brian Parkes (Stourbridge, GB); Gregory Michael Parkes (Stourbridge, GB)
G06F12/023G06F2212/1044G06F2212/652
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,185,653
App. No.
15/056,092
Granted
Jan 22, 2019
Kind
B2
Abstract

An integrated system for transactionally managing main memory and storage devices derived from the interfaces and methodologies historically associated with dynamic memory allocation. The methodology has a wide range of applicability including areas such as hardware storage devices (i.e. firmware), operating system internals (i.e. file systems) and end-user software systems.

Claims (52)

1. A computer implemented method of dynamically managing storage and memory in an operating system on a computing device, the method comprising:

for a first program, or function, requiring a storage allocation on the device;

identifying and subsequently allocating a first memory space for the first program;

identifying and subsequently allocating a first storage space for the first program;

recording the allocation of both the first storage space and first memory space as a first memory page, such that the first memory allocation and first storage allocation are recorded together in the first memory page;

performing a first update to the first memory space;

performing a second updated to the first storage space as a result of the first update to the first memory space; and

recording the first update and second update in the first memory page.

2. The method of claim 1 wherein the page is a fixed multiple power of 2 in size.

3. The method of claim 2 wherein the page is split into one or more sub-pages, wherein the sub-page is a smaller power of two in size.

4. The method of claim 1 wherein the memory and storage allocations match in terms of alignment and size.

5. The method of claim 4 wherein information regarding the heap structures and allocations are stored at the start of the page.

6. The method of claim 4 wherein the page is a fixed multiple power of 2 in size.

7. The method of claim 6 wherein the page is split into one or more sub-pages, wherein the sub-page is a smaller power of two in size.

8. The method of claim 6 further comprising the steps of:

amending the page and recording the changes to the page in a second area of the main memory, wherein the second area of the main memory is distinct from the first area of the main memory.

9. The method of claim 8 wherein the recording process comprises the steps of:

copying one or more the pages that have been identified as having been changed to a further area of the main memory, wherein the further area of the main memory is distinct from the first area of the main memory;

updating the header page of the storage area with information to reflect the changes in content of the remainder of the storage area;

upon completion of the updating of the header page of the storage area copying the updated pages to their original locations.

10. The method of claim 8 wherein the recording of the changes occurs periodically.

11. The method of claim 10 wherein the recording process comprises the steps of:

copying one or more the pages that have been identified as having been changed to a further area of the main memory, wherein the further area of the main memory is distinct from the first area of the main memory;

updating the header page of the storage area with information to reflect the changes in content of the remainder of the storage area;

upon completion of the updating of the header page of the storage area copying the updated pages to their original locations.

12. The method of claim 1 wherein the page is split into one or more sub-pages, wherein the sub-page is a smaller power of two in size.

13. The method of claim 1 wherein information regarding the heap structures and allocations are stored at the start of the page.

14. The method of claim 13 further comprising the steps of:

amending the page and recording the changes to the page in a second area of the main memory, wherein the second area of the main memory is distinct from the first area of the main memory.

15. The method of claim 1 further comprising the steps of:

amending the page and recording the changes to the page in a second area of the main memory, wherein the second area of the main memory is distinct from the first area of the main memory.

16. The method of claim 15 wherein the recording process comprises the steps of:

copying one or more the pages that have been identified as having been changed to a further area of the main memory, wherein the further area of the main memory is distinct from the first area of the main memory;

updating the header page of the storage area with information to reflect the changes in content of the remainder of the storage area;

upon completion of the updating of the header page of the storage area copying the updated pages to their original locations.

17. The method of claim 15 wherein the recording of the changes occurs periodically.

18. The method of claim 17 wherein the recording process comprises the steps of:

copying one or more the pages that have been identified as having been changed to a further area of the main memory, wherein the further area of the main memory is distinct from the first area of the main memory;

updating the header page of the storage area with information to reflect the changes in content of the remainder of the storage area;

upon completion of the updating of the header page of the storage area copying the updated pages to their original locations.

19. The method of claim 18 further comprising the steps of:

resizing the allocation of one or both of the first memory allocation and first storage allocation;

identifying free memory and storage for the resized allocation;

computing new memory and storage addresses for the resized allocation; and

updating the memory page and storage area.

20. The method of claim 1 further comprising the steps of:

resizing the allocation of one or both of the first memory allocation and first storage allocation;

identifying free memory and storage for the resized allocation;

computing new memory and storage addresses for the resized allocation; and

updating the memory page and storage area.

21. The method of claim 1 , the method further comprising:

upon subsequent referencing of any part of the first page, bringing the entire page into a first area of the main memory of the computing device such that the allocated first storage space is accessible to the main memory.

Priority Claims (1)
GB 1511960.5 · Jul 8, 2015 · national
Continuity (1)
Related Publication 20170010834A1 · Jan 12, 2017
Cited By (1)
US 12,326,838