Redesigning the BSD timer facilities

Adam M. Costello, George Varghese · Software Practice and Experience · 1998

We describe a reimplementation of the BSD timer facilities. Older BSD kernels take time proportional to the number of outstanding timers to set or cancel timers. Our implementation (in NetBSD) takes constant time to start, stop, and maintain timers; this leads to a highly scalable design that can support thousands of outstanding timers without much overhead. Unlike the existing implementation, our routines are guaranteed to lock out interrupts only for a small, bounded amount of time. We also extend the setitimer() interface to allow a process to have multiple outstanding timers, thereby reducing the need for users to maintain their own timer packages. The changes to the kernel are small (548 lines of code added, 80 removed) and are available on the World Wide Web. © 1998 John Wiley & Sons, Ltd.

Read the paper · More papers on PaperTik