Premium
Redesigning the BSD timer facilities
Author(s) -
Costello Adam M.,
Varghese George
Publication year - 1998
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/(sici)1097-024x(19980710)28:8<883::aid-spe186>3.0.co;2-t
Subject(s) - timer , computer science , scalability , interface (matter) , overhead (engineering) , lock (firearm) , kernel (algebra) , process (computing) , set (abstract data type) , operating system , constant (computer programming) , embedded system , microcontroller , programming language , engineering , mechanical engineering , mathematics , bubble , combinatorics , maximum bubble pressure method
Abstract 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.