发明名称 Monitoring and updating tasks arrival and completion statistics without data locking synchronization
摘要 Each processing resource in a scheduler of a process executing on a computer system maintains counts of the number of tasks that arrive at the processing resource and the number of tasks that complete on the processing resource. The counts are maintained in storage that is only writeable by the corresponding processing resource. The scheduler collects and sums the counts from each processing resource and provides statistics based on the summed counts and previous summed counts to a resource manager in response to a request from the resource manager. The scheduler does not reset the counts when the counts are collected and stores copies of the summed counts for use with the next request from the resource manager. The counts may be maintained without synchronization and with thread safety to minimize the impact of gathering statistics on the application.
申请公布号 US8843927(B2) 申请公布日期 2014.09.23
申请号 US200912428918 申请日期 2009.04.23
申请人 Microsoft Corporation 发明人 Radmilac Marko;Ringseth Paul;Fernandes Genevieve;Messmer William R.;Gustafsson Niklas
分类号 G06F9/46;G06F9/50;G06F9/455;G06F11/34 主分类号 G06F9/46
代理机构 代理人 Sullivan Kevin;Chinagudabha Raghu;Minhas Micky
主权项 1. A volatile or non-volatile storage device storing computer-executable instructions that, when executed in a scheduler of a process of a computer system, perform a method comprising: selectively mapping, by the scheduler, hardware threads to virtual processors of the scheduler, the scheduler being limited to mapping a single hardware thread of the hardware threads to a virtual processor of the virtual processors; processing two or more tasks using two or more of the virtual processors, each of the two or more of the virtual processors processing a single task at a time; processing an additional task subsequent to processing one of the two or more tasks using one of the virtual processors; updating by each virtual processor of the two or more of the virtual processors a first number of current arrived tasks and a second number of current completed tasks in a respective storage accessible by each of the two or more of the virtual processors without performing a data locking synchronization and by the one of the virtual processors, subsequent to the updating by each virtual processor, the first number of current arrived tasks and the second number of current completed tasks in the storage of the one of the virtual processors without performing a data locking synchronization; accessing the storage to read at least one of the first number and the second number of one of the each of the two or more of the virtual processors without performing a data locking synchronization; summing each of the first numbers into a current tasks arrived count and each of the second numbers into a current tasks completed count; and providing statistics determined from the current tasks arrived count and the current tasks completed count.
地址 Redmond WA US