skip to main content
research-article

Reflexes: Abstractions for integrating highly responsive tasks into Java applications

Published: 27 August 2010 Publication History

Abstract

Achieving submillisecond response times in a managed language environment such as Java or C# requires overcoming significant challenges. In this article, we propose Reflexes, a programming model and runtime system infrastructure that lets developers seamlessly mix highly responsive tasks and timing-oblivious Java applications. Thus enabling gradual addition of real-time features, to a non-real-time application without having to resort to recoding the real-time parts in a different language such as C or Ada. Experiments with the Reflex prototype implementation show that it is possible to run a real-time task with a period of 45 μs with an accuracy of 99.996% (only 0.001% worse than the corresponding C implementation) in the presence of garbage collection and heavy load ordinary Java threads.

References

[1]
Armbuster, A., Baker, J., Cunei, A., Holmes, D., Flack, C., Pizlo, F., Pla, E., Prochazka, M., and Vitek, J. 2007. A real-time java virtual machine with applications in avionics. ACM Trans. Embedd. Comput. Syst. 7, 1, 1--49.
[2]
Auerbach, J., Bacon, D. F., Iercan, D. T., Kirsch, C. M., Rajan, V. T., Roeck, H., and Trummer, R. 2007a. Java takes flight: Time-portable real-time programming with Exotasks. In Proceedings of the ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES). ACM, New York, 7, 51--62.
[3]
Auerbach, J. S., Bacon, D. F., Blainey, B., Cheng, P., Dawson, M., Fulton, M., Grove, D., Hart, D., and Stoodley, M. G. 2007b. Design and implementation of a comprehensive real-time Java virtual machine. In Proceedings of the 7th ACM and IEEE International Conference on Embedded Software (EMSOFT). ACM, New York, 249--258.
[4]
Auerbach, J. S., Bacon, D. F., Guerraoui, R., Spring, J. H., and Vitek, J. 2008. Flexible task graphs: a unified restricted thread programming model for Java. In Proceedings of the 2008 ACM SIGPLAN-SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES). ACM, New York, 1--11.
[5]
Bollella, G., Delsart, B., Guider, R., Lizzi, C., and Parain, F. 2005. Mackinac: Making HotSpot#8482; real-time. In Proceedings of the 8th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC). IEEE Computer Society Press, Los Alamitos, CA, 45--54.
[6]
Dawson, M., and Thwaite, P. 2008. Testing class libraries for RTSJ safety. In Proceedings of the 6th International Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES). 61--67.
[7]
Gosling, J., and Bollella, G. 2000. The Real-Time Specification for Java. Addison-Wesley Longman Publishing Co., Inc., Boston, MA.
[8]
Lee, E. 2003. Overview of the Ptolemy project. Tech. rep. UCB/ERL M03/25, EECS Department, University of California, Berkeley, Berkeley, CA.
[9]
Manson, J., Baker, J., Cunei, A., Jagannathan, S., Prochazka, M., Xin, B., and Vitek, J. 2005. Preemptible atomic regions for real-time Java. In Proceedings of the 26th IEEE Real-Time Systems Symposium (RTSS). IEEE Computer Society Press, Los Alamitos, CA.
[10]
Noble, J., Vitek, J., and Potter, J. 1998. Flexible alias protection. In Proceedings of the 12th European Conference on Object-Oriented Programming (ECOOP). Springer-Verlag, Berlin, Germany, 158--185.
[11]
Pizlo, F., Fox, J., Holmes, D., and Vitek, J. 2004. Real-time Java scoped memory: design patterns and semantics. In Proceedings of the IEEE International Symposium on Object-oriented Real-Time Distributed Computing (ISORC). IEEE Computer Society Press, Los Alamitos, CA.
[12]
Pizlo, F., and Vitek, J. 2006. An emprical evaluation of memory management alternatives for Real-Time Java. In Proceedings of the 27th IEEE International Real-Time Systems Symposium (RTSS). IEEE Computer Society Press, Los Alamitos, CA, 35--46.
[13]
Pizlo, F., and Vitek, J. 2008. Memory management for real-time java: State of the art. In Proceedings of the IEEE International Symposium on Object-oriented Real-Time Distributed Computing (ISORC). IEEE Computer Society Press, Los Alamitos, CA.
[14]
Sekar, R., Guang, Y., Verma, S., and Shanbhag, T. 1999. A high-performance network intrusion detection system. In Proceedings of the ACM Conference on Computer and Communications Security. ACM, New York, 8--17.
[15]
Spoonhower, D., Auerbach, J., Bacon, D. F., Cheng, P., and Grove, D. 2006. Eventrons: a safe programming construct for high-frequency hard real-time applications. SIGPLAN Not. 41, 6, 283--294.
[16]
Spring, J., Pizlo, F., Guerraoui, R., and Vitek, J. 2007a. Reflexes: Abstractions for highly responsive systems. In Proceedings of the 3rd International ACM SIGPLAN/SIGOPS Conference on Virtual Execution Environments (VEE). ACM, New York.
[17]
Spring, J., Privat, J., Guerraoui, R., and Vitek, J. 2007b. StreamFlex: High-throughput stream programming in Java. In Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming (OOPSLA). ACM, New York.
[18]
Spring, J. H. 2008. Reflexes: programming abstractions for highly responsive computing in Java. Ph.D. dissertation, Ecole Polytechnique Fédérale de Lausanne (EPFL).
[19]
Thies, W., Karczmarek, M., and Amarasinghe, S. 2002. Streamit: A language for streaming applications. In Proceedings of the 11th International Conference on Compiler Construction (CC). Lecture Notes in Computer Science, vol. 2304. Springer-Verlag, Berlin, Germany, 179--196.
[20]
Zhao, T., Baker, J., Hunt, J., Noble, J., and Vitek, J. 2008. Implicit ownership types for memory management. Sci. Comput. Prog. 71, 3, 213--241.

Cited By

View all

Index Terms

  1. Reflexes: Abstractions for integrating highly responsive tasks into Java applications

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Embedded Computing Systems
    ACM Transactions on Embedded Computing Systems  Volume 10, Issue 1
    August 2010
    369 pages
    ISSN:1539-9087
    EISSN:1558-3465
    DOI:10.1145/1814539
    Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Journal Family

    Publication History

    Published: 27 August 2010
    Accepted: 01 July 2009
    Received: 01 May 2009
    Published in TECS Volume 10, Issue 1

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Java virtual machine
    2. Real-time systems
    3. memory management

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Funding Sources

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)1
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 20 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2013)Ownership typesAliasing in Object-Oriented Programming10.5555/2554511.2554516(15-58)Online publication date: 1-Jan-2013
    • (2013)Ownership Types: A SurveyAliasing in Object-Oriented Programming. Types, Analysis and Verification10.1007/978-3-642-36946-9_3(15-58)Online publication date: 2013
    • (2012)About 15 years of real-time JavaProceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems10.1145/2388936.2388943(34-43)Online publication date: 24-Oct-2012
    • (2012)Fast, Interactive Worst-Case Execution Time Analysis With Back-AnnotationIEEE Transactions on Industrial Informatics10.1109/TII.2012.21874578:2(366-377)Online publication date: May-2012
    • (2012)Atomicity in Real-Time ComputingPatterns, Programming and Everything10.1007/978-1-4471-2350-7_10(147-165)Online publication date: 2012

    View Options

    Login options

    Full Access

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media