Skip to main content

Dynamic Program Monitoring and Transformation using the OMOS Object Server

  • Chapter
The Interaction of Compilation Technology and Computer Architecture

Abstract

In traditional monolithic operating systems the constraints of working within the kernel have limited the sophistication of the schemes used to manage executable program images. By implementing an executable image loader as a persistent user-space program, we can extend system program loading capabilities. In this paper we present OMOS, an Object/Meta-Object Server which provides program loading facilities as a special case of generic object instantiation. We discuss the architecture of OMOS, the extensible nature of that architecture, and its transparent application to the problem of dynamic program monitoring and optimization, in particular, code reordering to improve locality of reference. We describe five reordering strategies, one using the static call graph and four based on analysis of the dynamic call graph. One large application was studied under varied amounts of available memory. The best dynamic strategy gave speed improvements ranging from 23 to 66%, while the static method gave speedups ranging from 19 to 52%.1

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Mike Accetta, Robert Baron, William Bolosky, David Golub, Richard Rashid, Avadis Tevanian, and Michael Young. Mach: A new kernel foundation for UNIX development. In Proceedings of the Summer 1986 USENIX Conference, pages 93–112, Atlanta, GA, June 9-13, 1986. Usenix Association.

    Google Scholar 

  2. J.Y. Babonneau, M.S. Achard, G. Morisset, and M.B. Mounajjed. Automatic and general solution to the adaptation of programs in a paging environment. In Proceedings of the Sixth ACM Symposium on Operating Systems Principles, pages 109–116, November 1971.

    Google Scholar 

  3. Gilad Bracha and Gary Lindstrom. Modularity meets inheritance. In Proc. International Conference on Computer Languages, pages 282–290, San Francisco, CA, April 20-23 1992. IEEE Computer Society.

    Google Scholar 

  4. J. Cargille and Miller B. P. Binary wrapping: A technique for instrumenting object code. ACM SIGPLAN Notices, 27(6), June 1992.

    Google Scholar 

  5. L. W. Comeau. A study of the effect of user program optimization in a paging system. In Proceedings of the ACM Symposium on Operating Systems Principles, Gatlinburg, Tenn., October 1967.

    Google Scholar 

  6. Digital Equipment Corporation, Maynard, MA. CHORD, CH0RD2, 1993.

    Google Scholar 

  7. Domenico Ferrari. Improving locality by critical working sets. Communications of the ACM, 17(l):614–620, November 1974.

    Article  MATH  Google Scholar 

  8. Susan L. Graham, Peter B. Kessler, and Marshall K. McKusick. An execution profiler for modular programs. Software Practice and Experience, 13:671–685, 1983.

    Article  MATH  Google Scholar 

  9. S. J. Hartley. Compile-time program restructuring in multiprogrammed virtual memory systems. IEEE Trans on Software Engineering, SE-14(11):1640–1644, 1988.

    Article  Google Scholar 

  10. D. J. Hatfield and J. Gerald. Program restructuring for virtual memory. IBM Systems Journal, 10(3):168–192, 1971.

    Article  Google Scholar 

  11. J. L. Hennessy and Thomas R. Gross. Postpass code optimization of pipeline constraints. ACM Transactions on Programming Languages and Systems, 5(3):342, July 1983.

    Article  Google Scholar 

  12. Amir Kishon, Paul Hudak, and Charles Counsel. Monitoring semantics: A formal framework for specifying, implementing, and reasoning about execution monitors. In Proceedings of the SIGPLAN’ 91 Conference on Programming Language Design and Implementation, pages 338–352, June 1991.

    Google Scholar 

  13. James R. Laurus and Thomas Ball. Rewriting executable files to measure program behavior. Technical Report Technical Report 1083, The University of Wisconsin, March 1992.

    Google Scholar 

  14. T. C. Lowe. Automatic segmentation of cyclic program structures based on connectivity and processor timing. Communications of the ACM, 13(1):3–9, January 1970.

    Article  MATH  Google Scholar 

  15. Scott McFarling. Program optimization for instruction caches. In Third International Conference on Architectural Support for Programming Languages and Operating Systems, pages 183–191, April 1989.

    Google Scholar 

  16. D. Orr and R. Mecklenburg. OMOS — an object server for program execution. In Proc. Second International Workshop on Object Orientation in Operating Systems, Paris, France, September 1992. IEEE Computer Society.

    Google Scholar 

  17. K. Pettis and R. C. Hansen. Profile guided code positioning. SIGPLAN Notices, 25(6):16–27, June 1990.

    Article  Google Scholar 

  18. D. M. Ritchie and K. Thompson. The UNIX time-sharing system. The Bell System Technical Journal, 57(6):1905–1930, July/August 1978.

    Google Scholar 

  19. M. Rozier, V. Abrossimov, F. Armand, I. Boule, M. Gien, M. Guillemont, F. Herrmann, C. Kaiser, S. Langlois, P. Léonard, and W. Neuhauser. The Chorus distributed operating system. Computing Systems, l(4):287–338, December 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer Science+Business Media New York

About this chapter

Cite this chapter

Orr, D.B., Mecklenburg, R.W., Hoogenboom, P.J., Lepreau, J. (1994). Dynamic Program Monitoring and Transformation using the OMOS Object Server. In: Lilja, D.J., Bird, P.L. (eds) The Interaction of Compilation Technology and Computer Architecture. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-2684-1_6

Download citation

  • DOI: https://doi.org/10.1007/978-1-4615-2684-1_6

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4613-6154-1

  • Online ISBN: 978-1-4615-2684-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics