IP Library Granted Patent US 8,707,315
Granted Patent B2
US 8,707,315 · App. 12/183,174 · Granted Apr 22, 2014

Method and system for implementing realtime spinlocks

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,707,315
App. No.
12/183,174
Granted
Apr 22, 2014
Kind
B2
Abstract

A system and method for receiving a request from a requester for access to a computing resource, instructing the requester to wait for access to the resource when the resource is unavailable and allowing the requester to perform other tasks while waiting, determining whether the requester is available when the resource subsequently becomes available, and granting access to the resource by the requester if the requester is available.

Claims (41)

1. A method, comprising:

receiving a request from a requester for access to a computing resource;

instructing, when the resource is unavailable, the requester to wait for access to the resource, wherein the requester is allowed to perform other tasks while waiting;

determining, at a subsequent availability of the resource, whether the requester is one of unavailable and available;

denying access to the resource by the requester based on the request if the requester is unavailable;

granting access to the resource by the requester based on the request if the requester is available; and

prioritizing the requester over a further requester at a further subsequent availability of the resource if access to the resource by the requester was denied based on the requester being unavailable.

2. The method of claim 1 , further comprising:

locking the resource when access is granted to the requester.

3. The method of claim 1 , further comprising:

receiving a further request from a further requester, wherein the further request is received while the request remains pending;

instructing, when the resource is unavailable, the further requester to wait for access to the resource, wherein the further requester is allowed to perform other tasks while waiting; and

granting access to the resource by one of the requester and the further requester based on an access policy.

4. The method of claim 3 , wherein the access policy includes:

determining, when the resource subsequently becomes available, which one of the requester and the further requester is available; and

granting access to the one of the requester and the further requester that is available.

5. The method of claim 3 , wherein the access policy includes:

determining, when the resource subsequently becomes available, if both the requester and the further requester are available.

6. The method of claim 1 , wherein the performing other tasks includes the running of interrupts.

7. The method of claim 1 , wherein the requester is one of a processor of a multiprocessor arrangement and multiple threads executing on a single processor.

8. A system, comprising:

a computing resource;

a plurality of requesters having controlled access to the resource; and

a spinlocking hardware processor controlling access by the plurality of requesters to the resource, the spinlocking hardware processor receiving a request from a first requester for access to the resource, instructing, when the resource is unavailable, the first requester to wait for access to the resource, wherein the first requester is allowed to perform other tasks while waiting, determining, at a subsequent availability of the resource, whether the first requester is one of unavailable and available, denying access to the resource by the requester based on the request if the first requester is unavailable, granting access to the resource by the first requester based on the request if the first requester is available, and prioritizing the first requester over a second requester at a further subsequent availability of the resource if access to the resource by the first requester was denied based on the first requester being unavailable.

9. The system of claim 8 , wherein the spinlocking hardware processor locks the resource when access is granted to the first requester.

10. The system of claim 8 , wherein the spinlocking hardware processor receives a second request from a second requester, the second request being received while the request remains pending, instructs, when the resource is unavailable, the second requester to wait for access to the resource, wherein the second requester is allowed to perform other tasks while waiting and grants access to the resource by one of the first and second requesters based on an access policy.

11. The system of claim 10 , wherein the access policy provides that when the resource subsequently becomes available and one of the first and second requesters is available, access is granted to the one of the first and second requesters that is available.

12. The method of claim 8 , wherein the performing other tasks by the first requester includes the running of interrupts.

13. The method of claim 8 , wherein the plurality of requesters includes one of processors of a multiprocessor arrangement and multiple threads executing on a single processor.

14. The system of claim 10 , wherein the access policy provides that the one of the first and second requesters that is skipped is granted access the next time the resource becomes available.

15. A system, comprising a hardware memory storing a set of instructions, and a hardware processor executing the set of instructions, the set of instructions, when executed by the hardware processor, causing the hardware processor to perform a method comprising:

receiving a request from a requester for access to a computing resource;

instructing, when the resource is unavailable, the requester to wait for access to the resource, wherein the requester is allowed to perform other tasks while waiting;

determining, at a subsequent availability of the resource, whether the requester is one of unavailable and available;

denying access to the resource by the requester based on the request if the requester is unavailable; and

granting access to the resource by the requester based on the request if the requester is available; and

prioritizing the requester over a further requester at a further subsequent availability of the resource if access to the resource by the requester was denied based on the requester being unavailable.

16. The system of claim 15 , wherein the set of instructions are further operable to:

receive a further request from a further requester, wherein the further request is received while the request remains pending;

instruct, when the resource is unavailable, the further requester to wait for access to the resource, wherein the further requester is allowed to perform other tasks while waiting; and

grant access to the resource by one of the requester and the further requester based on an access policy.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Dec 28, 2022
From: GUGGENHEIM CORPORATE FUNDING, LLC
To: WIND RIVER SYSTEMS, INC.
Reel/Frame 062239/0590 →
PATENT SECURITY AGREEMENT Recorded Dec 24, 2018
From: WIND RIVER SYSTEMS, INC.
To: GUGGENHEIM CORPORATE FUNDING, LLC
Reel/Frame 049148/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2008
From: KONING, MAARTEN; RICHARDSON, RAYMOND
To: WIND RIVER SYSTEMS, INC.
Reel/Frame 021350/0449 →