Automatic memory management for flexible real-time systems
(2006)- Abstract
- In a flexible real-time system, the constraints in available CPU time and memory lead to resource management problems, which must be handled carefully in order to maximize quality of service while avoiding overload. Managing CPU time -- scheduling -- is well studied and dynamic scheduling is widely accepted in the real-time industry. In order to make safe high-level languages, like Java, practically feasible for use in hard real-time systems, memory management and particularly the dependencies between memory and CPU usage must be studied.
The traditional approach to incremental GC scheduling, to perform garbage collection work in proportion to the amount of allocated memory, has drawbacks such as inconsistent utilization... (More) - In a flexible real-time system, the constraints in available CPU time and memory lead to resource management problems, which must be handled carefully in order to maximize quality of service while avoiding overload. Managing CPU time -- scheduling -- is well studied and dynamic scheduling is widely accepted in the real-time industry. In order to make safe high-level languages, like Java, practically feasible for use in hard real-time systems, memory management and particularly the dependencies between memory and CPU usage must be studied.
The traditional approach to incremental GC scheduling, to perform garbage collection work in proportion to the amount of allocated memory, has drawbacks such as inconsistent utilization due to bursty allocations. To remedy this, time-triggered GC scheduling is proposed. It is shown that this strategy gives real-time performance that is equal to, or better than, that of an allocation-triggered GC. It is also shown that by using a deadline-based scheduler, the GC scheduling and, consequently, the real-time performance, is independent of complex and error-prone work metrics.
Time-triggered GC also allows a more high-level view on GC scheduling, as the entire GC cycle is considered rather than each individual increment. This makes it possible to schedule GC as a normal task. As the scheduling parameters are explicit in the model, it also makes the time-triggered strategy well suited for auto-tuning and fits well into feedback scheduling systems.
A novel approach of applying priorities to memory allocation is introduced and it is shown how this can be used to enhance the robustness of real-time applications. The proposed mechanisms can also be used to increase performance of systems with automatic memory management by limiting the amount of garbage collection work.
Together, these solutions facilitate flexible and robust automatic memory management for real-time systems. Adaptive techniques are presented, aimed at replacing or complementing a priori analysis with on-line auto-tuning. The presented ideas have been successfully implemented and validated in an experimental real-time Java environment, supporting the claim that this work is a step towards write once -- run anywhere with hard real-time performance. (Less) - Abstract (Swedish)
- Popular Abstract in Swedish
I flexibla realtidssystem leder begränsningarna i processorkraft och minne till resurshanteringsproblem som måste hanteras väl för att både maximera systemets prestanda och undvika överlast. Problemet att tilldela processortid -- schemaläggning -- är väl undersökt och dynamisk schemaläggning är allmänt accepterad i industrin. För att göra säkra högnivåspråk, som Java, praktiskt användbara i realtidssystem måste minneshantering studeras, och då speciellt beroendena mellan minnesanvändning och processorutnyttjande.
Det traditionella angreppssättet vid schemaläggning av inkrementell GC (eng: Garbage Collection, "skräpsamling") är att göra GC-arbete i proportion till den mängd... (More) - Popular Abstract in Swedish
I flexibla realtidssystem leder begränsningarna i processorkraft och minne till resurshanteringsproblem som måste hanteras väl för att både maximera systemets prestanda och undvika överlast. Problemet att tilldela processortid -- schemaläggning -- är väl undersökt och dynamisk schemaläggning är allmänt accepterad i industrin. För att göra säkra högnivåspråk, som Java, praktiskt användbara i realtidssystem måste minneshantering studeras, och då speciellt beroendena mellan minnesanvändning och processorutnyttjande.
Det traditionella angreppssättet vid schemaläggning av inkrementell GC (eng: Garbage Collection, "skräpsamling") är att göra GC-arbete i proportion till den mängd minne som allokerats. Detta har nackdelar, till exempel ojämnt processorutnyttjande. För att lösa dessa problem föreslås en ny metod, tids-triggad GC-schemaläggning. Det visas att denna ger realtidsprestanda som är lika bra eller bättre än med allokerings-triggad GC. Det visas även att om deadline-baserad schemaläggning används blir schemaläggningen av GC-arbete, och därmed realtidsprestanda, oberoende av komplexa och felbenägna metriker för GC-arbete.
Tids-triggad GC tillåter även att GC-schemaläggning betraktas på en högre nivå, eftersom hela cykler snarare än enskilda inkrement schemaläggs. Då schemaläggningsparametrarna är explicit uttryckta i modellen är den även lämplig för automatisk inställning av parametrar och passar väl in i ett system med återkopplad schemaläggning (eng: feedback scheduling).
En ny ansats, med prioriteter för minnesallokeringar, presenteras och det visas hur denna kan förbättra robustheten i realtidstillämpningar. Den föreslagna mekanismen kan även användas för att förbättra prestanda i system med automatisk minneshantering genom att begränsa mängden GC-arbete.
Sammantaget möjliggör dessa tekniker flexibel och robust automatisk minneshantering för realtidssystem. Adaptiva tekniker presenteras, med målet att ersätta eller komplettera statisk analys med automatisk inställning under körning. De presenterade ideerna har framgångsrikt implementerats i en experimentell miljö för realtids-Java, och stöder tesen att detta arbete är ett steg mot "write once -- run anywhere" med hård realtidsprestanda. (Less)
Please use this url to cite or link to this publication:
https://lup.lub.lu.se/record/25881
- author
- Robertz, Sven LU
- supervisor
- opponent
-
- Professor Jul, Eric, Department of Computer Science, University of Copenhagen
- organization
- publishing date
- 2006
- type
- Thesis
- publication status
- published
- subject
- keywords
- Computer science, feedback scheduling, embedded systems, real-time, memory management, garbage collection, numerical analysis, systems, control, Datalogi, numerisk analys, system, kontroll
- pages
- 202 pages
- publisher
- Department of Computer Science, Lund University
- defense location
- Room E:1406, E-building, Ole Römers väg 3, Faculty of Engineering, Lund University
- defense date
- 2006-05-24 10:15:00
- ISBN
- 91-628-6829-2
- language
- English
- LU publication?
- yes
- id
- d8bcd23c-83f0-48ad-9fe7-bda6db95a71f (old id 25881)
- date added to LUP
- 2016-04-01 15:37:48
- date last changed
- 2021-05-06 19:39:33
@phdthesis{d8bcd23c-83f0-48ad-9fe7-bda6db95a71f, abstract = {{In a flexible real-time system, the constraints in available CPU time and memory lead to resource management problems, which must be handled carefully in order to maximize quality of service while avoiding overload. Managing CPU time -- scheduling -- is well studied and dynamic scheduling is widely accepted in the real-time industry. In order to make safe high-level languages, like Java, practically feasible for use in hard real-time systems, memory management and particularly the dependencies between memory and CPU usage must be studied.<br/><br> <br/><br> The traditional approach to incremental GC scheduling, to perform garbage collection work in proportion to the amount of allocated memory, has drawbacks such as inconsistent utilization due to bursty allocations. To remedy this, time-triggered GC scheduling is proposed. It is shown that this strategy gives real-time performance that is equal to, or better than, that of an allocation-triggered GC. It is also shown that by using a deadline-based scheduler, the GC scheduling and, consequently, the real-time performance, is independent of complex and error-prone work metrics.<br/><br> <br/><br> Time-triggered GC also allows a more high-level view on GC scheduling, as the entire GC cycle is considered rather than each individual increment. This makes it possible to schedule GC as a normal task. As the scheduling parameters are explicit in the model, it also makes the time-triggered strategy well suited for auto-tuning and fits well into feedback scheduling systems.<br/><br> <br/><br> A novel approach of applying priorities to memory allocation is introduced and it is shown how this can be used to enhance the robustness of real-time applications. The proposed mechanisms can also be used to increase performance of systems with automatic memory management by limiting the amount of garbage collection work.<br/><br> <br/><br> Together, these solutions facilitate flexible and robust automatic memory management for real-time systems. Adaptive techniques are presented, aimed at replacing or complementing a priori analysis with on-line auto-tuning. The presented ideas have been successfully implemented and validated in an experimental real-time Java environment, supporting the claim that this work is a step towards write once -- run anywhere with hard real-time performance.}}, author = {{Robertz, Sven}}, isbn = {{91-628-6829-2}}, keywords = {{Computer science; feedback scheduling; embedded systems; real-time; memory management; garbage collection; numerical analysis; systems; control; Datalogi; numerisk analys; system; kontroll}}, language = {{eng}}, publisher = {{Department of Computer Science, Lund University}}, school = {{Lund University}}, title = {{Automatic memory management for flexible real-time systems}}, year = {{2006}}, }