IP Library › Granted Patent US 10,956,172
Granted Patent B2
US 10,956,172 · App. 15/962,298 · Granted Mar 23, 2021

Memory management of data processing systems

Inventors: Andrew D. Myrick (San Francisco, CA); David M. Chan (Palo Alto, CA); Jonathan R. Reeves (San Francisco, CA); Jeffrey D. Curless (San Jose, CA); Lionel D. Desai (San Francisco, CA); James C. McIlree (San Jose, CA); Karen A. Crippes (San Jose, CA); Rasha Eqbal (Union City, CA)
Assignee: Apple Inc.
G06F9/4406G06F3/0608G06F3/0653G06F3/0673G06F9/4401G06F9/442G06F9/485G06F9/5016G06F11/1438
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,956,172
App. No.
15/962,298
Granted
Mar 23, 2021
Kind
B2
Abstract

Techniques for memory management of a data processing system are described herein. According to one embodiment, a memory usage monitor executed by a processor of a data processing system monitors memory usages of groups of programs running within a memory of the data processing system. In response to determining that a first memory usage of a first group of the programs exceeds a first predetermined threshold, a user level reboot is performed in which one or more applications running within a user space of an operating system of the data processing system are terminated and relaunched. In response to determining that a second memory usage of a second group of the programs exceeds a second predetermined threshold, a system level reboot is performed in which one or more system components running within a kernel space of the operating system are terminated and relaunched.

Claims (29)

1. A non-transitory machine-readable medium having instructions stored therein, which when executed by a data processing system, cause the data processing system to perform a method for memory management, the method comprising:

monitoring, by a state monitor executed by a data processing system, an operating state of a program;

in response to determining that the program transitions from an inactive state into an active state, tracking a period of time during which the program remains active; and

in response to determining that the time period exceeds a predetermined threshold that is associated with the program, performing a predetermined memory usage reduction action associated with the program,

wherein when the program is active, the program maintains an inter-process call (IPC) transaction with a kernel component of an operating system.

2. The non-transitory machine-readable medium of claim 1 , wherein performing a predetermined memory usage reduction action comprises forcing the program to transition from the active state to the inactive state.

3. The non-transitory machine-readable medium of claim 1 , wherein the method further comprises:

monitoring activities of the program while the program is active; and

in response to detecting a predetermined event performed by the program, resetting a counter recording the time period to a predetermined level.

4. The non-transitory machine readable medium of claim 1 , wherein the program, in the inactive state, operates and uses memory.

5. The non-transitory machine readable medium of claim 4 , wherein the program transitions in response to a predetermined type of transaction performed by the program.

6. The non-transitory machine readable medium of claim 5 , wherein the predetermined type of transaction is an inter-process call initiated by the program.

7. The non-transitory machine readable medium of claim 6 , wherein the inter-process call is a call to a component of an operating system.

8. The non-transitory machine readable medium of claim 6 , wherein the predetermined memory usage reduction action comprises forcing the program to transition from the active state to the inactive state.

9. The non-transitory machine readable medium of claim 1 , wherein the program in the inactive state operates with less memory than when the program is in the active state.

10. A computer-implemented method for memory management, the method comprising:

monitoring, by a state monitor executed by a data processing system, an operating state of a program;

in response to determining that the program transitions from an inactive state into an active state, tracking a period of time during which the program remains active; and

in response to determining that the time period exceeds a predetermined threshold that is associated with the program, performing a predetermined memory usage reduction action associated with the program

wherein when the program is active, the program maintains an inter-process call (IPC) transaction with a kernel component of an operating system.

11. The method of claim 10 , wherein performing a predetermined memory usage reduction action comprises forcing the program to transition from the active state to the inactive state.

12. The method of claim 10 , further comprising:

monitoring activities of the program while the program is active; and in response to detecting a predetermined event performed by the program, resetting a counter recording the time period to a predetermined level.

13. The method of claim 10 , wherein the program, in the inactive state, operates and uses memory.

14. The method of claim 13 , wherein the transition occurs in response to a predetermined type of transaction performed by the program.

15. The method of claim 14 , wherein the predetermined type of transaction is an interprocess call initiated by the program.

16. The method of claim 15 , wherein the inter-process call is a call to a component of an operating system.

17. The method of claim 15 , wherein the predetermined memory usage reduction action comprises forcing the program to transition from the active state to the inactive state.

18. The method of claim 10 , wherein the program in the inactive state operates with less memory than when the program is in the active state.

Continuity (3)
Division 14973371 · Dec 17, 2015
Provisional Application 62171821 · Jun 5, 2015
Related Publication 20180246730A1 · Aug 30, 2018