Application-Specific Service Technologies for Commodity Operating Systems in Real-Time Environments

In order to eliminate the costs of proprietary systems and special purpose hardware, many real-time and embedded computing platforms are being built on commodity operating systems and generic hardware. Unfortunately, many such systems are ill-suited to the low-latency and predictable timing requirements of real-time applications. This paper, therefore, focuses on application-specific service technologies for low-cost commodity operating systems and hardware, so that real-time service guarantees can be met. We describe contrasting methods to deploy firstclass services on commodity systems, that are dispatched with low latency and execute asynchronously according to bounds on CPU, memory and I/O device usage. Specifically, we present a "user-level sandboxing" (ULS) mechanism, that relies on hardware protection to isolate applicationspecific services from the core kernel. This approach is compared with a hybrid language and run-time protection scheme called "SafeX", that allows untrusted services to be dynamically linked and loaded into a base kernel. SafeX and ULS have been implemented on commodity Linux systems. Experimental results show that both approaches are capable of reducing service violations (and, hence, better qualities of service) for real-time tasks, compared to traditional user-level methods of service deployment in processprivate address spaces. ULS imposes minimal additional overheads on service dispatch latency compared to SafeX, with the advantage that it does not require applicationspecific services to execute in the trusted kernel domain.

[1]  Fangzhe Chang,et al.  User-level resource-constrained sandboxing , 2000 .

[2]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[3]  Tzi-cker Chiueh,et al.  Integrating segmentation and paging protection for safe, efficient and transparent software extensions , 1999, SOSP.

[4]  Margo I. Seltzer,et al.  A Comparison of OS Extension Technologies , 1996, USENIX Annual Technical Conference.

[5]  Peter Druschel,et al.  A Scalable and Explicit Event Delivery Mechanism for UNIX , 1999, USENIX Annual Technical Conference, General Track.

[6]  Thomas Anderson,et al.  Interposition as an Operating System Extension Mechanism , 1997 .

[7]  Richard West,et al.  'QoS Safe' kernel extensions for real-time resource management , 2002, Proceedings 14th Euromicro Conference on Real-Time Systems. Euromicro RTS 2002.

[8]  Greg J. Regnier,et al.  The Virtual Interface Architecture , 2002, IEEE Micro.

[9]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[10]  Karsten Schwan,et al.  FARA-a framework for adaptive resource allocation in complex real-time systems , 1998, Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245).

[11]  Robert Wahbe,et al.  Efficient software-based fault isolation , 1994, SOSP '93.

[12]  P. Wyckoff,et al.  EMP: Zero-Copy OS-Bypass NIC-Driven Gigabit Ethernet Message Passing , 2001, ACM/IEEE SC 2001 Conference (SC'01).

[13]  Daniel P. Siewiorek,et al.  Practical solutions for QoS-based resource allocation problems , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[14]  Guru M. Parulkar,et al.  Efficient user-space protocol implementations with QoS guarantees using real-time upcalls , 1998, TNET.

[15]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[16]  Kang G. Shin,et al.  End-host architecture for QoS-adaptive communication , 1998, Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245).

[17]  Dan Grossman,et al.  TALx86: A Realistic Typed Assembly Language∗ , 1999 .

[18]  Dawson R. Engler,et al.  ASHs: Application-specific handlers for high-performance messaging , 1996, SIGCOMM 1996.

[19]  Andreas Haeberlen,et al.  Performance of address-space multiplexing on the Pentium , 2002 .

[20]  Xin Qi,et al.  An efficient end-host architecture for cluster communication , 2004, 2004 IEEE International Conference on Cluster Computing (IEEE Cat. No.04EX935).

[21]  Jochen Liedtke,et al.  On micro-kernel construction , 1995, SOSP.

[22]  David Clark The structuring of systems using upcalls , 1985, SOSP 1985.

[23]  Thorsten von Eicken,et al.  U-Net: a user-level network interface for parallel and distributed computing , 1995, SOSP.

[24]  Karl Crary,et al.  From system F to typed assembly language , 1999 .

[25]  Yuting Zhang,et al.  An Internet-Wide Distributed System for Data-Stream Processing , 2004, International Conference on Internet Computing.

[26]  James Cheney,et al.  Cyclone: A Safe Dialect of C , 2002, USENIX Annual Technical Conference, General Track.

[27]  Kwei-Jay Lin,et al.  Implementing a general real-time scheduling framework in the RED-Linux real-time kernel , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[28]  Victor Yodaiken,et al.  A Real-Time Linux , 2000 .

[29]  Richard West,et al.  Cuckoo: a Language for Implementing Memory- and Thread-safe System Services , 2005, PLC.

[30]  Prashant J. Shenoy,et al.  Application performance in the QLinux multimedia operating system , 2000, ACM Multimedia.

[31]  Richard West,et al.  Adaptive routing of QoS-constrained media streams over scalable overlay topologies , 2004, Proceedings. RTAS 2004. 10th IEEE Real-Time and Embedded Technology and Applications Symposium, 2004..

[32]  Michael B. Jones,et al.  Interposition agents: transparently interposing user code at the system interface , 1994, SOSP '93.

[33]  Jonathan Lemon Kqueue - A Generic and Scalable Event Notification Facility , 2001, USENIX Annual Technical Conference, FREENIX Track.