DocumentCode :
170683
Title :
Team up: Cooperative memory management in embedded systems
Author :
Stilkerich, Isabella ; Taffner, Philip ; Erhardt, Christoph ; Dietrich, Christian ; Wawersich, Christian ; Stilkerich, Michael
Author_Institution :
Friedrich-Alexander Univ., Erlangen-Nuremberg, Germany
fYear :
2014
fDate :
12-17 Oct. 2014
Firstpage :
1
Lastpage :
10
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.
Keywords :
Java; program compilers; program diagnostics; storage management; JVM compiler; Java; KESO JVM; LAGC; cooperative memory management; dynamic memory-management; embedded system; latency-aware garbage-collection algorithm; soft-error proneness; stack allocation; static analysis; type-safe language; Embedded systems; Hardware; Java; Memory management; Random access memory; Resource management; Runtime; Design; Garbage Collection; General Terms Memory Management; Languages;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Compilers, Architecture and Synthesis for Embedded Systems (CASES), 2014 International Conference on
Conference_Location :
Jaypee Greens
Type :
conf
DOI :
10.1145/2656106.2656129
Filename :
6972463
Link To Document :
بازگشت