WILEY

KNOWLEDGE FOR GENERATIONS

WILEY - KNOWLEDGE FOR GENERATIONS

United States Change Location

cart.gif CART |  MY ACCOUNT |  CONTACT US |  HELP    
Wiley.com
Concurrency: State Models and Java Programs, 2nd Edition (EHEP000941) cover image
Concurrency: State Models and Java Programs, 2nd Edition
Jeff Magee (Imperial College, UK), Jeff Kramer (mperial College, UK)
June 2006, ©2006

  • Overview
  • Resources for Instructors
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 recognize the problems and arrive at solutions.
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.

Appendix B: FSP Language Specification.

Appendix C: FSP Semantics.

Appendix D: UML Class Diagrams.

Bibliography.

Index.

Author Information
Jeff Magee and Jeff Kramer are both of Imperial College of Science, Technology and Medicine, London, UK
New To This Edition
  • 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.
Hallmark Features
  • Offers an essential explanation of the concepts, techniques, and problems of concurrency, an area of software design that is useful in a wide range of applications
  • Examines why concurrency programming is complex and demands a much more formal approach than sequential programming
  • Accessible descriptions and examples illuminate problem patterns, and associated solution approaches help readers harness LTS modeling techniques (accessible on the accompanying Web site)
Professor Reviews
'Practical, Easy reading style, Very well written, An excellent book for students.' Diegi Gachet, Universidad Europea de Madrid

"I love this book! It is beautifully written and the combined FSP/Java approach to model-based development is leading-edge. The supporting materials, including the LTSA software and the lecture slides, are superb."

Scott Smolka, SUNY at Stony Brook

Related Websites
Magee - Concurrency - supporting websiteWebsite contains cover image; author links; PDF slides/lecture notes; demo programs; Labelled Transition System Analyser; LTSA v 2.1 download; errata and solutions.

Available Versions

Concurrency: State Models and Java Programs, 2nd Edition
by Jeff Magee, Jeff Kramer
ISBN 978-0-470-09355-9
June 2006, ©2006
Hardcover, 434 pages
US $74.95 Add to Cart
Concurrency: State Models and Java Programs, 2nd Edition
by Jeff Magee, Jeff Kramer
ISBN 978-0-470-06462-7
October 2007, ©2006
E-Book: Wiley Desktop Edition, 434 pages
Share This    Printer-ready version