Cooperative Polling Fairshare Scheduler
Advances in hardware capacity, especially I/O devices such as cameras and displays, are driving the development of applications like high-definition video conferencing that have tight timing and CPU requirements. Unfortunately, current operating systems do not adequately provide the timing response needed by these applications. In this paper, we present a hierarchical scheduling model that aims to provide these applications with tight timing response, while at the same time preserve the strengths of current schedulers, namely fairness and efficiency. Our approach, called cooperative polling, consists of an application-level event scheduler and a kernel thread scheduler that cooperate to dispatch time-constrained application events accurately and with minimal kernel preemption, while still ensuring rigorously that all applications share resources fairly. Fairness is enforced in a flexible manner, allowing sharing according to a mixture of both traditional resource-centric metrics and new application-centric metrics, the latter being critical to support graceful application-level adaptation in overload. Unlike traditional real-time systems, our model does not require specification or estimation of resource requirements, simplifying its usage dramatically. Our evaluation, using an adaptive video application and a graphics server, shows that our system has event dispatch accuracies that are one to two orders of magnitude smaller than are achieved by existing schedulers. At the same time, our scheduler still maintains fairness and has low overhead.
Charles Krasic, Mayukh Saubhasik, Anirban Sinha and Ashvin Goel, Fair and Timely Scheduling via Cooperative Polling, In proceedings of the European Conference on Computer Systems (Eurosys), Nuremberg, Germany, March/April 2009.
Anirban Sinha, Charles Krasic and Ashvin Goel, Achieving Predictable Timing and Fairness Through Cooperative Polling. In poster session, 21st ACM Symposium on Operating System Principles (SOSP), Stevenson, Washington, United States, October 2007.
Charles Krasic, Anirban Sinha, and Lowell Kirsh. "Priority-Progress CPU Adaptation for Elastic Real-Time Applications, To appear in the Fourteenth Annual Multimedia Computing and Networking Conference (MMCN'07), January 2007.
Mayukh Saubhasik. Support for Time-Sensitive Applications via Cooperative Polling. Masters Thesis, The University of British Columbia, September 2008.
Anirban Sinha. Achieving Predictable Timing and Fairness Through Cooperative Polling. Masters Thesis, The University of British Columbia, November 2007.
Charles "Buck" Krasic, Eurosys 2009. PDF Slides at Eurosys'09
Mayukh Saubhasik, Final thesis presentation talk, September 22 2008. PDF Slides
Anirban Sinha, Final thesis presentation talk, November 2 2007. PDF Slides
- Uses Git repository - Branched off 2.6.25-rc5
To clone the repository, install git and type:
(Read Only) git clone http://dsg.cs.ubc.ca/gitrepos/coopkernel.git [local dir]
(Read/Write) git clone git+ssh://dsg.cs.ubc.ca/home/mayukh/gitrepos/coopkernel.git [local dir]
To checkout the repository, install subversion and type:
(Read-Write) svn co svn+ssh://dsg.cs.ubc.ca/home/subversion/svn-repos/mayukh-thesis/xorg-codebase [local dir]
(Read Only) svn co http://dsg.cs.ubc.ca/svn/mayukh-thesis/xorg-codebase [local dir]