Concurrent and Real-Time Programming in Java
Buy Rights Online Buy Rights

Rights Contact Login For More Details

More About This Title Concurrent and Real-Time Programming in Java

English

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.

English

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.

loading