Concurrency: State Models and Java Programs, 2/e

Jeff Magee, Jeff Kramer

  • 出版商: Wiley
  • 出版日期: 2006-06-01
  • 售價: $4,390
  • 貴賓價: 9.5$4,171
  • 語言: 英文
  • 頁數: 434
  • 裝訂: Hardcover
  • ISBN: 0470093552
  • ISBN-13: 9780470093559
  • 相關分類: Java 程式語言
  • 無法訂購

買這商品的人也買了...

商品描述

Description

Concurrency provides a thoroughly updated approach to the basic concepts and techniques behind concurrent programming. Concurrent programming is complex and demands a much more formal approach than sequential programming. In order to develop a thorough understanding of the topic Magee and Kramer present concepts, techniques and problems through a variety of forms: informal descriptions, illustrative examples, abstract models and concrete Java examples. These combine to provide problem patterns and associated solution techniques which enable students to recognise problems and arrive at solutions.

New features include:

  • New chapters covering program verification and logical properties.
  • More student exercises.
  • Supporting website contains an updated version of the LTSA tool for modelling concurrency, model animation, and model checking.
  • Website also includes the full set of state models, java examples, and demonstration programs and a comprehensive set of overhead slides for course presentation.

 

Table of Contents

Preface.

Acknowledgments.

1. Introduction.

1.1 Concurrent Programs.

1.2 The Modeling Approach.

1.3 Practice.

1.4 Content Overview.

Summary.

Notes and Further Reading.

2. Processes and Threads.

2.1 Modeling Processes.

2.2 Implementing Processes.

Summary.

Notes and Further Reading.

Exercises.

3. Concurrent Execution.

3.1 Modeling Concurrency.

3.2 Multi-Threaded Programs.

Summary.

Notes and Further Reading.

Exercises.

4. Shared Objects and Mutual Exclusion.

4.1 Interference.

4.2 Mutual Exclusion in Java.

4.3 Modeling Mutual Exclusion.

Summary.

Notes and Further Reading.

Exercises.

5. Monitors and Condition Synchronization.

5.1 Condition Synchronization.

5.2 Semaphores.

5.3 Bounded Buffers.

5.4 Nested Monitors.

5.5 Monitor Invariants.

Summary.

Notes and Further Reading.

Exercises.

6. Deadlock.

6.1 Deadlock Analysis.

6.2 Dining Philosophers Problem.

Summary.

Notes and Further Reading.

Exercises.

7. Safety and Liveness Properties.

7.1 Safety.

7.2 Single-Lane Bridge Problem.

7.3 Liveness.

7.4 Liveness of the Single-Lane Bridge.

7.5 Readers–Writers Problem.

Summary.

Notes and Further Reading.

Exercises.

8. Model-Based Design.

8.1 From Requirements to Models.

8.2 From Models to Implementation.

Summary.

Notes and Further Reading

Exercises.

9. Dynamic Systems.

9.1 Golf Club Program.

9.2 Golf Club Model.

9.3 Fair Allocation.

9.4 Revised Golf Ball Allocator.

9.5 Bounded Overtaking.

9.6 Bounded Overtaking Golf Ball Allocator.

9.7 Master–Slave Program.

9.8 Master–Slave Model.

Summary.

Notes and Further Reading.

Exercises.

10. Message Passing.

10.1 Synchronous Message Passing.

10.2 Asynchronous Message Passing.

10.3 Rendezvous.

Summary.

Notes and Further Reading.

Exercises.

11. Concurrent Architectures.

11.1 Filter Pipeline.

11.2 Supervisor–Worker.

11.3 Announcer–Listener.

Summary.

Notes and Further Reading.

Exercises.

12. Timed Systems.

12.1 Modeling Timed Systems.

12.2 Implementing Timed Systems.

12.3 Parcel Router Problem.

12.4 Space Invaders.

Summary.

Notes and Further Reading.

Exercises.

13.ihl Program Verification.

13.1 Sequential Processes.

13.2 Modeling Condition Synchronization.

13.3 Modeling Variables and Synchronized Methods.

13.4 Bounded Buffer Example.

13.5 Readers–Writers Example.

Summary.

Notes and Further Reading.

Exercises.

14. Logical Properties.

14.1 Fluent Propositions.

14.2 Temporal Propositions.

14.3 Fluent Linear Temporal Logic (FLTL).

14.4 Database Ring Problem.

Summary.

Notes and Further Reading.

Exercises.

Appendix A: FSP Quick Reference.

A.1 Processes.

A.2 Composite Processes.

A.3 Common Operators.

A.4 Properties.

Appendix B: FSP Language Specification.

B.1 FSP Description.

B.2 Identifiers.

B.3 Action Labels.

B.4 const, range, set.

B.5 Process Definition.

B.6 Composite Process.

B.7 Parameters.

B.8 Relabeling and Hiding.

B.9 property, progress and menu.

B.10; Expression.

B.11 Basic FSP.

Appendix C: FSP Semantics.

C.1 Labeled Transition System (LTS).

C.2 Processes.

C.3 Composite Processes.

C.4 Common Operators.

C.5 Safety Properties.

C.6 Semantic Equivalences.

Appendix D: UML Class Diagrams.

Bibliography.

Index.