Open Access
Real-time Code Generation in Virtualizing Runtime Environments
Martin Däumler
- 18 Jul 2014
4
TL;DR: This thesis examines the possibility to overcome timing issues with intermediate code execution in virtualizing runtime environments and addresses real-time suitable generation of native code from intermediate code in particular.
read more
Abstract: Modern general purpose programming languages like Java or C# provide a rich feature set and a higher degree of abstraction than conventional real-time programming languages like C/C++ or Ada. Applications developed with these modern languages are typically deployed via platform independent intermediate code. The intermediate code is typically executed by a virtualizing runtime environment. This allows for a high portability. Prominent examples are the Dalvik Virtual Machine of the Android operating system, the Java Virtual Machine as well as Microsoft .NET’s Common Language Runtime. The virtualizing runtime environment executes the instructions of the intermediate code. This introduces additional challenges to real-time software development. One issue is the transformation of the intermediate code instructions to native code instructions. If this transformation interferes with the execution of the real-time application, this might introduce jitter to its execution times. This can degrade the quality of soft real-time systems like augmented reality applications on mobile devices, but can lead to severe problems in hard real-time applications that have strict timing requirements. This thesis examines the possibility to overcome timing issues with intermediate code execution in virtualizing runtime environments. It addresses real-time suitable generation of native code from intermediate code in particular. In order to preserve the advantages of modern programming languages over conventional ones, the solution has to adhere to the following main requirements: • Intermediate code transformation does not interfere with application execution • Portability is not reduced and code transformation is still transparent to a programmer • Comparable performance Existing approaches are evaluated. A concept for real-time suitable code generation is developed. The concept bases on a pre-allocation of the native code and the elimination of indirect references, while considering and optimizing startup time of an application. This concept is implemented by the extension of an existing virtualizing runtime environment, which does not target real-time systems per se. It is evaluated qualitatively and quantitatively. A comparison of the new concept to existing approaches reveals high execution time determinism and good performance and while preserving the portability deployment of applications via intermediate code.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
The C programming language
Brian W. Kernighan,Dennis M. Ritchie +1 more
- 01 Jan 1978
TL;DR: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.), and is a "must-have" reference for every serious programmer's digital library.
2.2K
•Dissertation
Fostering system research with managed runtimes
Nicolas Geoffray
- 01 Jan 2009
TL;DR: VMKit as mentioned in this paper is a VM minimale which exploits the partage and facilite le developpement of VMs de haut-niveau, ainsi que l'experimentation of nouveaux mecanismes de recherche.
7
•Book
Expert .NET 1.1 Programming
Simon Robinson
- 29 Sep 2004
TL;DR: You get the small performance hit of an extra level of indirection to locate the method to be invoked but the security of knowing you're calling the appropriate method for the given object, because the method table of the object on the stack is called.
2
Low-power architecture for CIL-code hardware processor
A. Chapyzhenka,D V Ragozin,A L Umnov +2 more
- 01 Jan 2005
TL;DR: The architecture of a hardware CIL processor, which is capable to execute CIL instructions as native code, and which allows to execute both CIL and DSP instruction sets as native instructions sets and gain performance in multimedia tasks is presented.
1
References
•Book
The C++ Programming Language
Bjarne Stroustrup
- 01 Jan 1985
TL;DR: Bjarne Stroustrup makes C even more accessible to those new to the language, while adding advanced information and techniques that even expert C programmers will find invaluable.
8.1K
LLVM: a compilation framework for lifelong program analysis & transformation
Chris Lattner,Vikram Adve +1 more
- 20 Mar 2004
TL;DR: The design of the LLVM representation and compiler framework is evaluated in three ways: the size and effectiveness of the representation, including the type information it provides; compiler performance for several interprocedural problems; and illustrative examples of the benefits LLVM provides for several challenging compiler problems.
•Book
Real-Time Systems: Design Principles for Distributed Embedded Applications
Hermann Kopetz
- 22 Apr 2011
TL;DR: Real-Time Systems offers a splendid example for the balanced, integrated treatment of systems and software engineering, helping readers tackle the hardest problems of advanced real-time system design, such as determinism, compositionality, timing and fault management.
2.3K
The C programming language
Brian W. Kernighan,Dennis M. Ritchie +1 more
- 01 Jan 1978
TL;DR: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.), and is a "must-have" reference for every serious programmer's digital library.
2.2K
On understanding types, data abstraction, and polymorphism
Luca Cardelli,Peter Wegner +1 more
TL;DR: A λ-calculus-based model for type systems that allows us to explore the interaction among the concepts of type, data abstraction, and polymorphism in a simple setting, unencumbered by complexities of production programming languages is developed.