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.
- Linux graphical disk usage analyser. https://wiki.gnome.org/Apps/Baobab.Google Scholar
- elua. http://www.eluaproject.net/.Google Scholar
- Java language and virtual machine specifications. http://docs.oracle.com/javase/specs/.Google Scholar
- owl. http://www.embeddedpython.org/.Google Scholar
- p14p. http://code.google.com/p/python-on-a-chip/.Google Scholar
- pycparser. http://pypi.python.org/pypi/pycparser/.Google Scholar
- Micro python. http://micropython.org/.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- C. J. Cheney. A non-recursive list compacting algorithm. In Communications of the ACM, volume 13, 1970.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- J. Cohen and A. Nicolau. Comparison of compacting algorithms for garbage collection. In ACM Transactions on Programming Languages and Systems, volume 5, 1983.Google Scholar
- A. Cunei and J. Vitek. A new approach to real-time checkpointing. In ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, 2006.Google Scholar
Digital Library
- 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 Scholar
Digital Library
- S.Funfrocken. Transparent migration of java-based mobile agents. In Personal Technologies, volume 2, 1998.Google Scholar
Cross Ref
- J. G. Hansen and E. Jul. Self-migration of operating systems. In Workshop on ACM SIGOPS European Workshop, 2004.Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- K. Jin and E. L. Miller. The effectiveness of deduplication on virtual machine disk images. In Israeli Experimental Systems Conference, 2009.Google Scholar
Digital Library
- A. Kadav and M. M. Swift. Live migration of direct-access devices. In The First Workshop of I/O Virtualization, 2008.Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- P. Kulkarni, F. Douglis, J. LaVoie, and J. M. Tracey. Redundancy elimination within large collections of files. In USENIX Annual Technical Conference, 2004.Google Scholar
Digital Library
- 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 Scholar
- P. McGachey and A. L. Hosking. Reducing generational copy reserve overhead with fallback compaction. In International Symposium on Memory Management, 2006.Google Scholar
Digital Library
- 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 Scholar
- M. Naik and J. Palsberg. Compiling with code-size constraints. In ACM SIGPLAN Conference on Languages, Compilers, and Tools for Embedded Systems, 2002.Google Scholar
Digital Library
- S. Pheng and C. Verbrugge. Dynamic data structure analysis for java programs. In IEEE International Conference on Program Comprehension, 2006.Google Scholar
Digital Library
- B. Ramkumar and V. Strumpen. Portable checkpointing for heterogeneous architectures. In International Symposium on Fault-Tolerant Computing, 1997.Google Scholar
Cross Ref
- S. P. Reiss. Visualizing the heap to detect memory problems. In Visualizing Software for Understanding and Analysis, 2009.Google Scholar
Cross Ref
- 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 Scholar
Cross Ref
- 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 Scholar
- 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 Scholar
Digital Library
- R. Smith and S. Rixner. Surviving peripheral failures in embedded systems. In USENIX Annual Technical Conference, 2015.Google Scholar
- 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 Scholar
- STM32F20xx / STM32F207xx. STMicroelectronics, 2013.Google Scholar
- STM32F373xx. STMicroelectronics, 2014.Google Scholar
- T. Suezawa. Persistent execution state of a java virtual machine. In ACM Conference on Java Grande, 2000.Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- T. Zimmerman and A. Zeller. Visualizing memory graphs. In Lecture Notes in Computer Science -- Software Visualization, 2002.Google Scholar
Index Terms
Leveraging Managed Runtime Systems to Build, Analyze, and Optimize Memory Graphs
Recommendations
Leveraging Managed Runtime Systems to Build, Analyze, and Optimize Memory Graphs
VEE '16: Proceedings of the12th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution EnvironmentsOptimizing 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 ...
Characterizing the Overhead of Software-Managed Hybrid Main Memory
MASCOTS '15: Proceedings of the 2015 IEEE 23rd International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication SystemsThe size of main memory in modern computers is approaching energy and scalability limits. Combining DRAM and non-volatile memory (NVM) has been proposed to increase capacity and reliability, and to decrease energy consumption. Software-managed hybrid ...
Energy efficient Phase Change Memory based main memory for future high performance systems
IGCC '11: Proceedings of the 2011 International Green Computing Conference and WorkshopsPhase Change Memory (PCM) has recently attracted a lot of attention as a scalable alternative to DRAM for main memory systems. As the need for high-density memory increases, DRAM has proven to be less attractive from the point of view of scaling and ...







Comments