Claims
- 1. A method of sharing virtual address space by a plurality of tasks in a computer memory management system, said computer memory management system including, for each of said plurality of tasks, an offset table of directory pages, wherein each entry in each said offset table of directory pages references a directory page, said method comprising the steps of:
- selectively mapping an independent address space into an address space of more than one of said plurality of tasks;
- maintaining a list of independent address spaces within said virtual address space which are shared by more than one of said plurality of tasks;
- maintaining a list of locations in virtual address space, wherein each entry in said list of locations references an entry in one of said offset tables of directory pages and corresponds to an instance that said independent address space was mapped into an address space of one of said plurality of tasks;
- maintaining each said offset table of directory pages, such that all entries in each said offset table corresponding to said independent address space reference an entry in said list of independent address spaces;
- maintaining each said directory page such that all entries in each said directory page corresponding to said independent address space reference a common set of page tables; and
- translating a virtual address within said independent address space generated by one of said plurality of tasks to a physical address utilizing said list of independent address spaces, said list of locations in virtual address space, and an offset table of directory pages
- wherein said mapping step further comprises the step of selectively mapping said independent address space, at a plurality of different locations, into an address space of one of said more than one of said plurality of tasks.
- 2. A method as set forth in claim 1, wherein said list of independent address spaces is a linked list.
- 3. A method as set forth in claim 1, wherein said list of locations is a linked list.
- 4. A method as set forth in claim 1, further comprising the step of:
- for at least one of said independent address spaces, altering a memory access characteristic of said at least one of said independent address spaces by altering an entry in said common set of page tables.
- 5. A computer system including a virtual address space, a plurality of tasks, and a computer memory management system, said computer memory management system including, for each of said plurality of tasks, an offset table of directory pages, wherein each entry in each said offset table of directory pages references a directory page, comprising:
- means for selectively mapping an independent address space into an address space of more than one of said plurality of tasks;
- means for maintaining a list of independent address spaces within said virtual address space which are shared by more than one of said plurality of tasks;
- means for maintaining a list of locations in virtual address space, wherein each entry in said list of locations references an entry in one of said offset tables of directory pages and corresponds to an instance that said independent address space was mapped into an address space of one of said plurality of tasks;
- means for maintaining each said offset table of directory pages, such that all entries in each said offset table corresponding to said independent address space reference an entry in said list of independent address spaces;
- means for maintaining each said directory page such that all entries in each said directory page corresponding to said independent address space reference a common set of page tables; and
- means for translating a virtual address within said independent address space generated by one of said plurality of tasks to a physical address utilizing said list of independent address spaces, said list of locations in virtual address space, and an offset table of directory pages
- wherein said mapping means further comprises means for selectively mapping said independent address space, at a plurality of different locations, into an address space of one of said more than one of said plurality of tasks.
- 6. A system as set forth in claim 5, wherein said list of independent address spaces is a linked list.
- 7. A system as set forth in claim 5, wherein said list of locations is a linked list.
- 8. A system as set forth in claim 5, further comprising:
- for at least one of said independent address spaces, means for altering a memory access characteristic of said at least one of said independent address spaces by altering an entry in said common set of page tables.
RELATED CASE
Subject matter described herein is also described in co-pending application Ser. No. 472,364 filed herewith by William H. Schwartz & Suresh Yanamadala, entitled "SYSTEM AND METHOD FOR PROVIDING EFFICIENT SHARED MEMORY IN A VIRTUAL MEMORY SYSTEM."
US Referenced Citations (4)