System for locking data in a shared cache
First Claim
Patent Images
1. In a computer, a method of managing a virtual memory system, comprising the steps of:
- storing a block of data in a memory buffer which is locked by a first accessor to access the data stored therein;
from a second accessor, requesting the lock on the memory buffer;
in response to the lock request, transferring the lock from the first accessor to the second accessor while the first accessor continues accessing the data stored in the memory buffer; and
allowing the first accessor to continue accessing the data stored in the memory buffer after the second accessor receives ownership of the lock.
2 Assignments
0 Petitions
Accused Products
Abstract
In a multi-threaded computing system, a locking system is utilized to cooperatively manage a shared cache between a plurality of user threads and a paging manager thread. To manage the locks, the paging manager maintains pointers between a process memory space assigned to each user thread, a global system data structure assigned to each user thread, and a page control block for each locked page in memory. These pointers and additional flags identify locked pages and their owners, and facilitates cleanup of stale locks.
145 Citations
34 Claims
-
1. In a computer, a method of managing a virtual memory system, comprising the steps of:
-
storing a block of data in a memory buffer which is locked by a first accessor to access the data stored therein; from a second accessor, requesting the lock on the memory buffer;
in response to the lock request, transferring the lock from the first accessor to the second accessor while the first accessor continues accessing the data stored in the memory buffer; andallowing the first accessor to continue accessing the data stored in the memory buffer after the second accessor receives ownership of the lock. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a computer, a method of locking a page of data in memory, comprising the steps of:
-
in a computer, allocating a cache memory area having a plurality of buffers, each buffer associated with a respective control block; storing pages of data in respective buffers; from a first user accessor having a respective first accessor memory in the computer, requesting a lock on a first buffer; in response to the lock request, performing locking steps comprising; setting a buffer pointer in the first accessor memory to reference the control block associated with the first buffer; setting a global accessor pointer associated with the first user accessor to reference the buffer pointer; and setting an owner pointer in the control block associated with the first buffer to reference a global data field associated with the first user accessor. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A virtual memory system for a computer, comprising:
-
a block of data stored in a memory buffer which is locked by a first accessor to access the data stored therein; a second accessor requesting the lock on the memory buffer; a mechanism to transfer the lock from the first accessor to the second accessor while the first accessor continues accessing the data stored in the memory buffer; and a mechanism to allow the first accessor to continue accessing the data stored in the memory buffer after the second accessor receives ownership of the lock.
-
-
18. A computer system for locking a page of data in memory, comprising the steps of:
-
in a computer, a cache memory area having a plurality of buffers, each buffer associated with a respective control block; pages of data stored in respective buffers; a locking mechanism responsive to a request to lock a first buffer from a first user accessor having a respective first accessor memory in the computer, the locking mechanism comprising; a buffer pointer in the first accessor memory referencing the control block associated with the first buffer; a global accessor pointer associated with the first user accessor referencing the buffer pointer; and an owner pointer in the control block associated with the first buffer referencing a global data field associated with the first user accessor.
-
-
19. An article of manufacture comprising:
-
a computer-readable medium for use in a computer having a virtual memory system; a computer-implementable program recorded on the medium to manage the virtual memory system, the program comprising the steps of; storing a block of data in a memory buffer which is locked by a first accessor to access the data stored therein; from a second accessor, requesting the lock on the memory buffer; in response to the lock request, transferring the lock from the first accessor to the second accessor while the first accessor continues accessing the data stored in the memory buffer; and allowing the first accessor to continue accessing the data stored in the memory buffer after the second accessor receives ownership of the lock. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. An article of manufacture comprising:
-
a computer-readable medium for use in a computer; a computer-implementable program recorded on the medium for locking a page of data in memory, the program comprising the steps of; in a computer, allocating a cache memory area having a plurality of buffers, each buffer associated with a respective control block; storing pages of data in respective buffers; from a first user accessor having a respective first accessor memory in the computer, requesting a lock on a first buffer; in response to the lock request, performing locking steps comprising; setting a buffer pointer in the first accessor memory to reference the control block associated with the first buffer; setting a global accessor pointer associated with the first user accessor to reference the buffer pointer; and setting an owner pointer in the control block associated with the first buffer to reference a global data field associated with the first user accessor. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34)
-
Specification