A process for partially swapping real storage areas used by a program is utilized in a computer system which executes programs by multiprogramming under control of a virtual storage type operating system. A first portion of a real storage area, allocated to a program to be swapped out, remains allocated to that program while the contents of a second portion of the real storage area are saved in an auxiliary storage so that the second portion is deallocated from that program. The saved contents of the second portion stored in the auxiliary storage are loaded in the real storage when the program is to be swapped in.
An apparatus and method for swapping program code and data between a main memory and an auxiliary memory, and a web video phone adopting the apparatus, are provided. The web video phone includes a key input unit for inputting a command of execution of an application program, a flash memory for storing application programs such as a video phone application using the H.324 protocol, an Internet phone application using the H.323 protocol, a web browser, an e-mail application, and a personal information management system (PIMS), a DRAM including a program code region and a data region for storing program codes downloaded from the flash memory and data swapped from the flash memory, and a main processor for controlling the program code of each application program stored in the flash memory to be stored in the program region of the DRAM and controlling the swapping between the data of each application program stored in the flash memory and the data stored in the data region of the DRAM, in response to an execution command of an application program input through the key input unit. Therefore, all application programs can be driven by a small capacity DRAM, and can be easily, individually managed.
A method and apparatus for reclaiming a page of physical memory in a computer system for subsequent mappings to a virtual address is provided in a system wherein the physical memory is apportioned into a number of pages. The computer system includes a temporary storage device, such as a cache, for storing a subset of the pages in memory. Each of the pages stored in the cache are accessed using a cache page address. Virtual addresses are mapped to physical addresses responsive to monitoring use of the cache page addresses associated with the allocated physical addresses. According to the present invention, a page of physical memory is reclaimed such that a substantially even distribution of cache page addresses is maintained in physical addresses of both mapped and available pages of memory. Pages are originally placed on the clean list in response to characteristics of each page including the cache page address of the page. Pages are also selected from the clean list for reclaiming based on their cache page addresses, such that the reclaiming of a page with that cache page address provides an even distribution of cache page addresses both in use in the system and available for subsequent mappings of virtual addresses. By providing a substantially even distribution of cache page addresses for mapped virtual addresses and available physical addresses, the amount of thrashing that is encountered in the cache is minimized, and concomitantly the overall performance of the computer system is enhanced.
In a computing system implementing a virtual memory system having real memory storage frames for storing virtual pages of data and an auxiliary storage system comprising auxiliary storage slots for storing copies of corresponding virtual pages, wherein I/O mechanisms are employed for effectuating transfer of data between auxiliary and real storage, a system and method for managing storage of unvirtualized dataset pages destined for auxiliary storage in a manner so to avoid I/O operations when assigning or moving VIO dataset data. The system and method is used to allow faster access to VIO data set pages by allowing that data to be kept in real storage.
A system and method for managing scarce computer system memory resources has three aspects. A first aspect allows large data structures to be replaced by a pointer that causes an intentional fault to occur. The fault is trapped, and the invention interposes the required data. A second aspect associates data structures with both the task and the module that own the structure. The structure can be eliminated from memory when both the owning task and the owning module have terminated. A third aspect utilizes swapping techniques to maintain multiple local data areas for multiple tasks. In conjunction the three aspects of the invention provide improved resource availability and substantially unimpaired system performance.
Shrinking a database file is performed by manipulating pages within the file such that all empty pages reside at the end of the file. Non-empty pages from the end of the file are written to empty pages at the start of the file. Repeating this process, the correct number of times, results in all of the empty pages residing at the end of the file. Once this is achieved, the file is truncated such that the space consumed by all empty and discardable pages is returned to the file system. Truncating the file involves traversing the file backwards from the end of the file until the first non-empty page is found. The file is truncated after the last non-empty page.