Method for allocation of address space in a virtual memory system
First Claim
1. A method for allocating address space in a virtual memory system for a computer, comprising the steps of:
- maintaining a list of available addresses that are free to be allocated to a program;
allocating addresses to a program in response to requests for address space;
recording entries in a page table relating to addresses that have been allocated;
upon each allocation of an available address, examining a number of entries in the page table, which number is less than the total number of entries in the table, to determine whether the entries have been identified as no longer active;
removing the entries from the table which have been determined to be no longer active, and maintaining a list of the addresses associated with the entries being removed; and
transferring the list of addresses associated with removed entries to the list of allocatable addresses.
2 Assignments
0 Petitions
Accused Products
Abstract
A memory manager for a virtual memory system maintains three lists of virtual addresses: those which are free to be mapped to a program, those which are currently mapped but no longer being used, and those which are being removed from a page table, i.e. unmapped. The allocation of free addresses to programs proceeds in parallel with the removal of old entries from the page table, such that new free addresses are guaranteed to be available at all times. Each time that a new address is allocated to a program, a limited number of entries in the page table are examined, to determine whether the addresses associated with those entries are no longer in use, and the entries can be removed from the page table. By the time that all of the available addresses in the free list have been allocated, the entire page table will have been examined and all addresses which are no longer in use will have had their corresponding page table entries removed, so that they are available as free addresses. As a result, a constant supply of free addresses are provided with only a limited amount of processing time at regular intervals during the operation of a computer.
161 Citations
23 Claims
-
1. A method for allocating address space in a virtual memory system for a computer, comprising the steps of:
-
maintaining a list of available addresses that are free to be allocated to a program; allocating addresses to a program in response to requests for address space; recording entries in a page table relating to addresses that have been allocated; upon each allocation of an available address, examining a number of entries in the page table, which number is less than the total number of entries in the table, to determine whether the entries have been identified as no longer active; removing the entries from the table which have been determined to be no longer active, and maintaining a list of the addresses associated with the entries being removed; and transferring the list of addresses associated with removed entries to the list of allocatable addresses. - View Dependent Claims (2, 3, 4, 5)
-
-
6. In a computer system of the type in which ranges of logical addresses are assigned to programs and the assigned addresses are mapped to physical memory through entries in a page table, a method for removing entries from the page table when a range of addresses is deleted, comprising the steps of:
-
a) maintaining a list of addresses that have been deleted; b) upon the occurrence of a predetermined event, examining a defined number of entries in the page table to determine whether those entries are associated with any of the addresses on said list; c) removing each examined entry from the page table which is associated with an address on said list; d) repeating steps b and c upon the occurrence of said event until all of the entries in the page table have been examined; and e) identifying the addresses in said list as addresses which are available to be assigned to programs. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for managing memory in a computer, comprising:
-
means for allocating ranges of logical addresses to provide access to the memory of the computer; a page table containing entries which map allocated logical addresses to physical addresses for the memory; means for indicating that a range of logical addresses has been deallocated; means responsive to the occurrence of a predetermined event for examining a limited number of the entries in the page table to determine whether they are associated with an address that has been deallocated, and for removing each such entry from the page table; and means for indicating that addresses whose entries have been removed from the page table are available for further allocation. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification