System and method for providing shared memory using shared virtual segment identification in a computer system
First Claim
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 pageswherein 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.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for allowing multiple tasks to share virtual memory areas, in a memory management system for a computer, uses a data structure which maintains a list of address spaces shared by more than one task. For each entry in this list, a list of slots in virtual address space is maintained in the data structure, where each slot contains indications that said shared memory was mapped into a task. An offset table of directory pages is also maintained, and each entry in this directory points to a directory page for a task. The directory page entries for all of such directory pages points to a page table entry. An entry in each of the offset tables points to the entry in the list of shared address spaces for this set.
-
Citations
8 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. - View Dependent Claims (2, 3, 4)
-
-
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. - View Dependent Claims (6, 7, 8)
-
Specification