Memory Efficient Hard Real-Time Garbage Collection
نویسنده
چکیده
As the development of hardware progresses, computers are expected to solve increasingly complex problems. However, solving more complex problems requires more complex software. To be able to develop these software systems, new programming languages with new features and higher abstraction levels are introduced. These features are designed to ease development, but sometimes they also make the runtime behavior unpredictable. Such features can not be used in real-time systems. A feature that traditionally has been unpredictable is garbage collection. Moreover, even though a garbage collector frees unused memory, almost all such methods require large amounts of additional memory. Garbage collection relieves developers of the responsibility to reclaimmemory that is no longer used by the application. This is very tedious and error prone if done manually. Since garbage collection increases productivity and decreases programming errors, developers find it attractive, also in the real-time domain. This thesis presents a predictable garbage collection method, real-time reference counting, that increases memory efficiency by about 50 % compared to the most memory efficient previously presented predictable garbage collector. To increase performance, an optimization technique called object ownership that eliminates redundant reference count updates is presented. Object ownership is designed for reference counters, but can also be used to increase the performance of other incremental garbage collectors. Finally, a static garbage collector is presented. The static garbage collector can allocate objects statically or on the runtime stack, and insert explicit instructions to reclaim memory allocated on the heap. It makes it possible to eliminate the need for runtime garbage collection for a large class of Java applications. The static garbage collection method can also be used to remove costly synchronization instructions. Competing static garbage collection methods with reasonable analysis time are restricted to stack allocation, and thus handle a smaller class of applications. To the one who invented icecream — I don’t know half of you half as well as I should like; and I like less than half of you half as well as you deserve.
منابع مشابه
Joint scheduling of garbage collector and hard real-time tasks for embedded applications
Programs with complex data structures often require dynamic memory management based on automatic memory reclamation (garbage collection). A major problem in adopting garbage collection for embedded real-time systems is that it often causes unpredictable pauses and that, as a result of such delays, hard real-time tasks may miss their deadlines. In this paper, we propose a new real-time garbage c...
متن کاملHard Real-Time Garbage-Collection in the Jamaica Virtual Machine
Java S automatic memory management is the main reason that prevents Java from being used in hard realtime environments. We present the garbage collection mechanism that is used by the Jamaica Virtual Machine, an implementation of the Java Virtual Machine Specification. This mechanism differs significantly from existing implementations in the way threads are implemented, root references are foun...
متن کاملDecreasing Memory Overhead in Hard Real-Time Garbage Collection
Automatic memory management techniques eliminate many programming errors that are both hard to find and to correct. However, these techniques are not yet used in embedded systems with hard realtime applications. The reason is that current methods for automatic memory management have a number of drawbacks. The two major ones are: (1) not being able to always guarantee short real-time deadlines a...
متن کاملHard Real-time Hybrid Garbage Collection with Low Memory Requirement
Current real-time garbage collection algorithms are usually criticised for their high memory requirements. Even when consuming nearly 50% of cpu time, some garbage collectors ask for at least twice the memory as really needed. This report explores the fundamental reason of this problem and proposes new metrics for real-time garbage collection algorithm designs. Use of these metrics motivate an ...
متن کاملA Real-Time Garbage Collection Mechanism for Flash-Memory Storage Systems in Embedded Systems
Flash memory technology is becoming critical in building embedded systems applications because of its shock-resistant, power economic, and non-volatile nature. Because flash memory is a write-once and bulkerase medium, a translation layer and a garbage collection mechanism is needed to provide applications a transparent storage service. In this paper, we propose a real-time garbage collection m...
متن کامل