Delayed removal of address mapping for terminated processes
First Claim
Patent Images
1. A memory mapping system for a computer:
- the computer comprising;
a memory for storing programs including at least one current program and a plurality of terminated programs;
a processor for executing said programs;
a memory management unit for mapping virtual address elements in a virtual address space that is addressed by said programs to physical addresses in the memory;
the memory mapping system comprising;
a mapping control unit for controlling the memory management unit to map selected virtual address elements for access by the said programs to physical addresses;
an unmapping control unit for intermittently controlling the memory management unit to unmap physical addresses corresponding to said selected virtual address elements for the terminated programs.
0 Assignments
0 Petitions
Accused Products
Abstract
An application binary interface includes linkage structures for interfacing a binary application program to a digital computer. Virtual address spaces are allocated for processes respectively. Page table entries for translation of the virtual address spaces into physical addresses are not removed as processes terminate, but only after all virtual address spaces have been allocated.
-
Citations
32 Claims
-
1. A memory mapping system for a computer:
-
the computer comprising; a memory for storing programs including at least one current program and a plurality of terminated programs; a processor for executing said programs; a memory management unit for mapping virtual address elements in a virtual address space that is addressed by said programs to physical addresses in the memory; the memory mapping system comprising; a mapping control unit for controlling the memory management unit to map selected virtual address elements for access by the said programs to physical addresses; an unmapping control unit for intermittently controlling the memory management unit to unmap physical addresses corresponding to said selected virtual address elements for the terminated programs. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of mapping memory in a computer:
-
the computer comprising; a memory for storing programs including at least one current program and a plurality of terminated programs; a processor for executing said programs; a memory management unit for mapping virtual address elements in a virtual address space that is addressed by said programs to physical addresses in the memory; the method comprising the steps of; (a) controlling the memory management unit to map selected virtual address elements for access by said programs to physical addresses; (b) intermittently controlling the memory management unit to unmap physical addresses corresponding to said selected virtual address elements for the terminated programs. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A programmed digital computer comprising:
-
a memory; a processor; a plurality of binary programs including at least one current program and a plurality of terminated programs that are stored in the memory; a memory management unit for mapping virtual address elements in a virtual address space that is addressed by said programs to physical addresses in the memory; a memory mapping system including; a mapping control unit for controlling the memory management unit to map selected virtual address elements for access by the said programs to physical addresses; an unmapping control unit for intermittently controlling the memory management unit to unmap physical addresses corresponding to said selected virtual address elements for the terminated programs. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A memory mapping system for a computer:
-
the computer comprising; a memory for storing a program; a processor for executing the program; a memory management unit for mapping virtual address elements in a virtual address space that is addressed by the program to physical addresses in the memory; the memory mapping system comprising; a mapping control unit for controlling the memory management unit to map selected virtual address elements for access by the program to physical addresses; an unmapping control unit for intermittently controlling the memory management unit to unmap physical addresses corresponding to said selected virtual address elements for which said access by the program has been completed; a usage table that is maintained by the mapping control unit for individually indicating whether access by the program to said selected virtual address elements has been completed; in which the unmapping control unit controls the memory management unit to sequentially unmap physical addresses except those whose corresponding virtual address elements are listed in the usage table as indicating that access by the program has not been completed; further comprising an allocation table that is maintained by the mapping control unit for selecting said virtual address elements for mapping by the memory management unit, in which; the allocation table comprises a list of unselected groups of contiguous virtual address elements; the mapping control unit selects new virtual address elements for mapping by the memory management unit that are indicated in the allocation table as being unselected, and updates the allocation table to indicate said new virtual address elements as being selected; the unmapping control unit controls the memory management unit to sequentially unmap physical addresses except those whose corresponding virtual address elements are listed in the usage table as indicating that access by the program has not been completed when all virtual address elements in the allocation table are indicated as being selected.
-
-
28. A memory mapping system for a computer:
-
the computer comprising; a memory for storing a program; a processor for executing the program; a memory management unit for mapping virtual address elements in a virtual address space that is addressed by the program to physical addresses in the memory; the memory mapping system comprising; a mapping control unit for controlling the memory management unit to map selected virtual address elements for access by the program to physical addresses; an unmapping control unit for intermittently controlling the memory management unit to unmap physical addresses corresponding to said selected virtual address elements for which said access by the program has been completed; a usage table that is maintained by the mapping control unit for individually indicating whether access by the program to said selected virtual address elements has been completed; in which the unmapping control unit controls the memory management unit to sequentially unmap physical addresses except those whose corresponding virtual address elements are listed in the usage table as indicating that access by the program has not been completed; further comprising an allocation table that is maintained by the mapping control unit for selecting said virtual address elements for mapping by the memory management unit, in which; the allocation table comprises a list of unselected groups of contiguous virtual address elements; the mapping control unit selects new virtual address elements for mapping by the memory management unit that are indicated in the allocation table as being unselected, and updates the allocation table to indicate said new virtual address elements as being selected; the unmapping control unit controls the memory management unit to sequentially unmap physical addresses except those whose corresponding virtual address elements are listed in the usage table as indicating that access by the program has not been completed when a predetermined subset of virtual address elements in the allocation table are indicated as being selected.
-
-
29. A method of mapping memory in a computer:
-
the computer comprising; a memory for storing a program; a processor for executing the program; a memory management unit for mapping virtual address elements in a virtual address space that is addressed by the program to physical addresses in the memory; the method comprising the steps of; (a) controlling the memory management unit to map selected virtual address elements for access by the program to physical addresses; (b) intermittently controlling the memory management unit to unmap physical addresses corresponding to said selected virtual address elements for which said access by the program has been completed, in which; step (a) comprises maintaining a usage table for individually indicating whether access by the program to said selected virtual address elements has been completed; step (b) comprises controlling the memory management unit to sequentially unmap physical addresses except those whose corresponding virtual address elements are listed in the usage table as indicating that access by the program has not been completed; step (a) further comprises maintaining an allocation table for selecting said virtual address elements for mapping by the memory management unit; step (a) further comprises maintaining the allocation table as including a list of unselected groups of contiguous virtual address elements; step (a) further comprises selecting new virtual address elements for mapping by the memory management unit that are indicated in the allocation table as being unselected, and updates the allocation table to indicate said new virtual address elements as being selected; step (b) further comprises controlling the memory management unit to sequentially unmap physical addresses except those whose corresponding virtual address elements are listed in the usage table as indicating that access by the program has not been completed when all virtual address elements in the allocation table are indicated as being selected.
-
-
30. A method of mapping memory in a computer:
-
the computer comprising; a memory for storing the program; a processor for executing the program; a memory management unit for mapping virtual address elements in a virtual address space that is addressed by the program to physical addresses in the memory; the method comprising the steps of; (a) controlling the memory management unit to map selected virtual address elements for access by the program to physical addresses; (b) intermittently controlling the memory management unit to unmap physical addresses corresponding to said selected virtual address elements for which said access by the program has been completed, in which; step (a) comprises maintaining a usage table for individually indicating whether access by the program to said selected virtual address elements has been completed; step (b) comprises controlling the memory management unit to sequentially unmap physical addresses except those whose corresponding virtual address elements are listed in the usage table as indicating that access by the program has not been completed; step (a) further comprises maintaining an allocation table for selecting said virtual address elements for mapping by the memory management unit; step (a) further comprises maintaining the allocation table as including a list of unselected groups of contiguous virtual address elements; step (a) further comprises selecting new virtual address elements for mapping by the memory management unit that are indicated in the allocation table as being unselected, and updates the allocation table to indicate said new virtual address elements as being selected; step (b) further comprises controlling the memory management unit to sequentially unmap physical addresses except those whose corresponding virtual address elements are listed in the usage table as indicating that access by the program has not been completed when a predetermined subset of virtual address elements in the allocation table are indicated as being selected.
-
-
31. A programmed digital computer, comprising:
-
a memory; a processor; a binary program that is stored in the memory; a memory management unit for mapping virtual address elements in a virtual address space that is addressed by the program to physical addresses in the memory; the memory mapping system comprising; a mapping control unit for controlling the memory management unit to map selected virtual address elements for access by the program to physical addresses; an unmapping control unit for intermittently controlling the memory management unit to unmap physical addresses corresponding to said selected virtual address elements for which said access by the program has been completed; a usage table that is maintained by the mapping control unit for individually indicating whether access by the program to said selected virtual address elements has been completed; in which the unmapping control unit controls the memory management unit to sequentially unmap physical addresses except those whose corresponding virtual address elements are listed in the usage table as indicating that access by the program has not been completed; further comprising an allocation table that is maintained by the mapping control unit for selecting said virtual address elements for mapping by the memory management unit, in which; the allocation table comprises a list of unselected groups of contiguous virtual address elements; the mapping control unit selects new virtual address elements for mapping by the memory management unit that are indicated in the allocation table as being unselected, and updates the allocation table to indicate said new virtual address elements as being selected; the unmapping control unit controls the memory management unit to sequentially unmap physical addresses except those whose corresponding virtual address elements are listed in the usage table as indicating that access by the program has not been completed when all virtual address elements in the allocation table are indicated as being selected.
-
-
32. A programmed digital computer, comprising:
-
a memory; a processor; a binary program that is stored in the memory; a memory management unit for mapping virtual address elements in a virtual address space that is addressed by the program to physical addresses in the memory; the memory mapping system comprising; a mapping control unit for controlling the memory management unit to map selected virtual address elements for access by the program to physical addresses; an unmapping control unit for intermittently controlling the memory management unit to unmap physical addresses corresponding to said selected virtual address elements for which said access by the program has been completed; a usage table that is maintained by the mapping control unit for individually indicating whether access by the program to said selected virtual address elements has been completed; in which the unmapping control unit controls the memory management unit to sequentially unmap physical addresses except those whose corresponding virtual address elements are listed in the usage table as indicating that access by the program has not been completed; further comprising an allocation table that is maintained by the mapping control unit for selecting said virtual address elements for mapping by the memory management unit, in which; the allocation table comprises a list of unselected groups of contiguous virtual address elements; the mapping control unit selects new virtual address elements for mapping by the memory management unit that are indicated in the allocation table as being unselected, and updates the allocation table to indicate said new virtual address elements as being selected; and the unmapping control unit controls the memory management unit to sequentially unmap physical addresses except those whose corresponding virtual address elements are listed in the usage table as indicating that access by the program has not been completed when a predetermined subset of virtual address elements in the allocation table are indicated as being selected.
-
Specification