Resource locking and thread synchronization in a multiprocessor environment
First Claim
Patent Images
1. A method, comprising:
- receiving a request from a requesting software to access a protected shared resource, the protected shared resource currently being accessed by another requesting software;
designating a proxy value to represent the requesting software;
adding the proxy value to a queue of proxy values contained in a lock register;
suspending execution of the requesting software;
determining when the protected shared resource is no longer being accessed by another requesting software;
if the proxy value representing the requesting software is first in the queue of proxy values, resuming execution of the requesting software using the proxy value;
if the proxy value representing the requesting software is first in the queue of proxy values, allowing the requesting software to access the protected shared resource using the proxy value;
if the proxy value representing the requesting software is first in the queue of proxy values, upon completion of access to the protected shared resource by the requesting software, removing the proxy value representing the requesting software from the queue of proxy values; and
if there is no next proxy value in the queue of proxy values, writing a release value to the lock register.
13 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are described for resource locking and thread synchronization in a multiprocessor environment. One method includes restricting access to a protected shared resource by use of a lock; issuing the lock to a requesting software to permit access to the protected shared resource; indicating the issuance of the lock to the requesting software by writing a first value to a lock register; freeing the lock, thereby making the lock available for use by another requesting software, after the requesting software completes accessing the protected shared resource; and indicating that the lock is free by writing a second value to the lock register.
60 Citations
7 Claims
-
1. A method, comprising:
-
receiving a request from a requesting software to access a protected shared resource, the protected shared resource currently being accessed by another requesting software;
designating a proxy value to represent the requesting software;
adding the proxy value to a queue of proxy values contained in a lock register;
suspending execution of the requesting software;
determining when the protected shared resource is no longer being accessed by another requesting software;
if the proxy value representing the requesting software is first in the queue of proxy values, resuming execution of the requesting software using the proxy value;
if the proxy value representing the requesting software is first in the queue of proxy values, allowing the requesting software to access the protected shared resource using the proxy value;
if the proxy value representing the requesting software is first in the queue of proxy values, upon completion of access to the protected shared resource by the requesting software, removing the proxy value representing the requesting software from the queue of proxy values; and
if there is no next proxy value in the queue of proxy values, writing a release value to the lock register. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
Specification