Cover image for Concurrent and real-time programming in java
Title:
Concurrent and real-time programming in java
Personal Author:
Publication Information:
Chichester, West Sussex : John Wiley & Sons, 2004
ISBN:
9780470844373

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000004989772 QA76.73.J38 W445 2004 Open Access Book Book
Searching...

On Order

Summary

Summary

Real-time functionality is essential for developing many consumer, industrial, and systems devices. While the C/C++ programming language is most often used in the creation of real-time software, the Java language, with its simple and familiar object-oriented programming model, offers many advantages over current real-time practices. Concurrent and Real-Time Programming in Java covers the motivations for, and semantics of, the extensions and modifications to the Java programming environment that enable the Java platform (Virtual Machine) to meet the requirements and constraints of real-time development. Key aspects of concurrent and real-time programming and how they are implemented in Java are discussed, such as concurrency, memory management, real-time scheduling, and real-time resource sharing.


Author Notes

Andy Wellings is Professor of Real-Time Systems at the University of York, UK. He has published over 150 technical papers and reports, has written 5 textbooks and edits the Wiley Journal Software Practice and Experience . He is a member of the Technical Interpretation Committee for the Real-Time Specification of Java. He teaches courses in Operating Systems, Real-Time Systems and Networks and Distributed Systems.


Table of Contents

Preface
1 Introduction.
1.1 Concurrency
1.2 Real-time Systems
1.3 Summary
2 Concurrent Programming in Java.
2.1 Concurrency Models
2.2 Overview of Java Concurrency Model
2.3 Threads in Detail
2.4 Thread Termination
2.5 Thread-local Data
2.6 Summary
3 Communication and Synchronization.
3.1 Synchronized Methods and Statements
3.2 Waiting and Notifying
3.3 Implementing Condition Variables
3.4 Synchronization and the Java Memory Model
3.5 Asynchronous Thread Control
3.6 Summary
4 Completing the Java Concurrency Model.
4.1 Thread Priorities and Thread Scheduling
4.2 Delaying Threads
4.3 Thread Groups
4.4 Concurrency-related Utilities
4.5 The Process and Runtime Classes
4.6 Thread-related Exceptions
4.7 Strengths and Limitations of the Java Concurrency Model
4.8 Bloch's Thread Safety Levels
4.9 Summary
5 Implementing Communication Paradigms in Java.
5.1 Semaphores
5.2 Signals
5.3 Events
5.4 Buffers
5.5 Blackboard
5.6 Broadcast
5.7 Barriers
5.8 Summary
6 Case Study: Concurrent Maze Search.
6.1 Concurrent Maze Searching
6.2 Stopping the Search when a Solution is Found
6.3 Limiting the Concurrency by Reusing Threads
6.4 Summary
7 The Real-time Specification for Java.
7.1 Background and NIST Requirements
7.2 Overview of Enhancements
7.3 Memory Management
7.4 Time Values and Clocks
7.5 Schedulable Objects and Scheduling
7.6 Real-time Threads
7.7 Asynchronous Event Handling and Timers
7.8 Asynchronous Transfer of Control
7.9 Synchronization and Resource Sharing
7.10 Physical and Raw Memory Access
7.11 System-wide Properties
7.12 Synchronization and the RTSJ
7.13 Summary
8 Memory Management.
8.1 The Basic Model
8.2 An Example of Scoped Memory Usage
8.3 Estimating the Size of Scoped Memory Areas
8.4 Assignment Rules
8.5 Nested Memory Areas and the Single Parent Rule
8.6 Sharing Memory Areas between Schedulable Objects
8.7 Portals
8.8 Using Scoped Memory
8.9 Real-time Issues
8.10 Summary
9 Clocks and Time.
9.1 The Basic Model
9.2 Examples
9.3 Summary
10 Scheduling and Schedulable Objects.
10.1 Scheduling and Fixed Priority Scheduling
10.2 The Basic Model
10.3 The Priority Scheduler
10.4 The Parameter Classes
10.5 Parameters Classes and the Priority Scheduler
10.6 Alternative Schedulers and EDF Scheduling
10.7 Summary
11 Asynchronous Events and their Handlers.
11.1 The Basic Model
11.2 Bound Event Handlers
11.3 Cost Enforcement and Deadline Monitoring
11.4 Timers
11.5 Program Termination and Asynchronous Event Handlers
11.6 POSIX Signals
11.7 Examples
11.8 Asynchronous Events with Parameters
11.9 Understanding Asynchronous Event Handlers
11.10 Summary
12 Real-Time Threads.
12.1 The Basic Model
12.2 The NoHeapRealtimeThread Class
12.3 The Model of Periodic, Sporadic and Aperiodic Threads
12.4 Monitoring Deadline Misses in Periodic Real-time Threads
12.5 Summary
13 Asynchronous Transfer of Control.
13.1 Application Requirements for Asynchronous Transfer of Control
13.2 The Basic Model
13.3 Examples
13.4 Synchronized Methods and Statements
13.5 The Interruptible Interface
13.6 Multiple AsynchronouslyInterruptedExceptions
13.7 The Timed Class
13.8 Thread Deadline Miss Handlers Revisited
13.9 Further Examples
13.10 Summary
14 Resource Sharing.
14.1 Priority Inheritance
14.2 The RTSJ and Priority Inheritance
14.3 Wait-Free Queues
14.4 Summary
15 Physical and Raw Memory.
15.1 The Basic Model
15.2 Creating Objects in Physical Memory
15.3 Accessing Raw Memory
15.4 Summary
16 Case Study: Automobile Cruise Control System.
16.1 ACCS Requirements
16.2 System Interactions
16.3 Software Design
16.4 Implementation
16.5 Summary
17 High-Integrity Real-Time Systems.
17.1 The Ravenscar Computational Model
17.2 Java, the RTSJ and Ravenscar
17.3 The Ravenscar-Java Profile
17.4 Summary of Ravenscar-Java Profile
17.5 An Extended Example-A Mine Control System
17.6 Summary
18 Conclusions.
18.1 Specification Challenges
18.2 Implementation Challenges
18.3 Maintaining Momentum
18.4 Finally.à
Appendix: Java Class and Interface Specifications.
References
Index