000 05582cam a22001937a 4500
020 _a9780521866972 (hbk.)
020 _a0521866979 (hbk.)
040 _cCUS
082 0 4 _a005.133
_bBUR/C
100 1 _aBurns, Alan,
_920734
245 1 0 _aConcurrent and real-time programming in Ada 2005 /
_cAlan Burns and Andy Wellings.
260 _aCambridge ;
_aNew York :
_bCambridge University Press,
_c2007.
300 _axiv, 461 p. :
_c26 cm.
505 _aIntroduction 1.1 Concurrency 1.2 Real-time systems 1.3 Ada's time and clock facilities 1.4 Summary 1.5 Further reading The nature and uses of concurrent programming 2.1 Uses of concurrent programming 2.2 Program entities 2.3 Process representation 2.4 A simple embedded system 2.5 Summary 2.6 Further reading Inter-process communication 3.1 Data communication 3.2 Synchronisation 3.3 Deadlocks and indefinite postponements 3.4 System performance, correctness and reliability 3.5 Dining philosophers problem 3.6 Shared variables and protected variables 3.7 Semaphores 3.8 Monitors 3.9 Message-based communication 3.10 Summary 3.11 Further reading Task types and objects 4.1 Task creation 4.2 Task activation, execution, finalisation and termination 4.3 Task hierarchies 4.4 Task identification 4.5 Task creation, communication and synchronisation within task finalisation 4.6 Summary The rendezvous 5.1 The basic model 5.2 The entry statement 5.3 The accept statement 5.4 The Count attribute 5.5 Entry families 5.6 Three-way synchronisation 5.7 Private entries 5.8 Exceptions and the rendezvous 5.9 Task states 5.10 Summary The select statement and the rendezvous 6.1 Selective accept 6.2 Guarded alternatives 6.3 Delay alternative 6.4 The else part 6.5 The correct use of guards 6.6 The terminate alternative 6.7 The exception Program-Error 6.8 Summary of the selective accept statement 6.9 Conditional and timed entry calls 6.10 Mutual exclusion and deadlocks 6.11 The dining philosophers 6.12 Task states 6.13 Summary Protected objects and data-oriented communication 7.1 Protected objects 7.2 Mutual exclusion 7.3 Condition synchronisation 7.4 Entry calls and barriers 7.5 Private entries and entry families 7.6 Restrictions on protected objects 7.7 Access variables and protected types 7.8 Elaboration, finalisation and exceptions 7.9 Shared data 7.10 The readers and writers problem 7.11 The specification of synchronisation agents 7.12 Shared variables 7.13 Volatile and atomic data 7.14 Task states 7.15 Summary 8 Avoidance synchronisation and the requeue facility 8.1 The need for requeue 8.2 Semantics of requeue 8.3 Requeuing to other entities 8.4 Real-time solutions to the resource control problem 8.5 Entry families and server tasks 8.6 Extended example 8.7 Task states 8.8 Summary 9 Exceptions, abort and asynchronous transfer of control 9.1 Exceptions 9.2 The abort statement 9.3 Asynchronous transfer of control 9.4 Understanding the asynchronous select statement 9.5 A robust readers and writers algorithm 9.6 Task states 9.7 Summary 10 Object-oriented programming and tasking 10.1 The Ada 2005 OOP model 10.2 Tasks and interfaces 10.3 Protected types and interfaces 10.4 Synchronized interfaces 10.5 Summary 10.6 Further reading 11 Concurrency utilities 11.1 Communication and synchronisation abstractions 11.2 Semaphores 11.3 Locks 11.4 Signals 11.5 Event variables 11.6 Buffers 11.7 Blackboards 11.8 Broadcasts 11.9 Barriers 11.10 Concurrent execution abstractions 11.11 Callables and futures 11.12 Executors 11.13 Completion services 11.14 Image processing example revisited 11.15 Summary 12 Tasking and systems programming 12.1 Device driving and interrupt handling 12.2 Model of interrupts 12.3 Task identifiers 12.4 Task attributes 12.5 Summary 12.6 Further reading 13 Scheduling real-time systems - fixed priority dispatching 13.1 Scheduling 13.2 Fixed priority dispatching 13.3 Priority ceiling locking 13.4 Entry queue policies 13.5 Active priorities and dispatching policies 13.6 Summary 13.7 Further reading 14 Scheduling real-time systems - other dispatching facilities 14.1 Non-preemptive dispatching 14.2 Round-robin dispatching 14.3 Earliest deadline first dispatching 14.4 Mixed scheduling 14.5 Dynamic priorities 14.6 Synchronous and asynchronous task control 14.7 Summary 14.8 Further reading 15 Timing events and execution-time control 15.1 Events and event handling 15.2 Timing events 15.3 Dual priority scheduling 15.4 Execution-time clocks 15.5 Execution-time timers 15.6 Group budgets 15.7 Task termination events 15.8 Summary 15.9 Further reading 16 Real-time utilities 16.1 Real-time task state 16.2 Real-time task release mechanisms 16.3 Periodic release mechanisms 16.4 Sporadic release mechanisms 16.5 Aperiodic release mechanisms and execution-time servers 16.6 Real-time tasks 16.7 The cruise control system example 16.8 Summary 17 Restrictions, metrics and the Ravenscar profile 17.1 Restricted tasking and other language features 17.2 The Ravenscar profile 17.3 Partition elaboration control 17.4 Examples of the use of the Ravenscar profile 17.5 Metrics and optimisations 17.6 Summary 17.7 Further reading 18 Conclusion 18.1 Support for concurrency 18.2 Support for real-time 18.3 New to Ada 2005 18.4 Outstanding issues and the future
650 0 _aAda (Computer program language)
_920735
650 0 _aParallel Programming (Computer science)
_920736
650 0 _aReal-time Programming.
_920737
942 _cWB16
999 _c1846
_d1846