IP Library Granted Patent US 11,720,368
Granted Patent B2
US 11,720,368 · App. 17/194,600 · Granted Aug 8, 2023

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 11,720,368
App. No.
17/194,600
Granted
Aug 8, 2023
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 (45)

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 memory usage monitor executed by the data processing system, a memory usage of a program;

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

in response to determining that the operating state of the program is an active state and the memory usage of the program exceeds a first predetermined threshold, performing a first memory usage reduction action, wherein when the program is in the active state, the program maintains an inter-process call (IPC) communication session with at least one kernel component of an operating system; and

in response to determining that the operating state of the program is an inactive state and the memory usage of the program exceeds a second predetermined threshold, performing a second memory usage reduction action.

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

determining whether the program has a memory leak during the active state and the inactive state based on the memory usage of the program; and

performing the first memory usage reduction action or the second memory usage reduction action in response to determining that the program has a memory leak.

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

monitoring a trend of the memory usage of the program when the program is inactive; and

performing the second memory usage reduction action if the trend of the memory usage is trending higher for a predetermined period of time while the program is inactive.

4. A memory management method comprising:

monitoring, by a memory usage monitor executed by a data processing system, a memory usage of a program;

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

in response to determining that the operating state of the program is an active state and the memory usage of the program exceeds a first predetermined threshold, performing a first memory usage reduction action, wherein when the program is in the active state, the program maintains an inter-process call (IPC) communication session with at least one kernel component of an operating system; and

in response to determining that the operating state of the program is an inactive state and the memory usage of the program exceeds a second predetermined threshold, performing a second memory usage reduction action.

5. The method of claim 4 , wherein the method further comprises:

determining whether the program has a memory leak during the active state and the inactive state based on the memory usage of the program; and

performing the first memory usage reduction action or the second memory usage reduction action in response to determining that the program has a memory leak.

6. The method of claim 4 , wherein the method further comprises:

monitoring a trend of the memory usage of the program when the program is inactive; and

performing the second memory usage reduction action if the trend of the memory usage is trending higher for a predetermined period of time while the program is inactive.

7. The method of claim 4 , wherein the method further comprises:

monitoring a trend of the memory usage of the program when the program is inactive;

and

performing the second memory usage reduction action if the trend of the memory usage

is trending higher time while the program is inactive.

8. The method of claim 4 , wherein the data processing system tracks how long the program remains in the active state after a switch from the inactive state to the active state.

9. A data processing system comprising:

a processing system;

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

monitoring, by a memory usage monitor executed by the data processing system, a memory usage of a program;

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

in response to determining that the operating state of the program is an active state and the memory usage of the program exceeds a first predetermined threshold, performing a first memory usage reduction action, wherein when the program is in the active state, the program maintains an inter-process call (IPC) communication session with at least one kernel component of an operating system; and

in response to determining that the operating state of the program is an inactive state and the memory usage of the program exceeds a second predetermined threshold, performing a second memory usage reduction action.

10. The data processing system as in claim 9 , wherein the method further comprises:

determining whether the program has a memory leak during the active state and the inactive state based on the memory usage of the program; and

performing the first memory usage reduction action or the second memory usage reduction action in response to determining that the program has a memory leak.

11. The data processing system as in claim 9 , wherein the method further comprises:

monitoring a trend of the memory usage of the program when the program is inactive; and

performing the second memory usage reduction action if the trend of the memory usage is trending higher for a predetermined period of time while the program is inactive.

12. The data processing system as in claim 9 , wherein the method further comprises:

monitoring a trend of the memory usage of the program when the program is inactive; and

performing the second memory usage reduction action if the trend of the memory usage is trending higher time while the program is inactive.

13. The data processing system as in claim 9 wherein the processing system tracks how long the program remains in the active state after a switch from the inactive state to the active state.

Continuity (4)
Division 15962298 · Apr 25, 2018
Division 14973371 · Dec 17, 2015
Provisional Application 62171821 · Jun 5, 2015
Related Publication 20210191734A1 · Jun 24, 2021
Cited By (1)
US 12,536,022