发明名称 Method and system to manage memory accesses from multithread programs on multiprocessor systems
摘要 A method, computer program and system for controlling accesses to memory by threads created by a process executing on a multiprocessor computer. A page table structure is allocated for each new thread and copied from the existing threads. The page access is controlled by a present bit and a writable bit. Upon a page fault the access is provided to one thread. The kernel handles the new page entry creation process and set the page present bits to zero which creates page faults. In a second embodiment, two page table structures are created, one for one thread having access to the address space and the other page table structure shared by all the other threads not having access to the address space.
申请公布号 US9164812(B2) 申请公布日期 2015.10.20
申请号 US200912485394 申请日期 2009.06.16
申请人 International Business Machines Corporation 发明人 Vertes Marc;Bergheaud Philippe;Subhraveti Dinesh Kumar
分类号 G06F12/00;G06F13/00;G06F13/28;G06F9/52;G06F11/20 主分类号 G06F12/00
代理机构 Suiter Swantz pc llo 代理人 Suiter Swantz pc llo
主权项 1. A method comprising: requesting a creation of a new thread by the process; allocating a new page table directory in a memory descriptor and creating a copy of an existing page table of at least one existing thread; granting access to a page to a first thread, wherein the access granted to the page by the first thread and any subsequent threads is mutually exclusive; modifying a page-present bit associated with an allocation of the page in physical memory in response to the granting access to a page to a first thread such that a page fault interrupt is generated when a second thread attempts to access the page by at least: setting the page-present bit associated with an allocation of the page in physical memory for the first thread to a first value in response to the granting access to a page to the first thread; andsetting the page-present bit associated with an allocation of the page in physical memory for the second thread to a second value in response to the granting access to a page to the first thread; determining whether the page is present in memory and is writable when the page fault is generated, wherein whether the page is present in memory and is writable are indicated by two bits; and when the page is present in memory and is writable and the first thread is determined to be about to exit, granting to the second thread an access to the page and setting the two bits indicating that the page is present in memory and is writable, wherein the thread exit operation of a kernel is modified to release a page directory and a page table hierarchy associated with the exiting thread.
地址 Armonk NY US