IP Library Granted Patent US 7,552,308
Granted Patent B2
US 7,552,308 · App. 11/397,844 · Granted Jun 23, 2009

Method and apparatus for temporary mapping of executable program segments

Assignee: International Business Machines Corporation
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 7,552,308
App. No.
11/397,844
Granted
Jun 23, 2009
Kind
B2
Abstract

A computer implemented method, data processing system, and computer usable code are provided for managing memory use for program segments in an executable program. The process copies a set of identified executable program segments associated with the executable program to a set of page segments in a memory space. The process unmaps the set of identified executable program segments and the set of page segments. The process then remaps the set of page segments to a source memory location associated with the set of identified executable program segments.

Claims (32)

1. A computer implemented method for managing memory use for program segments in an executable program for a specified operating system, the computer implemented method comprising:

loading an executable program at a location in random access memory, wherein the location is specified by the executable program;

transferring control of the executable program to a loader, wherein an operating system kernel transfers the control to the loader, wherein the operating system kernel is configured for the specified operating system;

identifying a set of executable program segments to form a set of identified executable program segments to be copied into a set of large pages based upon information in an executable and linking format header for the executable program, wherein the information comprises a set of flags located in the executable and linking format header, wherein the set of flags indicate that the set of executable program segments located on the specified operating system are configured for copying into the set of large pages, and wherein a preload library is used to identify the set of executable program segments, wherein the preload library comprises a library that acts as an intermediary between the specific operating system kernel and the loader;

calculating a copy size and a map size for each executable program segment in the set of executable program segments prior to copying the set of executable program segments into the set of large pages;

copying content from the set of identified executable program segments associated with the executable program to the set of large pages located in a huge translation lookaside buffer file system, wherein the huge translation lookaside buffer file system acts as a memory allocation application programming interface for allocating space in the set of large pages for the specified operating system;

unmapping the set of identified executable program segments;

unmapping the set of large pages; and

remapping the content of the set of large pages located in the huge translation lookaside buffer file system, wherein the preload library instructions the operating system kernel to map the set of identified executable program segments in an original memory address associated with the set of identified executable program segments prior to the copying of the set of identified executable program segments to the set of large pages.

2. The computer implemented method of claim 1 , wherein the set of large pages comprises a size of a page in the set of page segments in virtual memory that is larger than a default system page size.

3. The computer implemented method of claim 1 , wherein the content is copied to a non-uniform memory access locality.

4. The computer implemented method of claim 3 wherein the non-uniform memory access locality is allocated by a non-uniform memory access allocation application program interface.

5. The computer implemented method of claim 1 further comprising:

creating a set of page areas in an unallocated temporary memory space in virtual memory by a memory allocation application program interface.

6. The computer implemented method of claim 1 wherein a copy of a set of page segments remain in a kernel cache after the set of page segments are unmapped, and wherein the set of page segments are remapped to a source memory location associated with the set of identified executable program segments utilizing the copy of the set of page segments in the kernel cache.

7. A computer program product stored in a recordable-type computer useable medium including computer usable program code for managing memory use for program segments in an executable program for a specified operating system, the computer program product comprising:

computer useable program code for loading an executable program at a location in random access memory, wherein the location is specified by the executable program;

computer useable program code for transferring control to a loader, wherein an operating system kernel transfers the control to the loader, wherein the operating system kernel is configured for the specified operating system;

computer useable program code for identifying a set of executable program segments to form a set of identified executable program segments to be copied into a set of large pages based upon information in an executable and linking format header for the executable program, wherein the information comprises a set of flags located in the executable and linking format header, wherein the set of flags indicate that the set of executable program segments located on the specified operating system are configured for copying into the set of large pages, and wherein a preload library is used to identify the set of executable program segments, wherein the preload library comprises a library that acts as an intermediary between the specific operating system kernel and the loader;

computer useable program code for calculating a copy size and a map size for each executable program segment in the set of executable program segments prior to copying the set of executable program segments into the set of large pages;

computer useable program code for copying content from the set of identified executable program segments associated with the executable program to the set of large pages located in a huge translation lookaside buffer file system, wherein the huge translation lookaside buffer file system acts as a memory allocation application programming interface for allocating space in the set of large pages for the specified operating system;

computer useable program code for unmapping the set of identified executable program segments;

computer useable program code for unmapping the set of large pages; and

computer usable program code for copying the content of the set of large pages located in the huge translation lookaside buffer file system, wherein the preload library instructions the operating system kernel to map the set of identified executable program segments in an original memory address associated with the set of identified executable program segments prior to the copying of the set of identified executable program segments to the set of large pages.

8. The computer program product of claim 7 , wherein the set of large pages comprises a size of a page in the set of page segments in virtual memory that is larger than a default system page size.

9. The computer program product of claim 7 wherein the content is copied to a non-uniform memory access locality.

10. The computer program product of claim 9 wherein the non-uniform memory access locality is allocated by a non-uniform memory access allocation application program interface.

11. An apparatus for managing memory use for program segments in an executable program for a specified operating system, the apparatus comprising:

a bus system;

a communications system coupled to the bus system;

a memory connected to the bus system, wherein the memory includes computer useable program code; and

a processing unit, wherein the processor unit executes the computer usable program product to load an executable program at a location in random access memory, wherein the location is specified by the executable program; to transfer control of the executable program to a loader, wherein an operating system kernel transfers the control to the loader, wherein the operating system kernel is configured for the specified operating system; to identify a set of executable program segments to form a set of identified executable program segments to be copied into a set of large pages based upon information in an executable and linking format header for the executable program, wherein the information comprises a set of flags located in the executable and linking format header, wherein the set of flags indicate that the set of executable program segments located on the specified operating system are configured for copying into the set of large pages, and wherein a preload library is used to identify the set of executable program segments, wherein the preload library comprises a library that acts as an intermediary between the specific operating system kernel and the loader; to calculate a copy size and a map size for each executable program segment in the set of executable program segments prior to copying the set of executable program segments into the set of large pages; to copy content from the set of identified executable program segments associated with the executable program to the set of large pages located in a huge translation lookaside buffer file system, wherein the huge translation lookaside buffer file system acts as a memory allocation application programming interface for allocating space in the set of large pages for the specified operating system; to unmap the set of identified executable program segments; to unmap the set of large pages; and to remap the content of the set of large pages located in the huge translation lookaside buffer file system, wherein the preload library instructions the operating system kernel to map the set of identified executable program segments in an original memory address associated with the set of identified executable program segments prior to the copying of the set of identified executable program segments to the set of large pages.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2006
From: LITKE, ADAM GERARD
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 017513/0496 →
Continuity (1)
Related Publication 20070234002A1 · Oct 4, 2007