This Article 
 Bibliographic References 
 Add to: 
CTK: Configurable Object Abstractions for Multiprocessors
June 2001 (vol. 27 no. 6)
pp. 531-549

Abstract—The Configuration Toolkit (CTK) is a library for constructing configurable object-based abstractions that are part of multiprocessor programs or operating systems. The library is unique in its exploration of runtime configuration for attaining performance improvements: 1) its programming model facilitates the expression and implementation of program configuration and 2) its efficient runtime support enables performance improvements by the configuration of program components during their execution. Program configuration is attained without compromising the encapsulation or the reuse of software abstractions. CTK programs are configured using attributes associated with object classes, object instances, state variables, operations, and object invocations. At runtime, such attributes are interpreted by policy classes, which may be varied separately from the abstractions with which they are associated. Using policies and attributes, an object's runtime behavior may be varied by 1) changing its performance or reliability while preserving the implementation of its functional behavior or 2) changing the implementation of its internal computational strategy. CTK's multiprocessor implementation is layered on a Cthreads-compatible programming library, which results in its portability to a wide variety of uni- and multiprocessor machines, including a Kendall Square KSR-2 Supercomputer, SGI machines, various SUN workstations, and as a native kernel on the GP1000 BBN Butterfly multiprocessor. The platforms evaluated in this paper are the KSR and SGI machines.

