System, method and program for implementing priority inheritance in an operating system
First Claim
Patent Images
1. A method for implementing priority inheritance in an operating system, comprising:
- receiving a request for a shared resource, comprising a mutex, from a first thread executing at a first priority, wherein the shared resource is held by a second thread that is executing at a second priority, wherein the second priority is less than the first priority;
determining whether a list includes a boost request to boost the priority of the second thread, wherein one boost request is maintained for a particular thread holding a particular mutex, wherein the list includes at least one boost request for the second thread for at least one mutex the second thread holds;
generating a boost request to boost the priority of the second thread to the first priority in response to determining that the list does not include one boost request;
modifying one boost request in the list to boost the priority of the second thread to the first priority in response to determining that the list includes one boost request;
submitting the generated boost request in response to generating the boost request; and
submitting the modified boost request in response to modifying the boost request.
0 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a method, system, and program for implementing priority inheritance in an operating system. A first list includes a boost request to boost a priority of an indicated thread holding a shared resource to an indicated priority. Further included is a second list. The system processes the boost request in the first list to boost the priority of the indicated thread to the indicated priority. After boosting priority, the system removes the processed boost request from the first list and places the processed boost request in the second list.
-
Citations
18 Claims
-
1. A method for implementing priority inheritance in an operating system, comprising:
-
receiving a request for a shared resource, comprising a mutex, from a first thread executing at a first priority, wherein the shared resource is held by a second thread that is executing at a second priority, wherein the second priority is less than the first priority; determining whether a list includes a boost request to boost the priority of the second thread, wherein one boost request is maintained for a particular thread holding a particular mutex, wherein the list includes at least one boost request for the second thread for at least one mutex the second thread holds; generating a boost request to boost the priority of the second thread to the first priority in response to determining that the list does not include one boost request; modifying one boost request in the list to boost the priority of the second thread to the first priority in response to determining that the list includes one boost request; submitting the generated boost request in response to generating the boost request; and submitting the modified boost request in response to modifying the boost request. - View Dependent Claims (2, 3)
-
-
4. A method for implementing priority inheritance in an operating system, comprising:
-
receiving a request for a shared resource from a first thread executing at a first priority, wherein the shared resource is held by a second thread that is executing at a second priority, wherein the second priority is less than the first priority; determining whether a restore list includes a boost request to boost the priority of the second thread; determining whether a pending list includes a boost request to boost the priority of the second thread in response to determining that the restore list does not include a boost request; generating a boost request to boost the priority of the second thread to the first priority occurs in response to determining that the pending and restore lists do not include one boost request to boost the priority of the second thread; submitting the generated boost request in response to generating the boost request; modifying one boost request in the restore list to boost the priority of the second thread to the first priority in response to determining that the restore list includes one boost request; submitting the modified boost request in the restore list and removing the modified boost request from the restore list in response to modifying the boost request; and modifying the boost request in the pending list to boost the priority of the second thread to the first priority in response to determining that the pending list includes the boost request. - View Dependent Claims (5, 6)
-
-
7. A system for implementing priority inheritance, comprising:
-
a computer system including an operating system, wherein multiple processes including multiple threads are capable of executing within the operating system; a memory device accessible to the computer system, including a list;
program logic executed by the computer system to cause the computer system to perform;receiving a request for a shared resource comprising a mutex from a first thread executing at a first priority, wherein the shared resource is held by a second thread that is executing at a second priority, wherein the second priority is less than the first priority; determining whether the list includes a boost request to boost the priority of the second thread, wherein one boost request is maintained for a particular thread holding a particular mutex, wherein the list includes at least one boost request for the second thread for at least one mutex the second thread holds; generating a boost request to boost the priority of the second thread to the first priority in response to determining that the list does not include one boost request; modifying one boost request in the list to boost the priority of the second thread to the first priority in response to determining that the list includes the boost request; submitting the generated boost request in response to generating the boost request; and submitting the modified boost request in response to modifying the boost request. - View Dependent Claims (8, 9)
-
-
10. A system for implementing priority inheritance, comprising:
-
a computer system including an operating system, wherein multiple processes including multiple threads are capable of executing within the operating system; a memory device accessible to the computer system, including a restore list and a pending list; program logic executed by the computer system to cause the computer system to perform; receiving a request for a shared resource from a first thread executing at a first priority, wherein the shared resource is held by a second thread that is executing at a second priority, wherein the second priority is less than the first priority; determining whether the restore list includes a boost request to boost the priority of the second thread; determining whether the pending list includes a boost request to boost the priority of the second thread in response to determining that the restore list does not include the boost request; generating a boost request to boost the priority of the second thread to the first priority occurs in response to determining that the restore and pending lists do not include the boost request to boost the priority of the second thread; submitting the generated boost request in response to generating the boost request; modifying one boost request in the restore list to boost the priority of the second thread to the first priority in response to determining that the restore list includes one boost request; submitting the modified boost request in the restore list and removing the modified boost request from the restore list in response to modifying the boost request; and modifying the boost request in the pending list to boost the priority of the second thread to the first priority in response to determining that the pending list includes the boost request. - View Dependent Claims (11, 12)
-
-
13. An article of manufacture comprising a computer readable storage having code executed by a computer to implement priority inheritance by performing operations the operations comprising:
-
receiving a request for a shared resource, comprising a mutex, from a first thread executing at a first priority, wherein the shared resource is held by a second thread that is executing at a second priority, wherein the second priority is less than the first priority; determining whether a list includes a boost request to boost the priority of the second thread, wherein one boost request is maintained for a particular thread holding a particular mutex, wherein the list includes at least one boost request for the second thread for at least one mutex the second thread holds; generating a boost request to boost the priority of the second thread to the first priority in response to determining that the list does not include one boost request; modifying one boost request in the list to boost the priority of the second thread to the first priority in response to determining that the list includes the boost request; submitting the generated boost request in response to generating the boost request; and submitting the modified boost request in response to modifying the boost request. - View Dependent Claims (14, 15)
-
-
16. An article of manufacture comprising a computer storage having code executed by a computer to implement priority inheritance by performing operation, the operations comprising:
-
receiving a request for a shared resource from a first thread executing at a first priority, wherein the shared resource is held by a second thread that is executing at a second priority, wherein the second priority is less than the first priority; determining whether a restore list includes a boost request to boost the priority of the second thread; determining whether a pending list includes a boost request to boost the priority of the second thread in response to determining that the restore list does not include the boost request; generating a boost request to boost the priority of the second thread to the first priority occurs in response to determining that the restore and pending lists do not include the boost request to boost the priority of the second thread; submitting the generated boost request in response to generating the boost request; modifying one boost request in the restore list to boost the priority of the second thread to the first priority in response to determining that the restore list includes one boost request; submitting the modified boost request in the restore list and removing the modified boost request from the restore list in response to modifying the boost request; and modifying the boost request in the pending list to boost the priority of the second thread to the first priority in response to determining that the pending list includes the boost request. - View Dependent Claims (17, 18)
-
Specification