Download presentation
Presentation is loading. Please wait.
1
© Andy Wellings, 2004 Concurrent and Real-Time Programming in Java Electronic copies of course foils available via http://www-course.cs.york.ac.uk/crt Course book: “ Concurrent and Real-Time Programming in Java ” Andy Wellings, Wiley, 2004 ( £ 20.99 from Amazon) Real-Time Specification for Java (RTSJ) Versions 1.0.1 is available from http://www.rtj.org
2
© Andy Wellings, 2004 Books RTSJ Version 0.9 RTSJ Version 1.0.1
3
© Andy Wellings, 2004 Other books RTSJ Version 0.9RTSJ Version 1.0
4
© Andy Wellings, 2004 Practicals Start week 3 Demonstrators:
5
© Andy Wellings, 2004 Thursday 14.15
6
© Andy Wellings, 2004 Thursday 15.15
7
© Andy Wellings, 2004 Prerequisites You should already: be a competent programmer in an imperative programming language like C, Pascal, Ada, C++, C# etc be able to program in sequential Java have a good understanding of Operating System Principles, in particular the mechanisms needed to support concurrency, e.g. processes, semaphores, etc
8
© Andy Wellings, 2004 Overall Technical Aims of the Course To understand the basic requirements of concurrent and real-time systems To understand how these requirements have influenced the design of Java and the Real-Time Specification for Java To be able to program advanced concurrent real-time Java systems
9
© Andy Wellings, 2004 Course Contents I Introduction to Course, Concurrent and Real-Time Programming Concurrent Programming in Java Communication and Synchronization Motivation for, and an overview of, the RTSJ Memory Management Clocks and Time Scheduling and Schedulable Objects Asynchronous Events and Handlers
10
© Andy Wellings, 2004 Course Contents II Real-Time Threads Asynchronous Transfer of Control Resource Control Schedulability Analysis Conclusions
11
© Andy Wellings, 2004 Concurrent Programming The name given to programming notation and techniques for expressing potential parallelism and solving the resulting synchronization and communication problems Implementation of parallelism is a topic in computer systems (hardware and software) that is essentially independent of concurrent programming Concurrent programming is important because it provides an abstract setting in which to study parallelism without getting bogged down in the implementation details
12
© Andy Wellings, 2004 Why we need it To fully utilise the processor 10 -7 10 -6 10 -5 10 -4 10 -3 10 -2 10 10 2 1 -8 10 -9 Response time in seconds 10 0 humantape floppy CD memory processor
13
© Andy Wellings, 2004 Parallelism Between CPU and I/O Devices CPUI/O Device Initiate I/O Operation Process I/O Request Signal Completion Interrupt I/O Routine I/O Finished Continue with Outstanding Requests
14
© Andy Wellings, 2004 Why we need it To allow the expression of potential parallelism so that more than one computer can be used to solve the problem Consider trying to find the way through a maze
15
Sequential Maze Search
16
Concurrent Maze Search
17
© Andy Wellings, 2004 Why we need it To model the parallelism in the real world Virtually all real-time systems are inherently concurrent — devices operate in parallel in the real world This is, perhaps, the main reason to use concurrency
18
Air Traffic Control
19
© Andy Wellings, 2004 Why we need it Alternative: use sequential programming techniques The programmer must construct the system as the cyclic execution of a program sequence to handle the various concurrent activities This complicates the programmer's task and involves considerations of structures which are irrelevant to the control of the activities in hand The resulting programs will be more obscure and inelegant Decomposition of the problem is more complex Parallel execution of the program on more than one processor is more difficult to achieve The placement of code to deal with faults is more problematic
20
© Andy Wellings, 2004 Terminology A concurrent program is a collection of autonomous sequential processes, executing (logically) in parallel Each process has a single thread of control The actual implementation (i.e. execution) of a collection of processes usually takes one of three forms. Multiprogramming processes multiplex their executions on a single processor Multiprocessing processes multiplex their executions on a multiprocessor system where there is access to shared memory Distributed Processing processes multiplex their executions on several processors which do not share memory
21
© Andy Wellings, 2004 What is a real-time system? A real-time system is any information processing system which has to respond to externally generated input stimuli within a finite and specified period the correctness depends not only on the logical result but also the time it was delivered failure to respond is as bad as the wrong response! The computer is a component in a larger engineering system => EMBEDDED COMPUTER SYSTEM 99% of all processors are for the embedded systems market
22
© Andy Wellings, 2004 Terminology Hard real-time — systems where it is absolutely imperative that responses occur within the required deadline. E.g. Flight control systems. Soft real-time — systems where deadlines are important but which will still function correctly if deadlines are occasionally missed. E.g. Data acquisition system. Firm real-time — systems which are soft real-time but in which there is no benefit from late delivery of service. A system may have all hard, soft and real real-time subsystems Many systems may have a cost function associated with missing each deadline
23
© Andy Wellings, 2004 A simple fluid control system Pipe Flow meter Valve Interface Computer Time Input flow reading Processing Output valve angle
24
© Andy Wellings, 2004 A Grain-Roasting Plant Fuel Tank Furnace Bin Pipe fuel grain
25
© Andy Wellings, 2004 A Process Control System Process Control Computer Chemicals and Materials Valve Temperature Transducer Stirrer Finished Products PLANT
26
© Andy Wellings, 2004 A Production Control System Production Control System Parts Machine ToolsManipulatorsConveyor Belt Finished Products
27
© Andy Wellings, 2004 A Command and Control System Temperature, Pressure, Power and so on Terminals Command and Control Computer Command Post Sensors/Actuators
28
© Andy Wellings, 2004 A Typical Embedded System Algorithms for Digital Control Data Logging Data Retrieval and Display Operator Interface Engineering System Remote Monitoring System Real-Time Clock Database Operator’s Console Display Devices Real-Time Computer
29
© Andy Wellings, 2004 Characteristics of a RTS Large and complex — vary from a few hundred lines of assembler or C to 20 million lines of Ada estimated for the Space Station Freedom Concurrent control of separate system components — devices operate in parallel in the real-world; better to model this parallelism by concurrent entities in the program Facilities to interact with special purpose hardware — need to be able to program devices in a reliable and abstract way
30
© Andy Wellings, 2004 Characteristics of a RTS Extreme reliability and safe — embedded systems typically control the environment in which they operate; failure to control can result in loss of life, damage to environment or economic loss Guaranteed response times — we need to be able to predict with confidence the worst case response times for systems; efficiency is important but predictability is essential
31
© Andy Wellings, 2004 Real-time Programming Languages Assembly languages Sequential systems implementation languages — e.g. RTL/2, Coral 66, Jovial, C. Both normally require operating system support. High-level concurrent languages. Impetus from the software crisis. e.g. Ada, Chill, Modula-2, Mesa, Java. No operating system support! We will focus on Java and the Real-Time Specification for Java See Burns, Wellings, Real-Time Systems and Programming Languages, 3rd Edition, 2001, Addison Wesley for a general discussion on other languages and operating systems
32
© Andy Wellings, 2004 Java Architecture Real-time Operating System JVM JBC Standalone JVM JBC Hardware JVM JBC
33
© Andy Wellings, 2004 Summary I The motivations for concurrent programming have been presented: fully utilize the processor allow parallel execution model real world parallelism Two main classes of real-time systems have been identified: hard real-time systems soft real-time systems
34
© Andy Wellings, 2004 Summary II The basic characteristics of a real-time or embedded computer system are: largeness and complexity, manipulation of real numbers, extreme reliability and safety, concurrent control of separate system components, real-time control, interaction with hardware interfaces, efficient implementation.
35
© Andy Wellings, 2004 Further Reading Chapter 1 of Burns and Wellings, “ Real-Time Systems and Programming Languages ”, 3rd Edition, 2001 (in library)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.