Real-time upcalls (rtus) are an operating systems mechanism to provide quality-of-service (QoS) guarantees to network applications, and to e ciently implement protocols in user space with (QoS) guarantees. Traditionally, threads (and real-time extensions to threads) have been used to structure concurrent activities in user space protocol implementations. However, preemptive scheduling required for real-time threads leads to excessive context switching, and introduces the need for expensive concurrency control mechanisms such as locking. The rtu mechanism exploits the iterative nature of protocol processing to eliminate the need for locking, and reduce asynchronous preemption, while ensuring real-time operation. In addition to e ciency, eliminating the need for concurrency control considerably simpli es protocol code. rtus have been implemented in the NetBSD OS on the Sparc and Pentium platforms. We used the rtu mechanism to implement a sender and a receiver program that communicate using udp sockets over 155Mbps atm, and compared the throughput with that obtained when rtus are not used. Our results show that the rtu based programs maintain the same throughput regardless of other system activities. Without the rtu mechanism, background load reduces throughput by as much as 80%. Using the rtu mechanism, total network bandwidth can be partitioned among di erent udp streams, and delivered to user programs even with background system load. We have also implemented the tcp protocol in user space using the rtu mechanism. For each tcp connection, rtus are setup for performing tcp output, input, and timer processing functions. The use of rtus, in conjunction with shared memory between kernel and user processes for data movement, and the ability of the atm adaptor driver to separate headers and data, makes our user level tcp implementation the most e cient one that we know of for providing QoS guarantees within the endsystem.
A real-time upcall (RTU) mechanism is used in REF to implement user level protocols with QoS guarantees.
Efficient user-space protocol implementations with QoS guarantees using real-time upcalls
IEEE/ACM Trans. Netw.
Computer Science