[1] B. Agnew, C. Hofmeister, and J. Purtilo, “Planning for Change: A Reconfiguration Language for Distributed Systems,” Proc. Second Int'l Workshop Configurable Distributed Systems, pp. 15–22, May 1994.
[2] M. Ahamad, R. Das, and K. Schwan, “Integrating Object and Agent Technologies for High-End Collaborative Applications,” 1998, objent.html.
[3] S. Ben Hassen, H. Bal, and A. Tanenbaum, “Hawk: A Runtime System for Partitioned Objects,” J. Parallel Algorithms and Applications, vol. 12, pp. 205–230, 1997.
[4] T. Bihari and K. Schwan, “Dynamic Adaptation of Real-Time Software,” ACM Trans. Computer Systems, vol. 9, no. 2, pp. 143–174, May 1991.
[5] K.P. Birman, T.A. Josepth, T. Raeuchle, and A. El Abbadi, “Implementing Fault-Tolerant Distributed Objects,” IEEE Trans. Software Eng., pp. 502–508, June 1985.
[6] R.D. Blumofe and D. Papadopoulos, “The Performance of Work Stealing in Multiprogrammed Environments,” technical report, Univ. of Texas at Austin, Dept. of Computer Science, May 1998.
[7] R. Campbell, V. Russo, and G. Johnson, “Choices (Class Hierarchical Open Interface for Custom Embedded Systems,” ACM Operating Systems Review, vol. 21, no. 3, pp. 9–17, July 1987.
[8] Proc. Fourth Int'l Workshop Configurable Distributed Systems, May 1998.
[9] E. Chaves Jr., P. Das, T. LeBlanc, B. Marsh, and M. Scott, “Kernel-Kernel Communication in a Shared-Memory Multiprocessor,” Concurrency: Practice and Experience, vol. 5, no. 3, pp. 171–192, May 1993.
[10] J.B. Chen and B.N. Bershad, “The Impact of Operating System Structure on Memory System Performance,” Proc. 14th ACM Symp. Operating System Principles, pp. 120-133, Dec. 1993.
[11] S. Chiba and T. Masuda, “Designing an Extensible Distributed Language with a Meta-Level Architecture,” Proc. Seventh European Conf. Object-Oriented Programming, O. Nierstraz, ed., pp. 482–501, July 1993.
[12] C. Clemencon, B. Mukherjee, and K. Schwan, “Distributed Shared Abstractions (DSA) on Multiprocessors,” IEEE Trans. Software Eng., vol. 22, no. 2, pp. 132–152, Feb. 1996.
[13] G. Cox, W.M. Corwin, K.K. Lai, and F.J. Pollack, “A Unified Model and Implementation for Interprocess Communication in a Multiprocessor Environment,” Proc. Eighth ACM Symp. Operating System Principles, pp. 44–53, Dec. 1981.
[14] S. Danforth and I. Forman, “Reflections on Metaclass Programming in SOM,” Proc. Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '94), pp. 440–452, Oct. 1994.
[15] P. Druschel, L. Peterson, and N. Hutchinson, “Beyond Microkernel Design: Decoupling Modularity and Protection in Lipto,” Proc. 12th Int'l Conf. Distributed Computing Systems, pp. 512–520, June 1992.
[16] G. Eisenhauer and K. Schwan, “An Object-Based Infrastructure for Program Monitoring and Steering,” Proc. Second SIGMETRICS Symp. Parallel and Distributed Tools (SPDT '98), pp. 10–20, Aug. 1998.
[17] D.R. Engler, M.F. Kaashoek, and J.O. Jr, “Exokernel: An Operating System Architecture for Application-Level Resource Management,” Proc. 15th Symp. Operating Systems Principles, Dec. 1995.
[18] D. Ferrari, A. Banerjea, and H. Zhang, “Network Support for Multimedia: A Discussion of the Tenet Approach,” Computer Networks and ISDN Systems, vol. 26, no. 10, July 1994.
[19] P.G.S. Florissi and Y. Yemini, “Management of Application Quality of Service,” Proc. Fifth IEEE Int'l Workshop Distributed Systems: Operations and Management, 1994.
[20] B. Foote, “Object-Oriented Reflection and Metalevel Architectures,” OOPS Messenger, vol. 5, no. 2, Apr. 1994.
[21] H.P.F. Forum, “High Performance Fortran Language Specification, version 1.0,” Technical Report CRPC-TR 92225, Rice Univ., 1996.
[22] A. Gheith and K. Schwan, “CHAOS-Arc—Kernel Support for Multi-Weight Objects, Invocations, and Atomicity in Real-Time Applications,” ACM Trans. Computer Systems, vol. 11, no. 1, pp. 33–72, Apr. 1993.
[23] W. Gu, G. Eisenhauer, K. Schwan, and J. Vetter, “Falcon: On-line Monitoring for Steering Parallel Programs,” Concurrency: Practice and Experience, vol. 10, no. 9, pp. 699–736, Aug. 1998.
[24] G. Hamilton, M. Powell, and J. Mitchell, “Subcontract: A Flexible Base for Distributed Computing,” Proc. 14th ACM Symp. Operating Systems Principles, pp. 69–79, Dec. 1993.
[25] P. Homburg and L. van Doorn, M. van Steen, A.S. Tanenbaum, and W. de Jonge, “An Object Model for Flexible Distributed Systems,” Proc. Advanced School Computing and Imaging (ASCI '95), ASCI T.U. Delft, pp. 69–78, 1995.
[26] N.C. Hutchinson and L.L. Peterson, “The x-Kernel: An Architecture for Implementing Network Protocols,” IEEE Trans. Software Eng., vol. 17, no. 1, pp. 64-76, Jan. 1991.
[27] D. Ivan-Rosu and K. Schwan, “Improving Protocol Performance by Dynamic Control of Communication Resources,” Proc. Second Int'l Conf. Eng. Complex Systems, pp. 249–256, Oct. 1996.
[28] M. Jones, “Interposition Agents: Transparently Interposing User Code at the System Interface,” Operating System Rev., vol. 27, no. 5, pp. 69–79, Dec. 1993 Also appears as Proc. 14th ACM Symp. Operating Systems Principles, 1993.
[29] J. Kramer and J. Magee, “Dynamic Configuration for Distributed Systems,” IEEE Trans. Software Eng., vol. 11, no. 4, pp. 424–436, Apr. 1985.
[30] B. Lindgren, B. Krupczak, M. Ammar, and K. Schwan, “An Architecture and Toolkit for Parallel and Configurable Protocols,” Proc. Int'l Conf. Network Protocols (ICNP-93), Sept. 1993.
[31] H. Masuhara, S. Matsuoka, T. Watanabe, and A. Yonezawa, “Object-Oriented Concurrent Reflective Languages Can Be Implemented Efficiently,” Proc. Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '92), pp. 127–145, Oct. 1992.
[32] H. Masuhara, S. Matsuoka, and A. Yonezawa, “An Object-Oriented Concurrent Reflective Language for Dynamic Resource Management in Highly Parallel Computing,” Information Processing Soc. Japan Notes, 94-PRG-18, pp. 57–64, 1994.
[33] B.P. Miller, M.D. Callaghan, J.M. Cargille, J.K. Hollingsworth, R.B. Irvin, K.L. Karavanic, K. Kunchithapadam, and T. Newhall, “The Paradyn Parallel Performance Measurement Tools,” IEEE Computer, vol. 28, no. 11, Nov. 1995. Also see.
[34] L. Molesky, K. Ramamritham, C. Shen, J. Stankovic, and G. Zlokapa, “Implementing a Predictable Real-Time Multiprocessor Kernel—The Spring Kernel,” Proc. IEEE Workshop Real-Time Operating Systems and Software, 1990.
[35] B. Mukherjee, “A Portable and Reconfigurable Threads Package,” Proc. Sun User Group Technical Conf., pp. 101–112, June 1991.
[36] B. Mukherjee and K. Schwan, “Improving Performance by Use of Adaptive Objects: Experimentation with a Configurable Multiprocessor Thread Package,” Proc. Second Int'l Symp. High Performance Distributed Computing (HPDC-2), pp. 59–66, July 1993.
[37] B. Mukherjee, D. Silva, K. Schwan, and A. Gheith, “KTK: Kernel Support for Configurable Objects and Invocations,” Distributed Systems Eng. J., vol. 1, pp. 259–270, 1994.
[38] Object-Oriented Programming—The CLOS Perspective, A. Paepcke ed. MIT Press, 1993.
[39] C. Pu, H. Massalin, and J. Ioannidis, “The Synthesis Kernel,” Computing Systems, vol. 1, no. 1, pp. 11–32, Winter 1988.
[40] R. Rashid, D. Julin, et al., “Mach: A System Software Kernel,” Proc. 34th IEEE Computer Society Int'l Conf. (COMPCON '89), pp. 176–178, Feb. 1989.
[41] G. Reinelt, “TSPLIB—A Traveling Salesman Problem Library,” ORSA J. Computing, vol. 3, no. 4, pp. 376–384, 1991.
[42] D. Revel, D. McNamee, D. Steere, and J. Walpole, “Adaptive Prefetching for Device Independent File I/O,” Proc. Multimedia Computing and Networking 1998 (MMCN '98), 1998.
[43] D.I. Rosu, K. Schwan, S. Yalamanchili, and R. Jha, “On Adaptive Resource Allocation for Complex Real-Time Applications,” Proc. 18th IEEE Real-Time Systems Symp., pp. 320–329, Dec. 1997.
[44] D. Schmidt, “The ADAPTIVE Communication Environment,” Proc. 11th Sun User Group Conf., 1993.
[45] D. Schmidt, D. Levine, and S. Mungee, “The Design and Performance of Real-Time Object Request Brokers,” Computer Comm., vol. 21, no. 4, Apr. 1998.
[46] D. Schmidt, S. Mungee, S. Flores-Gaitan, and A. Gokhale, “Alleviating Priority Inversion and Non-Determinism in Real-time CORBA ORB Core Architectures,” Proc. Fourth IEEE Real-Time Technology and Applications Symp. (RTAS), June 1998.
[47] K. Schwan, B. Blake, W. Bo, and J. Gawkowski, “Global Data and Control in Multicomputers: Operating System Primitives and Experimentation with a Parallel Branch-and-Bound Algorithm,” Concurrency: Practice and Experience, pp. 191–218, Dec. 1989.
[48] M. Shapiro, “Structure and Encapsulation in Distributed Systems: The Proxy Principle,” Proc. Sixth Int'l Conf. Distributed Computing Systems, pp. 198–204, May 1986.
[49] D.M. Silva, “A Framework for Building Flexible Systems,” PhD thesis, Georgia Inst. of Tech nology, 1997.
[50] D.M. Silva, K. Schwan, and G. Eisenhauer, “Configurable Distributed Retrieval of Scientific Data,” Proc. Fourth Int'l Conf. Configurable Distributed Systems (ICCDS '98), pp. 120–127, May 1998.
[51] A. Tucker and A. Gupta, “Process Control and Scheduling Issues on a Network of Multiprocessors,” Proc. 12th ACM Symp. Operating System Principles, pp. 159–166, Dec. 1989.
[52] J. Vetter and K. Schwan, “High Performance Computational Steering of Physical Simulations,” Proc. Int'l Parallel Processing Symp. (IPPS), Apr. 1997.
[53] E.A. West and A.S. Grimshaw, "Braid: Integrating Task and Data Parallelism," Proc. Frontiers '95: Fifth Symp. Frontiers of Massively Parallel Computation, IEEE CS Press, 1995, pp. 211-219.
[54] R. West, K. Schwan, I. Tacic, and M. Ahamad, “Exploiting Temporal and Spatial Constraints on Distributed Shared Objects,” Proc. 17th IEEE Int'l Conf. Distributed Computing Systems, 1997. Also available is the full-length Technical Report: GIT-CC-96-36.
[55] W.A. Wulf, R. Levin, and S.R. Harbison, Hydra/C. mmp: An Experimental Computer System. McGraw-Hill Advanced Computer Science Series, 1981.
[56] Y. Yokote, “The Apertos Reflective Operating System: The Concept and Its Implementation,” Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '92), pp. 414–434, Oct. 1992.
[57] J. Zinky, D.E. Bakken, and R. Schantz, “Architecture Support for Quality of Service for CORBA Objects,” Theory and Practice of Object Systems, Jan. 1997. Also see techQuO/.

Index Terms:
Configurable systems, high-performance objects, object fragmentation, dynamic adaptation, complex parallel programming, library operating systems.
Dilma M. Silva, Karsten Schwan, Greg Eisenhauer, "CTK: Configurable Object Abstractions for Multiprocessors," IEEE Transactions on Software Engineering, vol. 27, no. 6, pp. 531-549, June 2001, doi:10.1109/32.926175
Usage of this product signifies your acceptance of the Terms of Use.