{"product_id":"concurrency-isbn-9780470093559","title":"Concurrency","description":"\u003ci\u003eConcurrency\u003c\/i\u003e 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.  Preface.  \u003cp\u003eAcknowledgments.\u003c\/p\u003e \u003cp\u003e1. Introduction.\u003c\/p\u003e \u003cp\u003e1.1 Concurrent Programs.\u003c\/p\u003e \u003cp\u003e1.2 The Modeling Approach.\u003c\/p\u003e \u003cp\u003e1.3 Practice.\u003c\/p\u003e \u003cp\u003e1.4 Content Overview.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003e2. Processes and Threads.\u003c\/p\u003e \u003cp\u003e2.1 Modeling Processes.\u003c\/p\u003e \u003cp\u003e2.2 Implementing Processes.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003e3. Concurrent Execution.\u003c\/p\u003e \u003cp\u003e3.1 Modeling Concurrency.\u003c\/p\u003e \u003cp\u003e3.2 Multi-Threaded Programs.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003e4. Shared Objects and Mutual Exclusion.\u003c\/p\u003e \u003cp\u003e4.1 Interference.\u003c\/p\u003e \u003cp\u003e4.2 Mutual Exclusion in Java.\u003c\/p\u003e \u003cp\u003e4.3 Modeling Mutual Exclusion.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003e5. Monitors and Condition Synchronization.\u003c\/p\u003e \u003cp\u003e5.1 Condition Synchronization.\u003c\/p\u003e \u003cp\u003e5.2 Semaphores.\u003c\/p\u003e \u003cp\u003e5.3 Bounded Buffers.\u003c\/p\u003e \u003cp\u003e5.4 Nested Monitors.\u003c\/p\u003e \u003cp\u003e5.5 Monitor Invariants.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003e6. Deadlock.\u003c\/p\u003e \u003cp\u003e6.1 Deadlock Analysis.\u003c\/p\u003e \u003cp\u003e6.2 Dining Philosophers Problem.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003e7. Safety and Liveness Properties.\u003c\/p\u003e \u003cp\u003e7.1 Safety.\u003c\/p\u003e \u003cp\u003e7.2 Single-Lane Bridge Problem.\u003c\/p\u003e \u003cp\u003e7.3 Liveness.\u003c\/p\u003e \u003cp\u003e7.4 Liveness of the Single-Lane Bridge.\u003c\/p\u003e \u003cp\u003e7.5 Readers–Writers Problem.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003e8. Model-Based Design.\u003c\/p\u003e \u003cp\u003e8.1 From Requirements to Models.\u003c\/p\u003e \u003cp\u003e8.2 From Models to Implementation.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003e9. Dynamic Systems.\u003c\/p\u003e \u003cp\u003e9.1 Golf Club Program.\u003c\/p\u003e \u003cp\u003e9.2 Golf Club Model.\u003c\/p\u003e \u003cp\u003e9.3 Fair Allocation.\u003c\/p\u003e \u003cp\u003e9.4 Revised Golf Ball Allocator.\u003c\/p\u003e \u003cp\u003e9.5 Bounded Overtaking.\u003c\/p\u003e \u003cp\u003e9.6 Bounded Overtaking Golf Ball Allocator.\u003c\/p\u003e \u003cp\u003e9.7 Master–Slave Program.\u003c\/p\u003e \u003cp\u003e9.8 Master–Slave Model.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003e10. Message Passing.\u003c\/p\u003e \u003cp\u003e10.1 Synchronous Message Passing.\u003c\/p\u003e \u003cp\u003e10.2 Asynchronous Message Passing.\u003c\/p\u003e \u003cp\u003e10.3 Rendezvous.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003e11. Concurrent Architectures.\u003c\/p\u003e \u003cp\u003e11.1 Filter Pipeline.\u003c\/p\u003e \u003cp\u003e11.2 Supervisor–Worker.\u003c\/p\u003e \u003cp\u003e11.3 Announcer–Listener.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003e12. Timed Systems.\u003c\/p\u003e \u003cp\u003e12.1 Modeling Timed Systems.\u003c\/p\u003e \u003cp\u003e12.2 Implementing Timed Systems.\u003c\/p\u003e \u003cp\u003e12.3 Parcel Router Problem.\u003c\/p\u003e \u003cp\u003e12.4 Space Invaders.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003e13.ihl Program Verification.\u003c\/p\u003e \u003cp\u003e13.1 Sequential Processes.\u003c\/p\u003e \u003cp\u003e13.2 Modeling Condition Synchronization.\u003c\/p\u003e \u003cp\u003e13.3 Modeling Variables and Synchronized Methods.\u003c\/p\u003e \u003cp\u003e13.4 Bounded Buffer Example.\u003c\/p\u003e \u003cp\u003e13.5 Readers–Writers Example.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003e14. Logical Properties.\u003c\/p\u003e \u003cp\u003e14.1 Fluent Propositions.\u003c\/p\u003e \u003cp\u003e14.2 Temporal Propositions.\u003c\/p\u003e \u003cp\u003e14.3 Fluent Linear Temporal Logic (FLTL).\u003c\/p\u003e \u003cp\u003e14.4 Database Ring Problem.\u003c\/p\u003e \u003cp\u003eSummary.\u003c\/p\u003e \u003cp\u003eNotes and Further Reading.\u003c\/p\u003e \u003cp\u003eExercises.\u003c\/p\u003e \u003cp\u003eAppendix A: \u003ci\u003eFSP\u003c\/i\u003e Quick Reference.\u003c\/p\u003e \u003cp\u003eAppendix B: \u003ci\u003eFSP\u003c\/i\u003e Language Specification.\u003c\/p\u003e \u003cp\u003eAppendix C: FSP Semantics.\u003c\/p\u003e \u003cp\u003eAppendix D: UML Class Diagrams.\u003c\/p\u003e \u003cp\u003eBibliography.\u003c\/p\u003e \u003cp\u003eIndex.\u003c\/p\u003e \u003cb\u003eJeff Magee\u003c\/b\u003e and \u003cb\u003eJeff Kramer\u003c\/b\u003e are both of Imperial College of Science, Technology and Medicine, London, UK  ‘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.’ (\u003ci\u003eScott Smolka, SUNY at Stony Brook)\u003c\/i\u003e  \u003cp\u003eThis book provides a systematic and practical approach to designing, analyzing and implementing concurrent programs, using both state models and Java programs to introduce and illustrate key concepts and techniques. Topics covered include:\u003c\/p\u003e \u003cul\u003e \u003cli\u003ethreads and interaction\u003c\/li\u003e \u003cli\u003einterference, exclusion and synchronization\u003c\/li\u003e \u003cli\u003edeadlock, safety and liveness properties\u003c\/li\u003e \u003cli\u003emessage passing\u003c\/li\u003e \u003cli\u003econcurrent software architectures\u003c\/li\u003e \u003cli\u003edynamic and timed systems.\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eEstablished as a key learning resource for computer science graduate and undergraduate students, this second edition includes new coverage of Program Verification and Logical Properties. The accompanying website contains an updated version of the LTSA tool for modeling concurrency, model animation and model checking. The website also includes the full set of state models, Java examples and demonstration programs and a comprehensive series of overhead slides for course presentation.\u003c\/p\u003e \u003cp\u003eIdeal for classroom use or self-study, this book provides readers with the means to understand the fundamentals and practice of concurrency.\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47988971995365,"sku":"NP9780470093559","price":58.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9780470093559.jpg?v=1761782264","url":"https:\/\/k12savings.com\/products\/concurrency-isbn-9780470093559","provider":"K12savings","version":"1.0","type":"link"}