skip to main content
research-article

Leveraging Managed Runtime Systems to Build, Analyze, and Optimize Memory Graphs

Published:25 March 2016Publication History
Skip Abstract Section

Abstract

Optimizing memory management is a major challenge of embedded systems programming, as memory is scarce. Further, embedded systems often have heterogeneous memory architectures, complicating the task of memory allocation during both compilation and migration. However, new opportunities for addressing these challenges have been created by the recent emergence of managed runtimes for embedded systems. By imposing structure on memory, these systems have opened the doors for new techniques for analyzing and optimizing memory usage within embedded systems. This paper presents GEM (Graphs of Embedded Memory), a tool which capitalizes on the structure that managed runtime systems provide in order to build memory graphs which facilitate memory analysis and optimization. At GEM's core are a set of fundamental graph transformations which can be layered to support a wide range of use cases, including interactive memory visualization, de-duplication of objects and code, compilation for heterogeneous memory architectures, and transparent migration. Moreover, since the same underlying infrastructure supports all of these orthogonal functionalities, they can easily be applied together to complement each other.

References

  1. Linux graphical disk usage analyser. https://wiki.gnome.org/Apps/Baobab.Google ScholarGoogle Scholar
  2. elua. http://www.eluaproject.net/.Google ScholarGoogle Scholar
  3. Java language and virtual machine specifications. http://docs.oracle.com/javase/specs/.Google ScholarGoogle Scholar
  4. owl. http://www.embeddedpython.org/.Google ScholarGoogle Scholar
  5. p14p. http://code.google.com/p/python-on-a-chip/.Google ScholarGoogle Scholar
  6. pycparser. http://pypi.python.org/pypi/pycparser/.Google ScholarGoogle Scholar
  7. Micro python. http://micropython.org/.Google ScholarGoogle Scholar
  8. E. E. Aftandilian, S. Kelley, C. Gramazio, N. Ricci, S. L. Su, and S. Z. Guyer. Heapviz: Interactive heap visualization for program understanding and debugging. In ACM Symposium on Software Visualization, 2010.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. T. W. Barr, R. Smith, and S. Rixner. Design and implementation of an embedded python run-time system. In USENIX Annual Technical Conference, 2012.Google ScholarGoogle Scholar
  10. S. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanovic, T. VanDrunen, D. von Dincklage, and B. Weidermann. The dacapo benchmarks: Java benchmarking development and analysis. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, 2006.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. C. J. Cheney. A non-recursive list compacting algorithm. In Communications of the ACM, volume 13, 1970.Google ScholarGoogle Scholar
  12. J.-H. Chiang, H.-L. Li, and T. cker Chiueh. Introspection-based memory de-duplication and migration. In ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. C. Clark, K. Fraser, S. Hand, J. G. Hansen, E. Jul, C. Limpach, I. Pratt, and A. Warfield. Live migration of virtual machines. In Symposium on Networked Systems Design and Implementation, 2005.Google ScholarGoogle Scholar
  14. J. Cohen and A. Nicolau. Comparison of compacting algorithms for garbage collection. In ACM Transactions on Programming Languages and Systems, volume 5, 1983.Google ScholarGoogle Scholar
  15. A. Cunei and J. Vitek. A new approach to real-time checkpointing. In ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, 2006.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Erkan, T. VanSlyke, and T. M. Scaffadi. Data structure visualization with latex and prefuse. In SIGCSE Conference on Innovation and Technology in Computer Science Education, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S.Funfrocken. Transparent migration of java-based mobile agents. In Personal Technologies, volume 2, 1998.Google ScholarGoogle ScholarCross RefCross Ref
  18. J. G. Hansen and E. Jul. Self-migration of operating systems. In Workshop on ACM SIGOPS European Workshop, 2004.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Horie, K. Ogata, K. Kawachiya, and T. Onodera. String deduplication for java-based middleware in virtualized environments. In ACM SIGPLAN/SIGOPS International Conference on Virutal Execution Environments, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. T. Illman, T. K. F. Kargl, and M. Weber. Transparent migration of mobile agents using the java platform debugger architecture. In Mobile Agents, 2001.Google ScholarGoogle ScholarCross RefCross Ref
  21. K. Jin and E. L. Miller. The effectiveness of deduplication on virtual machine disk images. In Israeli Experimental Systems Conference, 2009.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. Kadav and M. M. Swift. Live migration of direct-access devices. In The First Workshop of I/O Virtualization, 2008.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. K. Kawachiya, K. Ogata, and T. Onodera. Analysis and reduction of memory inefficiencies in java strings. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, 2008.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. H. S. Koppula, K. P. Leela, and A. Agarwal. Learning url patterns for webage de-duplication. In ACM International Conference on Web Search and Data Mining, 2010.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. P. Kulkarni, F. Douglis, J. LaVoie, and J. M. Tracey. Redundancy elimination within large collections of files. In USENIX Annual Technical Conference, 2004.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Marron, C. Sanchez, Z. Su, and M. Fahndrich. Abstracting runtime heaps for program understanding. In IEEE Transactions on Software Engineering, volume 39, 2013.Google ScholarGoogle Scholar
  27. P. McGachey and A. L. Hosking. Reducing generational copy reserve overhead with fallback compaction. In International Symposium on Memory Management, 2006.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. M. F. Mergen, V. Uhlig, O. Krieger, and J. Xenidis. Virtualization for high-performance computing. In ACM SIGOPS Operating Systems Review, volume 40, 2006.Google ScholarGoogle Scholar
  29. M. Naik and J. Palsberg. Compiling with code-size constraints. In ACM SIGPLAN Conference on Languages, Compilers, and Tools for Embedded Systems, 2002.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. S. Pheng and C. Verbrugge. Dynamic data structure analysis for java programs. In IEEE International Conference on Program Comprehension, 2006.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. B. Ramkumar and V. Strumpen. Portable checkpointing for heterogeneous architectures. In International Symposium on Fault-Tolerant Computing, 1997.Google ScholarGoogle ScholarCross RefCross Ref
  32. S. P. Reiss. Visualizing the heap to detect memory problems. In Visualizing Software for Understanding and Analysis, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  33. C. P. Sapuntzakis, R. Chandra, B. Pfaff, and J. Chow. Optimizing the migration of virtual computers. In USENIX Symposium on Operating Systems Design and Implementation, 2002.Google ScholarGoogle ScholarCross RefCross Ref
  34. T. Sekiguchi, H. Masuhara, and A. Yonezawa. A simple extension of java language for controllable transparent migration and its portable implementation. In Coordination Languages and Models, 1999.Google ScholarGoogle Scholar
  35. P. Sharma and P. Kulkarni. Singleton: System-wide page deduplication in virtual environments. In International Symposium on High-Performance Parallel and Distributed Computing, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. R. Smith and S. Rixner. Surviving peripheral failures in embedded systems. In USENIX Annual Technical Conference, 2015.Google ScholarGoogle Scholar
  37. S. Stanchina and M. Meyer. Mark-sweep or copying? a "best of both worlds" algorithm and a hardware-supported real-time implementation. In International Symposium on Memory Management, 2007.Google ScholarGoogle Scholar
  38. STM32F20xx / STM32F207xx. STMicroelectronics, 2013.Google ScholarGoogle Scholar
  39. STM32F373xx. STMicroelectronics, 2014.Google ScholarGoogle Scholar
  40. T. Suezawa. Persistent execution state of a java virtual machine. In ACM Conference on Java Grande, 2000.Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. H. Tabkhi, S. G. Miremadi, and A. Ejlali. An asymmetric checkpointing and rollback error recovery scheme for embedded processors. In IEEE International Symposium on Defect and Fault Tolerance of VLSI Systems, 2008.Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. K. Takahashi, K. Sasada, and T. Hirofuchi. A fast virtual machine storage migration technique using data deduplication. In International Conference on Cloud Computing, GRIDs, and Virtualization, 2012.Google ScholarGoogle Scholar
  43. T. Zimmerman and A. Zeller. Visualizing memory graphs. In Lecture Notes in Computer Science -- Software Visualization, 2002.Google ScholarGoogle Scholar

Index Terms

  1. Leveraging Managed Runtime Systems to Build, Analyze, and Optimize Memory Graphs

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Article Metrics

              • Downloads (Last 12 months)7
              • Downloads (Last 6 weeks)2

              Other Metrics

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!