IP Library Granted Patent US 10,740,159
Granted Patent B2
US 10,740,159 · App. 16/043,426 · Granted Aug 11, 2020

Synchronization object prioritization systems and methods

Inventors: Vladimir Shveidel (Pardes-Hana, IL); Anton Kucherov (Dudley, MA)
Assignee: EMC IP Holding Company LLC
G06F9/52G06F9/4818
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 10,740,159
App. No.
16/043,426
Granted
Aug 11, 2020
Kind
B2
Abstract

A method for controlling a synchronization object of a computer processing system that includes executing a plurality of processing threads, each of the processing threads having a priority level within the computer processing system. At least one of the plurality of threads requests a lock to the synchronization object. The priority of lower priority processing threads that have a lock to the synchronization object or are waiting in a waiting queue for the synchronization object are promoted. The lower priority threads having a priority lower than the lock requesting thread are promoted to a priority level that is at least as high as that of the lock requesting thread. Upon a release of the lock by a promoted processing thread, returning the promoted processing thread to the original priority level from which the processing thread was promoted.

Claims (34)

1. A method for controlling a synchronization object of a computer processing system comprising:

executing a plurality of processing threads, each of the processing threads having a priority level within the computer processing system;

at least one of the plurality of threads requesting a lock to the synchronization object;

promoting the priority of lower priority processing threads having a lock to the synchronization object or are waiting in a waiting queue for the synchronization object, the lower priority threads have a priority lower than the lock requesting thread and are promoted to a priority level that is at least as high as that of the lock requesting thread; and

upon a release of the lock by a promoted processing thread, returning the promoted processing thread to the original priority level from which the processing thread was promoted;

wherein the lock requesting thread terminates the request to the synchronization object if the lock is not available.

2. The method of claim 1 wherein promoting the priority level comprises communicating a signal from the lock requesting thread to the lower priority waiting threads.

3. The method of claim 1 wherein the promoted waiting threads return themselves to their original priority when they release a lock to the synchronization object.

4. The method of claim 1 wherein the lock requesting thread waits for a predetermined amount of time for the lock before terminating the request to the synchronization object.

5. The method of claim 1 wherein one or more additional lock requesting threads are configured to retry requesting a lock to the synchronization object until the requested lock is obtained.

6. The method of claim 5 wherein each retry of requesting the lock is performed by a separate lock requesting thread.

7. The method of claim 6 wherein each of the separate lock requesting threads that terminates a request to the synchronization object is terminated prior to a retry by a separate lock requesting thread.

8. The method of claim 1 wherein the lower priority threads are not promoted to a priority level that is higher than the lock requesting thread.

9. A system for controlling a synchronization object of a computer processing system comprising:

one or more processors programmed and configured to cause the execution of:

a plurality of processing threads, each of the processing threads having a priority level within the computer processing system;

a synchronization object for synchronizing the processing of the one or more processing threads, the synchronization object comprising a waiting queue for processing requests made by the one or more processing threads;

a lock requesting thread of the one or more processing threads that requests a lock to the synchronization object;

promoting the priority of lower priority processing threads having a lock to the synchronization object or are waiting in the waiting queue, the lower priority threads have a priority lower than the lock requesting thread and are promoted to a priority level that is at least as high as that of the lock requesting thread; and

upon a release of the lock by a promoted processing thread, returning the promoted processing thread to the original priority level from which the processing thread was promoted;

wherein the lock requesting thread terminates the request to the synchronization object if the lock is not available.

10. The system of claim 9 wherein promoting the priority level comprises communicating a signal from the lock requesting thread to the lower priority waiting threads.

11. The system of claim 9 wherein the promoted waiting threads return themselves to their original priority when they release a lock to the synchronization object.

12. The system of claim 9 wherein the lock requesting thread waits for a predetermined amount of time for the lock before terminating the request to the synchronization object.

13. The system of claim 9 wherein one or more additional lock requesting threads are configured to retry requesting a lock to the synchronization object until the requested lock is obtained.

14. The system of claim 13 wherein each retry of requesting the lock is performed by a separate lock requesting thread.

15. The system of claim 14 wherein each of the separate lock requesting threads that terminates a request to the synchronization object is terminated prior to a retry by a separate lock requesting thread.

16. The system of claim 9 wherein the lower priority threads are not promoted to a priority level that is higher than the lock requesting thread.

17. A computer program product for sharing computing resources, the computer program product comprising a non-transitory computer-readable storage medium encoded with computer-executable program code programmed to cause the execution across one or more processors of:

executing a plurality of processing threads, each of the processing threads having a priority level within the computer processing system;

at least one of the plurality of threads requesting a lock to the synchronization object;

promoting the priority of lower priority processing threads having a lock to the synchronization object or are waiting in a waiting queue for the synchronization object, the lower priority threads have a priority lower than the lock requesting thread and are promoted to a priority level that is at least as high as that of the lock requesting thread; and

upon a release of the lock by a promoted processing thread, returning the promoted processing thread to the original priority level from which the processing thread was promoted;

wherein the lock requesting thread terminates the request to the synchronization object if the lock is not available.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2018
From: SHVEIDEL, VLADIMIR; KUCHEROV, ANTON
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046499/0920 →