Real-time upcalls (RTUs) are an operating systems mechanism that can be used by applications to efficiently schedule code segments (or handlers) that must execute periodically. While the mechanism was conceived to support protocol processing with quality-of-service guarantees for networked multimedia applications it is general enough to be applicable in other domains like real-time image processing. Until now real-time threads have been the only mechanism for implementing protocols in user space with QoS guarantees. The RTU mechanism avoids the implementation complexity of the thread based approach while retaining its ability to ensure real-time behavior. In addition, our design simplifies protocol code, improves performance, and can be ported to most systems. A key feature of RTU scheduling is the pre-emption scheme that exploits the iterative nature of protocol processing by allowing an RTU to yield the CPU by returning from the invocation. This obviates the need for RTU handlers to..