Method and apparatus for inter process priority donation

US9348645B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9348645-B2
Application numberUS-201414576917-A
CountryUS
Kind codeB2
Filing dateDec 19, 2014
Priority dateMay 30, 2014
Publication dateMay 24, 2016
Grant dateMay 24, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method and an apparatus for priority donations among different processes are described. A first process running with a first priority may receive a request from a second process running with a second priority to perform a data processing task for the second process. A dependency relationship may be identified between the first process and a third process running with a third priority performing separate data processing task. The dependency relationship may indicate that the data processing task is to be performed via the first process subsequent to completion of the separate data processing task via the third process. The third process may be updated with the second priority to complete the separate data processing task. The first process may perform the data processing task with the second priority for the second process.

First claim

Opening claim text (preview).

What is claimed is: 1. A machine-readable non-transitory storage medium having instructions therein, which when executed by a machine, cause the machine to perform a method, the method comprising: receiving a request at a first process from a second process for the first process to perform a data processing task for the second process, the first process running with a first priority, the second process running with a second priority; identifying a dependency relationship between the first process and a third process, the third process running with a third priority to perform a separate data processing task, the dependency relationship indicates the data processing task to be performed via the first process subsequent to completion of the separate data processing task via the third process; updating the third process with the second priority to complete the separate data processing task running with the second priority; and performing the data processing task for the second process via the first process running with the second priority. 2. The medium of claim 1 , wherein the request is based on an interface call via an inter process communication mechanism. 3. The medium of claim 1 , wherein the request includes a voucher maintained via a voucher system, wherein the voucher indicates the second priority of the second process, and wherein the identification comprises: sending a priority change request based on the voucher to the voucher system from the first process running with the first priority, the priority change request for updating the priority of the first process with the second priority indicated in the voucher. 4. The medium of claim 3 , further comprising: receiving a reply from the voucher system at the first process in response to the priority change request; and sending a priority change confirmation request to the voucher system subsequent to the reply via the first process running with the second priority. 5. The medium of claim 3 , wherein the voucher includes a priority attribute associated with a priority value representing the second priority, further comprising: sending a voucher request to the voucher system via the second process running with the second priority, the voucher request specifying the priority attribute; and receiving the voucher via the second process from the voucher system subsequent for the voucher request. 6. The medium of claim 5 , wherein the priority value is maintained in a registry, further comprising: registering the priority value in the registry; and in response to receiving the priority change request, verifying whether the voucher included in the priority change request is valid, wherein the voucher is not valid if the priority value is no registered in the registry. 7. The medium of claim 6 , wherein the registering comprises: in response to the voucher request from the second process, generating the priority value associated with the second process and the second priority. 8. The medium of claim 7 , wherein the priority value associated with the second process is maintained in a priority map, further comprising: in response to the priority change request from the first process, updating the priority map for the priority value, the updated priority map indicating a dependency relationship between the second process and the first process. 9. The medium of claim 8 , wherein the priority map includes a plurality of priority values, one or more of the priority values associated with one or more dependency relationships among two or more processes, further comprising: searching the priority map to identify one or more processes the first process depending on, wherein the dependency relationships are transitive, wherein the search is based on the transitivity of the dependency relationship and wherein the one or more processes include the third process. 10. The medium of claim 9 , wherein the third process is associated with at least one priority value in the priority map, the at least one priority value being separate from the priority value representing the second priority. 11. The medium of claim 9 , wherein priorities of the identified one or more processes the first process depending on are automatically updated according to the second priority without requiring requests from the identified one or more processes. 12. The medium of claim 9 , wherein each of the priorities of the identified one or more processes the first process depending on is automatically updated to the second priority if the priority is lower than the second priority. 13. The medium of claim 9 , wherein the identified processes the first process depending on include a fourth process, and wherein the priority map specifies a dependency relationship between the fourth process and the third process. 14. The medium of claim 13 , wherein the dependency relationship between the fourth process and the third process is based on an IPC request from the fourth process to the third process prior to the request received at the first process. 15. The medium of claim 14 , further comprising: detecting an exit of the fourth process; and updating the priority map to remove the dependency relationship between the fourth process and the third process. 16. The medium of claim 14 , further comprising: detecting completion of work in the fourth process based on IPC (inter process communication) requests from the first process; and updating the priority map in response to the detection of the completion of work, wherein the priority map is updated to remove dependency relationship between the first process and the fourth process while maintaining the dependency relationship between the first process and the third process. 17. The medium of claim 16 , wherein the IPC requests include vouchers with reference counts, wherein the reference counts are updated according to the IPC requests and wherein the detection of the completion of work is a direct result of the IPC requests via the updated reference counts. 18. A machine-readable non-transitory storage medium having instructions therein, which when executed by a machine, cause the machine to perform a method, the method comprising: generating a voucher for a first process running with a first privilege, the voucher indicating a first priority of the first process, wherein a second process is running with a second priority, the second process capable of performing a data processing task; in response to receiving the voucher from the second process for performing the data processing task for the first process, granting the second process with the first priority to perform the data processing task according to the voucher of the first process; and resetting the second process back to the second priority in response to a completion indication of the data processing task of the second process. 19. The medium of claim 18 , further comprising: sending a message via an IPC mechanism from the first process to the second process, wherein the message includes a reference to the voucher, and wherein the voucher from the second process is received based on the reference in the message. 20. The medium of claim 19 , wherein the completion indication is based on a return of the message via the IPC mechanism from the second process. 21. A computer implemented method comprising: receiving a request at a first process from a second process for the first process to perform a data processing task for the second process, the first process runni

Assignees

Inventors

Classifications

  • Allocation of resources, e.g. of the central processing unit [CPU] · CPC title

  • Saving or restoring of program or task context · CPC title

  • by switching off individual functional units in the computer system · CPC title

  • Monitoring of events, devices or parameters that trigger a change in power modality · CPC title

  • Program synchronisation; Mutual exclusion, e.g. by means of semaphores · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9348645B2 cover?
A method and an apparatus for priority donations among different processes are described. A first process running with a first priority may receive a request from a second process running with a second priority to perform a data processing task for the second process. A dependency relationship may be identified between the first process and a third process running with a third priority performi…
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/4881. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 24 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).