By a News Reporter-Staff News Editor at Journal of Engineering -- From Alexandria, Virginia, VerticalNews journalists report that a patent by the inventors Dmitrovich, Janet (Round Rock, TX); Langdale, Philip Lee (Austin, TX); Robbins, James Patrick (Austin, TX); Tracey, William J. (Round Rock, TX), filed on December 29, 2007, was cleared and issued on October 2, 2012.
The patent's assignee for patent number 8281291 is International Business Machines Corporation (Armonk, NY).
News editors obtained the following quote from the background information supplied by the inventors: "The present invention relates in general to a system and method for improving memory usage for Java executable (JXE) files. More particularly, the present invention relates to a system and method for memory mapping the read-only portion of the JXE file so that the operating system can reclaim the memory when needed.
"Pervasive computing devices are available to perform a wide variety of tasks in today's business arena. Semiconductor technology has enabled devices such as mobile telephones and personal digital assistants (PDAs) to perform tasks that, until recently, were reserved for more traditional computers.
"These pervasive computing devices include more powerful operating systems. Some of these operating systems support middleware applications, such as 'virtual machines' that are adapted to run platform-neutral applications. A popular example of a virtual machine is the Java Virtual Machine (JVM). Programs written to execute using a JVM will operate on any JVM regardless of the underlying hardware and operating system used by the computing device. Underlying operating systems include Microsoft's Windows.TM. based operating systems as well as Unix-based operating systems such as IBM's AIX operating system and the Linux operating system.
"One challenge that is encountered when running an embedded virtual machine on many pervasive computing devices, especially smaller pervasive computing devices, is the smaller amount of available memory on these devices. This challenge is being addressed by the introduction of pre-linked executable images of the applications written for the virtual machine environment. In the Java environment, these pre-linked executable images are referred to as 'JXE' files. The Jxe file wraps the Java classes into one executable file, which makes the startup and distribution of Java programs easier.
"While using JXE files improves the startup and distribution of Java programs, it adds particular memory challenges. When running a JXE file from a filesystem, the entire JXE image is loaded into memory in order to execute the program. Thus, using JXE files requires the computing device to have sufficient amounts of memory to store and load into RAM all of the bytecodes included in the JXE file. This can be especially challenging when a user is using multiple JXE files on a smaller pervasive computing device, with each JXE file needing to be loaded into the limited amount of available memory.
"JXE files include both read-only data, such as the bytecodes, and read/write data, such as the variables used by the program. Because of this, the memory in which the JXE file resides is typically not swappable without first writing all the JXE data stored in memory back to nonvolatile storage, such as a hard disk drive. This is the case even though the read/write portion of the JXE file is often quite small in comparison to the read-only portion of the file. Swapping the entire JXE file out to disk takes considerable computing resources and decreases system performance. In addition, many pervasive computing devices do not have swap space to even allow swapping of the JXE file. Likewise, when the application is subsequently needed, having to read the entire JXE file from disk and load it back into memory is also expensive in terms of time and computing resources.
"What is needed, therefore, is a system and method for allowing page faults to occur with the read-only portion of JXE files using an operating system that supports paging. What is further needed is a system and method to load JXE pages when needed and allow the operating system to discard JXE pages according to the system's normal paging process."
As a supplement to the background information on this patent, VerticalNews correspondents also obtained the inventors' summary information for this patent: "It has been discovered that read-only portions of Java executable image (JXE) files can be memory mapped from their nonvolatile storage location to a memory location using read-only mapping. In this manner, the operating system is free to discard memory pages occupied by the read-only section of the JXE file without having to instruct the filesystem to write the JXE file back to the nonvolatile storage.
"When a JXE program request is made, the virtual machine allocates an address space for the program. The JXE file is then memory mapped from its nonvolatile location to the allocated memory space. In addition, the read/write section (i.e., variables) of the JXE file are loaded into memory.
"When the JXE program is initialized, a page fault occurs because the read-only portion has not yet been loaded into memory. The operating system's page fault handler retrieves the needed page(s) from the nonvolatile storage location based upon the mapping data that resulted from the previously performed memory mapping. When subsequent pages are needed that have not yet been loaded, they too cause page faults that are handled by the operating system's page fault handler. Because the read-only section of the JXE file is memory mapped using read-only mapping, the operating system's paging process is free to discard previously loaded memory pages that contain read-only portions of the JXE file. When pages that have been discarded by the operating system are once again needed, another page fault occurs whereupon the code is loaded by the page fault handler.
"The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below."
For additional information on this patent, see: Dmitrovich, Janet; Langdale, Philip Lee; Robbins, James Patrick; Tracey, William J.. System and Method for Embedded Java Memory Footprint Performance Improvement. U.S. Patent Number 8281291, filed December 29, 2007, and issued October 2, 2012. Patent URL: http://patft.uspto.gov/netacgi/nph-Parser?

Embedded System

arrow
arrow
    全站熱搜

    EMBA的小眼睛 發表在 痞客邦 留言(0) 人氣()