Edition |
2nd ed. |
Physical description |
xviii, 390 pages : illustrations ; 23 cm |
Bibliography |
Includes bibliographical references and index. |
Contents |
1 Ada Language 1 -- 1.1 Programming in the small 2 -- 1.2 Packages and library units 9 -- 1.3 Generics 15 -- 1.4 Exception handling and type security 16 -- 2 Nature and Uses of Concurrent Programming 21 -- 2.1 Uses of concurrent programming 22 -- 2.2 Program entities 24 -- 2.3 Process representation 25 -- 2.4 A simple embedded system 27 -- 2.5 Clocks and time 34 -- 3 Inter-Process Communication 41 -- 3.1 Data Communication 41 -- 3.2 Synchronisation 43 -- 3.3 Deadlocks and indefinite postponements 44 -- 3.4 System performance, correctness and reliability 45 -- 3.5 Dining philosophers problem 47 -- 3.6 Shared variables and protected variables 49 -- 3.7 Semaphores 51 -- 3.8 Monitors 53 -- 3.9 Message-based communication 56 -- 4 Ada Task Types and Objects 63 -- 4.1 Task creation 64 -- 4.2 Task activation, execution, finalisation and termination 72 -- 4.3 Task hierarchies 78 -- 4.4 Task identification 82 -- 4.5 Task creation, communication and synchronisation within task finalisation 83 -- 4.6 Task states 84 -- 5 Rendezvous 87 -- 5.1 Basic model 87 -- 5.2 Entry statement 89 -- 5.3 Accept statement 91 -- 5.4 Entry families 96 -- 5.5 Three-way synchronisation 98 -- 5.6 Private entries 99 -- 5.7 Exceptions and the rendezvous 101 -- 5.8 Task states 102 -- 6 Select Statement and the Rendezvous 105 -- 6.1 Selective accept 105 -- 6.2 Guarded alternatives 109 -- 6.3 Delay alternative 110 -- 6.4 Else part 114 -- 6.5 Correct use of guards 116 -- 6.6 Terminate alternative 118 -- 6.7 Exception Program Error 123 -- 6.8 Summary of the selective accept statement 124 -- 6.9 Conditional and timed entry calls 125 -- 6.10 Mutual exclusion and deadlocks 128 -- 6.11 Dining philosophers 130 -- 6.12 Task states 133 -- 7 Protected Objects and Data-Oriented Communication 135 -- 7.1 Protected objects 135 -- 7.2 Mutual exclusion 136 -- 7.3 Condition synchronisation 138 -- 7.4 Entry calls and barriers 140 -- 7.5 Private entries and entry families 144 -- 7.6 Restrictions on protected objects 148 -- 7.7 Access variables and protected types 150 -- 7.8 Elaboration, finalisation and exceptions 151 -- 7.9 Shared data 152 -- 7.10 Shared variables 157 -- 7.11 Volatile and atomic data 161 -- 7.12 Task states 165 -- 8 Avoidance Synchronisation and the Requeue Facility 167 -- 8.1 Need for requeue 167 -- 8.2 Semantics of requeue 178 -- 8.3 Requeuing to other entities 181 -- 8.4 Real-time solutions to the resource control problem 185 -- 8.5 Entry families and server tasks 189 -- 8.7 Task states 196 -- 9 Using Protected Objects as Building Blocks 199 -- 9.1 Semaphores 200 -- 9.2 Persistent signals 203 -- 9.3 Transient signals 205 -- 9.4 Events 206 -- 9.5 Buffers 208 -- 9.6 Blackboards 209 -- 9.7 Broadcasts 210 -- 9.8 Barriers 214 -- 9.9 Selective entry calls 215 -- 10 Exceptions, Abort and Asynchronous Transfer of Control 225 -- 10.1 Exceptions 225 -- 10.2 Abort statement 227 -- 10.3 Asynchronous transfer of control 230 -- 10.4 Understanding the asynchronous select statement 241 -- 10.5 A robust readers and writers algorithm 246 -- 10.6 Task states 250 -- 11 Tasking and Systems Programming 253 -- 11.1 Device driving and interrupt handling 255 -- 11.2 Model of interrupts 259 -- 11.3 Task identifiers 269 -- 11.4 Task attributes 272 -- 12 Real-Time Programming 277 -- 12.1 Task priorities 277 -- 12.2 Dynamic priorities 285 -- 12.3 Synchronisation primitives 292 -- 12.4 Immediacy of abort 296 -- 12.5 Restricted tasking 297 -- 12.6 Other provisions 300 -- 13 Object-Oriented Programming and Tasking 303 -- 13.1 An overview of Ada's support for OOP 303 -- 13.2 Synchronisation, protected units and tagged types 312 -- 13.3 Reusable and extensible communication abstractions 319 -- 13.4 Tasks and tagged types 332 -- 14 Distributed Systems 339 -- 14.1 Ada model of distribution 340 -- 14.2 Program elaboration and termination 346 -- 14.3 Remote communication 346 -- 14.4 Programming paradigms for distributed systems 349 -- 14.5 Tolerance of processing element failure 366 -- 15.1 Ada 83 and Ada 95 373 -- 15.2 Outstanding issues 376 -- 15.3 Future 378. |
Summary |
A major feature of the Ada programming language is the facilities it provides for concurrent programming. Alan Burns and Andy Wellings provide here a thorough and self-contained account of concurrent programming in Ada, and so show users, even beginners, how to harness the full power of the whole language. |
Other author |
Wellings, Andrew J.
|
Subject |
Ada (Computer program language)
|
|
Parallel programming (Computer science)
|
ISBN |
052162911X (paperback) |
|