Team Up: Cooperative Memory Management in Embedded Systems

Stilkerich I, Taffner P, Erhardt C, Dietrich C, Wawersich C, Stilkerich M (2014)


Publication Type: Conference contribution

Publication year: 2014

Publisher: Association for Computing Machinery, Inc

Edited Volumes: 2014 International Conference on Compilers, Architecture and Synthesis for Embedded Systems, CASES 2014

Pages Range: Article No. 10

Conference Proceedings Title: Proceedings of the 2014 Conference on Compilers, Architectures and Synthesis for Embedded Systems - CASES'14

Event location: New Dehli, India IN

URI: https://www4.cs.fau.de/Publications/2014/stilkerich_14_cases.pdf

DOI: 10.1145/2656106.2656129

Abstract

The use of a managed, type-safe languages such as Java in realtime and embedded systems can offer productivity and, in particular, safety and dependability benefits over the dominating unsafe languages at reasonable costs. A JVM that has dynamic memory-management needs to provide an implicit memory-management strategy, that is, for example, a garbage collector (GC) or stack allocation provided by the escape analysis of the JVM's compiler: Explicit management of dynamically allocated memory (i.e., by use of functions such as C's malloc() and free()) is vulnerable to programming errors such as neglected or false memory release operations causing memory leaks or dangling pointers. Such operations have the potential to break the soundness of the type system and are therefore usually not available for strongly typed languages. Type-safe languages in combination with static analyses - which respect hardware as well as system-specific information - can efficiently be employed to provide a runtime system including memory management (MM) that is specifically suited to an embedded application on a particular hardware device. In the context of this paper, we present novel memory-management strategy we implemented in our KESO JVM. It is a latency-aware garbage-collection algorithm called LAGC. Also, we introduce the static analyses that can assist LAGC. The application developers have to ensure that there is enough time for the GCs to run. Hardware characteristics such as soft-error proneness of the hardware or the memory layout can also be taken into consideration as demanded by the system configuration. This is achieved by integrating the GCs in the design process of the whole system just as any other user application, which is the reason why this approach is called cooperative memory management. The suggested strategies require reasonably low overhead. Copyright 2014 ACM.

Authors with CRIS profile

How to cite

APA:

Stilkerich, I., Taffner, P., Erhardt, C., Dietrich, C., Wawersich, C., & Stilkerich, M. (2014). Team Up: Cooperative Memory Management in Embedded Systems. In Proceedings of the 2014 Conference on Compilers, Architectures and Synthesis for Embedded Systems - CASES'14 (pp. Article No. 10). New Dehli, India, IN: Association for Computing Machinery, Inc.

MLA:

Stilkerich, Isabella, et al. "Team Up: Cooperative Memory Management in Embedded Systems." Proceedings of the 2014 Conference on Compilers, Architectures and Synthesis for Embedded Systems - CASES'14, New Dehli, India Association for Computing Machinery, Inc, 2014. Article No. 10.

BibTeX: Download