发明名称 Efficient priority-aware thread scheduling
摘要 A priority-based scheduling and execution of threads may enable the completion of higher-priority tasks above lower-priority tasks. Occasionally, a high-priority thread may request a resource that has already been reserved by a lower-priority thread, and the higher-priority thread may be blocked until the lower-priority thread relinquishes the reservation. Such prioritization may be acceptable if the lower-priority thread is able to execute comparatively unimpeded, but in some scenarios, the lower-priority thread may execute at a lower priority than a third thread that also has a lower priority than the high-priority thread. In this scenario, the third thread is effectively but incorrectly prioritized above the high-priority thread. Instead, upon detecting this scenario, the device may temporarily elevate the priority of the lower-priority thread over the priority of the third thread until the lower-priority thread relinquishes the resource, thereby reducing the waiting period of the high-priority thread for the requested resource.
申请公布号 US9569260(B2) 申请公布日期 2017.02.14
申请号 US201313907415 申请日期 2013.05.31
申请人 Microsoft Technology Licensing, LLC 发明人 Kishan Arun Upadhyaya;Clift Neill Michael;Iyigun Mehmet;Bak Yevgeniy;Raza Syed Aunn Hasan
分类号 G06F9/46;G06F9/48 主分类号 G06F9/46
代理机构 代理人 Jardine John;Yee Judy;Minhas Micky
主权项 1. A method of prioritizing threads respectively having a priority and executing on a processor of a device, the method comprising: allocating a reservation of a resource to second thread having a second thread priority; responsive to the processor context-switching away from the second thread, recording the reservation of the resource by the second thread on a resource reservation list; responsive to a request for the resource by a first thread having a first higher priority that is higher than the second thread priority, consulting the resource reservation list to detect a resource conflict comprising the reservation by the second thread while a third thread having a third thread priority below the first thread priority and above the second thread priority, such that executing the third thread causes a delay of execution of the second thread; responsive to the resource conflict, elevating the second thread priority above the third thread priority; and executing the threads on the processor according to the priorities of the respective threads, including selecting the second thread for execution over the third thread responsive to the elevating of the second thread priority above the third thread priority.
地址 Redmond WA US