System Support for Online Reconfiguration

Online reconfiguration provides a way to extend and replace active operating system components. This provides administrators, developers, applications, and the system itself with a way to update code, adapt to changing workloads, pinpoint performance problems, and perform a variety of other tasks while the system is running. With generic support for interposition and hot-swapping, a system allows active components to be wrapped with additional functionality or replaced with different implementations that have the same interfaces. This paper describes support for online reconfiguration in the K42 operating system and our initial experiences using it. It describes four base capabilities that are combined to implement generic support for interposition and hot-swapping. As examples of its utility, the paper describes some performance enhancements that have been achieved with K42’s online reconfiguration mechanisms including adaptive algorithms, common case optimizations, and workload specific specializations.

[1]  I. Lee,et al.  DYMOS: a dynamic modification system , 1983, SIGSOFT '83.

[2]  Toby Bloom,et al.  Dynamic module replacement in a distributed programming system , 1983 .

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

[4]  Edward D. Lazowska,et al.  Distributed smalltalk: inheritance and reactiveness in distributed systems , 1988 .

[5]  Krithi Ramamritham,et al.  The Spring kernel: a new paradigm for real-time operating systems , 1989, OPSR.

[6]  P. Dasgupta,et al.  The Clouds distributed operating system , 1991, Computer.

[7]  Luca Cardelli,et al.  Modula-3 Report (revised) , 1992 .

[8]  Yasuhiko Yokote,et al.  The Apertos reflective operating system: the concept and its implementation , 1992, OOPSLA '92.

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

[10]  モエラー,クリストファー,ピー.,et al.  An object-oriented operating system , 1991 .

[11]  Naranker Dulay,et al.  A constructive development environment for parallel and distributed programs , 1994, Proceedings of 2nd International Workshop on Configurable Distributed Systems.

[12]  Roy H. Campbell,et al.  /spl mu/Choices: an object-oriented multimedia operating system , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

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

[14]  SystemRoy H. Campbell,et al.  Choices : An Object-Oriented Multimedia Operating , 1995 .

[15]  Calton Pu,et al.  Optimistic incremental specialization: streamlining a commercial operating system , 1995, SOSP.

[16]  Sandeep K. Gupta,et al.  AVM: application-level virtual memory , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

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

[18]  Brian N. Bershad,et al.  An Extensible Protocol Architecture for Application-Specific Networking , 1996, USENIX Annual Technical Conference.

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

[20]  Larry L. Peterson,et al.  Analysis of techniques to improve protocol processing latency , 1996, SIGCOMM '96.

[21]  Calton Pu,et al.  Fast concurrent dynamic linking for an adaptive operating system , 1996, Proceedings of International Conference on Configurable Distributed Systems.

[22]  George C. Necula,et al.  Safe kernel extensions without run-time checking , 1996, OSDI '96.

[23]  M. Kaashoek,et al.  ASHs: Application-specific handlers for high-performance messaging , 1996, SIGCOMM '96.

[24]  Deepak Gupta,et al.  A Formal Framework for On-line Software Version Change , 1996, IEEE Trans. Software Eng..

[25]  Margo I. Seltzer,et al.  Dealing with disaster: surviving misbehaved kernel extensions , 1996, OSDI '96.

[26]  Jeffrey Katcher,et al.  PostMark: A New File System Benchmark , 1997 .

[27]  Hubertus Franke,et al.  Customization Lite , 1997 .

[28]  Stephen Gilmore,et al.  Dynamic ML without dynamic types , 1997 .

[29]  Andrew S. Grimshaw,et al.  The Legion vision of a worldwide virtual computer , 1997, Commun. ACM.

[30]  Donna N. Dillenberger,et al.  Adaptive Algorithms for Managing a Distributed Data Processing Workload , 1997, IBM Syst. J..

[31]  Michael Stumm,et al.  Customization lite [operating systems] , 1997, Proceedings. The Sixth Workshop on Hot Topics in Operating Systems (Cat. No.97TB100133).

[32]  Pei Cao,et al.  Adaptive page replacement based on memory reference behavior , 1997, SIGMETRICS '97.

[33]  Charlie Kindel,et al.  Distributed Component Object Model Protocol -- DCOM/1.0 , 1998 .

[34]  Valérie Issarny,et al.  A dynamic reconfiguration service for CORBA , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[35]  Henry McGilton,et al.  The JavaTM Language Environment , 1998 .

[36]  Robert Gray,et al.  Dynamic C++ Classes - A Lightweight Mechanism to Update Code in a Running Program , 1998, USENIX Annual Technical Conference.

[37]  Michael Stumm,et al.  Tornado: maximizing locality and concurrency in a shared memory multiprocessor operating system , 1999, OSDI '99.

[38]  Rodney Van Meter,et al.  Latency management in storage systems , 2000, OSDI.

[39]  Sang Lyul Min,et al.  A low-overhead high-performance unified buffer management scheme that exploits sequential and looping references , 2000, OSDI.

[40]  Calton Pu,et al.  Specialization tools and techniques for systematic optimization of system software , 2001, TOCS.

[41]  Todd C. Mowry,et al.  Compiler-based I/O prefetching for out-of-core applications , 2001, TOCS.

[42]  Scott Nettles,et al.  Dynamic software updating , 2001, PLDI '01.

[43]  Dawson R. Engler,et al.  Bugs as deviant behavior: a general approach to inferring errors in systems code , 2001, SOSP.

[44]  Dilma Da Silva,et al.  An infrastructure for multiprocessor run-time adaptation , 2002, WOSS '02.

[45]  Paul E. McKenney,et al.  READ-COPY UPDATE: USING EXECUTION HISTORY TO SOLVE CONCURRENCY PROBLEMS , 2002 .

[46]  Dawson R. Engler,et al.  Fast and flexible application-level networking on exokernel systems , 2002, TOCS.

[47]  Gordon S. Blair,et al.  The case for reflective middleware , 2002, CACM.

[48]  Dominic Duggan,et al.  Type-based hot swapping of running modules , 2005, Acta Informatica.