IP Library › Granted Patent US 10,802,895
Granted Patent B2
US 10,802,895 · App. 16/162,040 · Granted Oct 13, 2020

Memory management methods and systems

Inventors: Matthew G. Watson (San Francisco, CA); James Michael Magee (Orlando, FL)
Assignee: Apple Inc.
G06F9/544G06F9/485G06F9/5016G06F9/5022G06F9/542G06F2209/482G06F2209/508
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,802,895
App. No.
16/162,040
Granted
Oct 13, 2020
Kind
B2
Abstract

A method and an apparatus for determining a usage level of a memory device to notify a running application to perform memory reduction operations selected based on the memory usage level are described. An application calls APIs (Application Programming Interface) integrated with the application codes in the system to perform memory reduction operations. A memory usage level is determined according to a memory usage status received from the kernel of a system. A running application is associated with application priorities ranking multiple running applications statically or dynamically. Selecting memory reduction operations and notifying a running application are based on application priorities. Alternatively, a running application may determine a mode of operation to directly reduce memory usage in response to a notification for reducing memory usage without using API calls to other software.

Claims (36)

1. A computer implemented method comprises:

determining a usage level of a memory, the usage level indicating an amount of memory in use by a plurality of applications which include an application;

selecting a memory reduction operation associated with one or more APIs (Application Programming Interface) for the application occupying a part of the memory based on the usage level; and

notifying the application to perform the memory reduction operation to increase available memory via the one or more APIs.

2. The computer implemented method of claim 1 , wherein the selecting comprises comparing the usage level to a preset watermark.

3. The computer implemented method of claim 1 , wherein the memory reduction operation includes flushing a cache from a part of the memory.

4. The computer implemented method of claim 1 , wherein the memory reduction operation includes closing an opened window associated with the particular application.

5. The computer implemented method of claim 1 , wherein the memory reduction operation includes archiving a state of the particular application in a condensed format.

6. The computer implemented method of claim 1 , wherein the memory reduction operation causes the particular application to send an alert message via a user interface.

7. The computer implemented method of claim 1 , further comprising: removing the particular application from the memory.

8. A non-transitory machine-readable medium having instructions therein, which when executed by a machine, causes the machine to perform a method, the method comprising:

determining a usage level of a memory, the usage level indicating an amount of memory in use by a plurality of applications which include an application;

selecting a memory reduction operation associated with one or more APIs (Application Programming Interface) for the application occupying a part of the memory based on the usage level; and

notifying the application to perform the memory reduction operation to increase available memory via the one or more APIs.

9. The non-transitory machine-readable medium of claim 8 , wherein the selecting comprises comparing the usage level to a preset watermark.

10. The non-transitory machine-readable medium of claim 8 , wherein the memory reduction operation includes flushing a cache from a part of the memory.

11. The non-transitory machine-readable medium of claim 8 , wherein the memory reduction operation includes closing an opened window associated with the particular application.

12. The non-transitory machine-readable medium of claim 8 , wherein the memory reduction operation includes archiving a state of the particular application in a condensed format.

13. The non-transitory machine-readable medium of claim 8 , wherein the memory reduction operation causes the particular application to send an alert message via a user interface.

14. The non-transitory machine-readable medium of claim 8 , further comprising: removing the particular application from the memory.

15. The non-transitory machine-readable medium of claim 8 , wherein the plurality of applications are listed in a dynamic priority list.

16. The non-transitory machine-readable medium of claim 15 , wherein a first group of the plurality of applications are notified with a first notification that specifies a first usage level and a second group of the plurality of applications are notified with a second notification that specifies a second usage level.

17. An apparatus comprising:

a processor; and

a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to perform operations, the operations including

determining a usage level of a memory, the usage level indicating an amount of memory in use by a plurality of applications which include an application;

selecting a memory reduction operation associated with one or more APIs (Application Programming Interface) for the application occupying a part of the memory based on the usage level; and

notifying the application to perform the memory reduction operation to increase available memory via the one or more APIs.

18. The apparatus of claim 17 , wherein the selecting comprises comparing the usage level to a preset watermark.

19. The apparatus of claim 17 , wherein the memory reduction operation includes flushing a cache from a part of the memory.

20. The apparatus of claim 17 , wherein the memory reduction operation includes closing an opened window associated with the particular application.

21. The apparatus of claim 17 , wherein the memory reduction operation includes archiving a state of the particular application in a condensed format.

22. The apparatus of claim 17 , wherein the memory reduction operation causes the particular application to send an alert message via a user interface.

23. The apparatus of claim 17 , further comprising: removing the particular application from the memory.

24. The apparatus of claim 17 wherein the plurality of applications are listed in a dynamic priority list.

25. The apparatus of claim 24 , wherein a first group of the plurality of applications are notified with a first notification that specifies a first usage level and a second group of the plurality of applications are notified with a second notification that specifies a second usage level.

Continuity (5)
Continuation 15362538 · Nov 28, 2016
Continuation 13948990 · Jul 23, 2013
Continuation 12909751 · Oct 21, 2010
Division 11620688 · Jan 7, 2007
Related Publication 20190121683A1 · Apr 25, 2019