Java-Based Real-Time Programming

by Klas Nilsson

DescriptionTable of ContentsDetailsHashtagsReport an issue

Book Description

Development of embedded software has for some years mainly been carried out by hardware-aware programming using the C-language, and in some cases even in assembly languages. This works well in simple cases when the application demands and the hardware are known at design time, and the size of the (statically defined) software is small. When applications increase in size and must be rapidly developed (time to market), and perhaps need to be on-line upgradeable, more programming support is needed. In particular, for critical applications (safety critical as in an airplane, mission critical as in space/military/nuclear tasks, economically critical if the survival of the company depends on the reliability of the computer system, etc.) special measures must be taken to limit the possible (faulty) influences of one software function on another part of the system. Therefore, we have to abandon programming in C or C++ for large/complex systems. Instead, we have to base the core development on a more scalable language (and run-time system) that prevents direct access to memory, for instance via pointers.

Java (and partly C#) is such a language. Still, programming in C is appropriate for device drivers, which do need to directly access the hardware. For similar reasons of scalability, Microsoft had to go from their Win32+MFC C/C++-oriented standard to the Microsoft.NET Framework with C# in order to stay competitive in the long run. Here, we will go some steps further, considering also small embedded systems and severe timing demands.

We will approach the real-time issues via established web-programming and concurrency techniques, which will reveal a few deficiencies of the standard Java platform. A real-time package (class library) and a few run-time extensions will be presented. The usage of these additions to create high performance real-time control software is then described in a real-time programming chapter which is central the topic of this book. The reader should then gain additional understanding and programming skill by studying the remaining chapters about scheduling, processes, and applications.

This open book is licensed under a GNU Free Documentation License (GNU FDL). You can download Java-Based Real-Time Programming ebook for free in PDF format (1.9 MB).

Table of Contents

Section 1
Software execution is performed sequentially
 
Section 2
Our physical world is parallel
 
Section 3
Parallel computing
 
Section 4
Concurrency
 
Section 5
Interrupts, pre-emption, and reentrance
 
Section 6
Models of concurrent execution
 
Section 7
Multi-process programming
 
Section 8
Object interaction and encapsulation
 
Section 9
Software issues
 
Section 10
Threads
 
Section 11
Resources and mutual exclusion - Semaphores
 
Section 12
Objects providing mutual exclusion - Monitors
 
Section 13
Message-based communication - Mailboxes
 

Book Details

Subject
Computer Science
Publisher
Self-publishing
Published
2016
Pages
128
Edition
1
Language
English
PDF Size
1.9 MB
License
GNU FDL

Related Books

The NGINX Real-Time API Handbook
Discover how to deliver reliable, high-performance APIs with our NGINX Real-Time API Handbook. Compiled by leading experts on real-time API management, this handbook is a comprehensive guide to reducing latency in your applications and APIs without making any compromises. Learn why now, more than ever, your APIs need to perform in real time to meet...
Ray Tracing Gems
This book is a must-have for anyone serious about rendering in real time. With the announcement of new ray tracing APIs and hardware to support them, developers can easily create real-time applications with ray tracing as a core component. As ray tracing on the GPU becomes faster, it will play a more central role in real-time rendering. Ray Tracing...
Real-Time ASP.NET Core 3 Apps with SignalR Succinctly
The ASP.NET Core SignalR library is open source and allows developers to simplify adding real-time web functionality to applications. This means that the server-side code can instantly push content to connected clients. In Real-Time ASP.NET Core 3 Apps with SignalR Succinctly, Dirk Strauss will show you how to use it to create a chat application wi...
Real-time Linked Dataspaces
This book explores the dataspace paradigm as a best-effort approach to data management within data ecosystems. It establishes the theoretical foundations and principles of real-time linked dataspaces as a data platform for intelligent systems. The book introduces a set of specialized best-effort techniques and models to enable loose administrative ...
Computational Cognitive Modeling and Linguistic Theory
This open book introduces a general framework that allows natural language researchers to enhance existing competence theories with fully specified performance and processing components. Gradually developing increasingly complex and cognitively realistic competence-performance models, it provides running code for these models and shows how to fit t...
Agricultural Implications of the Fukushima Nuclear Accident
This book reports the results from on-site research into radioactive cesium contamination in various agricultural systems affected by the Fukushima Daiichi Nuclear Power Plant accident that occurred in March 2011. This is the second volume from the research groups formed in the Graduate School of Agricultural and Life Sciences of The University of ...