Premium
Application‐specific thread schedulers for internet server applications
Author(s) -
Roper Matthew D.,
Olsson Ronald A.
Publication year - 2011
Publication title -
concurrency and computation: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.309
H-Index - 67
eISSN - 1532-0634
pISSN - 1532-0626
DOI - 10.1002/cpe.1822
Subject(s) - computer science , thread (computing) , scheduling (production processes) , programming language , operating system , economics , operations management
SUMMARY This paper describes CATAPULTS ( C reating A nd T esting AP plication‐specific U ser L evel T hread S chedulers), a domain‐specific language for creating and testing application‐specific user‐level thread schedulers. Using a domain‐specific language to write user‐level thread schedulers provides three advantages. First, doing so modularizes the thread scheduler, making it easy to plug in and experiment with different thread scheduling strategies. Second, using a domain‐specific language for scheduling code helps prevent several of the common programming mistakes that are easy to make when developing thread schedulers. Finally, the CATAPULTS translator has multiple backends that generate code for different languages and libraries. This makes it easy to prototype an application in a high‐level language and then later port it to a low‐level language; the CATAPULTS translator will take care of generating the appropriate code for both the prototype and the final version of the program from a single scheduler specification. This paper describes how we have used CATAPULTS to improve the performance of two important and representative Internet server applications. Copyright © 2011 John Wiley & Sons, Ltd.