IP Library Granted Patent US 9,021,243
Granted Patent B2
US 9,021,243 · App. 13/564,521 · Granted Apr 28, 2015

Method for increasing free memory amount of main memory and computer therefore

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 9,021,243
App. No.
13/564,521
Granted
Apr 28, 2015
Kind
B2
Abstract

For increasing a free memory amount, a computer is provided with a main memory and a virtual memory area. Working sets having a predetermined size in a main memory are allocated to virtual address spaces. The area from which working sets are removed is a free memory area, and a cache area is set to a part of the area. During booting, a predetermined process not affecting the booting is suspended. The size of the working set of the suspended process is decreased by swapping out the memory page into the virtual memory area. As a result, the size of the free memory area increases, and along therewith, the OS increases the size of a cache area, thus enabling more boot files to be read ahead and reducing the boot time.

Claims (45)

1. A method for reducing boot time comprising the steps of:

starting, by use of a processor, a boot of a computer with an operating system capable of reading ahead a boot file into a cache area set in a free memory area of a main memory and changing a size of the cache area according to a size of the free memory area;

generating processes for loading the boot file into the main memory;

allocating working sets having a predetermined size to the generated processes by the operating system;

suspending a predetermined process selected out of the processes for loading the boot file;

swapping out a memory page of the suspended predetermined process to decrease a size of a working set for the process, wherein the decreased working set size is a minimum working set size set by default to each process by the operating system; and

increasing the size of the cache area according to the decreased working set size.

2. The method of claim 1 , further comprising the steps of:

reading ahead the boot file into the cache area whose size is increased; and

generating a process for loading the boot file stored in the cache area.

3. A method of expanding a free memory area comprising the steps of:

starting, by use of a processor, a boot of a computer comprising a storage device with a boot file stored thereon, a main memory, and an operating system;

generating processes for loading the boot file into the main memory;

allocating working sets having a predetermined size to the generated processes by the operating system;

suspending a predetermined process selected out of the processes for loading the boot file; and

swapping out a memory page of the suspended predetermined process to decrease a size of a working set for the process, wherein the decreased working set size is a minimum working set size set by default to each process by the operating system.

4. A computer comprising:

a processor;

a main memory;

a storage device, with a boot file stored therein, including an operating system;

a virtual memory;

a first means for selecting a predetermined process to be suspended, from all processes that load the boot file into the main memory; and

a second means for allocating working sets having a predetermined size to processes for loading the boot file, suspending the predetermined process selected by the first means, and swapping out a memory page of the suspended process to decrease a size of a working set for the process, wherein the decreased working set size is a minimum working set size set by default to each process by the operating system.

5. A program product comprising a non-transitory computer readable storage medium that stores code executable by a processor, the executable code comprising code to perform:

starting a boot of a computer provided with a storage device with a boot file stored thereon, a main memory, and an operating system;

generating processes for loading the boot file into the main memory;

allocating working sets having a predetermined size to the generated processes by the operating system;

suspending a predetermined process selected out of the processes for loading the boot file; and

swapping out a memory page of the suspended predetermined process to decrease a size of a working set for the process, wherein the decreased working set size is a minimum working set size set by default to each process by the operating system.

6. The program product of claim 5 , further comprising the step of increasing the size of a cache area used by the operating system according to the decreased working set size.

7. The program product of claim 5 , further comprising the step of swapping into main memory the memory page that has been swapped out before the suspended process resumes.

8. The program product of claim 7 , wherein the swapping-in step is performed after an elapse of a certain period of time after the process is suspended.

9. The program product of claim 7 , wherein the swapping-in step is performed when the boot is completed.

10. The program product of claim 7 , wherein, in the swapping-in step, the memory page of a suspended callee process is swapped in when a caller process is generated with reference to an interprocess communication list describing a relation between the caller process and the callee process.

11. The program product of claim 10 , wherein the swapping-in step includes the step of sending a window message to a process having a window handle.

12. The program product of claim 11 , wherein the swapping-in step is performed immediately after the process having the window handle is suspended.

13. The program product of claim 5 , wherein the predetermined process includes a process that is run on-demand in response to a user's operation.

14. The program product of claim 5 , wherein the predetermined process includes a process for loading a program that is not run at booting among all programs registered with a registry.

15. The computer of claim 4 , wherein:

the main memory includes a cache area; and

the second means expands the cache area according to the decrease in the working set size.

16. The computer of claim 15 , wherein the first means requests the second means to resume the suspended process.

17. The computer of claim 16 , wherein the first means swaps in the memory page swapped out through the second means before a page fault occurs on an access from the processor.

18. The computer of claim 17 , wherein the first means requests the second means to swap in the swapped-out memory page into the main memory before the suspended process resumes.

19. The computer of claim 17 , wherein the first means requests the second means to send a window message to a process having a window handle.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO PC INTERNATIONAL LIMITED
To: LENOVO SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069870/0670 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2019
From: LENOVO (SINGAPORE) PTE. LTD.
To: LENOVO PC INTERNATIONAL
Reel/Frame 049687/0746 →