We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published byCora Wilmot
Modified about 1 year ago
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer
Concurrency: introduction2 ©Magee/Kramer 2 nd Edition What is a Concurrent Program? A sequential program has a single thread of control. A concurrent program has multiple threads of control allowing it perform multiple computations in parallel and to control multiple external activities which occur at the same time.
Concurrency: introduction3 ©Magee/Kramer 2 nd Edition Concurrent and Distributed Software? Interacting, concurrent software components of a system: single machine -> shared memory interactions multiple machines -> network interactions
Concurrency: introduction4 ©Magee/Kramer 2 nd Edition Why Concurrent Programming? Performance gain from multiprocessing hardware parallelism. Increased application throughput an I/O call need only block one thread. Increased application responsiveness high priority thread for user requests. More appropriate structure for programs which interact with the environment, control multiple activities and handle multiple events.
Concurrency: introduction5 ©Magee/Kramer 2 nd Edition Do I need to know about concurrent programming? Therac - 25 computerised radiation therapy machine Concurrent programming errors contributed to accidents causing deaths and serious injuries. Mars Rover Problems with interaction between concurrent tasks caused periodic software resets reducing availability for exploration. Concurrency is widespread but error prone.
Concurrency: introduction6 ©Magee/Kramer 2 nd Edition a Cruise Control System Is the system safe? Would testing be sufficient to discover all errors? When the car ignition is switched on and the on button is pressed, the current speed is recorded and the system is enabled: it maintains the speed of the car at the recorded setting. Pressing the brake, accelerator or off button disables the system. Pressing resume re-enables the system. buttons
Concurrency: introduction7 ©Magee/Kramer 2 nd Edition models A model is a simplified representation of the real world. Engineers use models to gain confidence in the adequacy and validity of a proposed design. focus on an aspect of interest - concurrency model animation to visualise a behaviour mechanical verification of properties (safety & progress) Models are described using state machines, known as Labelled Transition Systems LTS. These are described textually as finite state processes (FSP) and displayed and analysed by the LTSA analysis tool.
Concurrency: introduction8 ©Magee/Kramer 2 nd Edition modeling the Cruise Control System Later chapters will explain how to construct models such as this so as to perform animation and verification. LTS of the process that monitors speed. LTSA Animator to step through system actions and events.
Concurrency: introduction9 ©Magee/Kramer 2 nd Edition programming practice in Java Java is widely available, generally accepted and portable provides sound set of concurrency features Hence Java is used for all the illustrative examples, the demonstrations and the exercises. Later chapters will explain how to construct Java programs such as the Cruise Control System. “Toy” problems are also used as they exemplify particular aspects of concurrent programming problems!
Concurrency: introduction10 ©Magee/Kramer 2 nd Edition course objective This course is intended to provide a sound understanding of the concepts, models and practice involved in designing concurrent software. The emphasis on principles and concepts provides a thorough understanding of both the problems and the solution techniques. Modeling provides insight into concurrent behavior and aids reasoning about particular designs. Concurrent programming in Java provides the programming practice and experience.
Concurrency: introduction11 ©Magee/Kramer 2 nd Edition Book Concurrency: State Models & Java Programs, 2 nd Edition Jeff Magee & Jeff Kramer WILEY 1 st edition
Concurrency: introduction12 ©Magee/Kramer 2 nd Edition Course Outline 2. Processes and Threads 3. Concurrent Execution 4. Shared Objects & Interference 5. Monitors & Condition Synchronization 6. Deadlock 7. Safety and Liveness Properties 8. Model-based Design 9.Dynamic systems 10. Message Passing 11. Concurrent Software Architectures Concepts Models Practice 12. Timed Systems 13. Program Verification 14. Logical Properties The main basic Advanced topics …
Concurrency: introduction13 ©Magee/Kramer 2 nd Edition Web based course material Java examples and demonstration programs State models for the examples Labelled Transition System Analyser (LTSA) for modeling concurrency, model animation and model property checking.
Concurrency: introduction14 ©Magee/Kramer 2 nd Edition Summary Concepts we adopt a model-based approach for the design and construction of concurrent programs Models we use finite state models to represent concurrent behavior. Practice we use Java for constructing concurrent programs. Examples are used to illustrate the concepts, models and demonstration programs.
Embedded System, A Brief Introduction Presented by Subash Chandra Nayak 01EC3010, IIT Kharagpur.
Chapter 5 – System Modeling 1Chapter 5 System modeling Software Engineering Ian Sommerville, Software Engineering, 9 th Edition Pearson Education,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Agent Based Software Development Michael Luck, Ronald Ashri and Mark dInverno.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13Slide 1 Chapter 13 Real-time Software Design.
Architectural Design IS301 – Software Engineering Lecture # 14 – M. E. Kabay, PhD, CISSP Dept of Computer Information Systems Norwich University.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design 1.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Chapter 20- Embedded Systems Lecture 1. Topics covered Embedded systems design Architectural patterns Timing analysis Real-time operating systems.
©2011 1www.id-book.com Understanding and Conceptualizing interaction Chapter 2.
Agent Based Software Development Michael Luck, Ronald Ashri and Mark dInverno Chapter 3: Agent Toolkits.
Agent Based Software Development Michael Luck, Ronald Ashri and Mark dInverno Chapter 4: Methodologies and Modeling Languages.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Chapter 12 Object-Oriented Design.
HCI in the Software Process and Design Rules. Overview Software Engineering provides a means of understanding the structure of the design process, and.
technische universität dortmund fakultät für informatik informatik 12 Communicating finite state machines Peter Marwedel TU Dortmund Informatik
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
Executional Architecture Lecture Conceptual vs execution Conceptual Architecture Execution Architecture Component Connector Domain-level responsibilities.
Chapter 7 – Design and Implementation 1Chapter 7 Design and implementation Note: These are a modified version of Ch 7 slides available from the authors.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction.
© 2005 by Prentice Hall Appendix 3 Object-Oriented Analysis and Design Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 16 Slide 1 User interface design.
Introduction to Object Orientation System Analysis and Design.
Unit-V -SOFTWARE QUALITY. To develop and deliver robust system, we need a high level of confidence that Each component will behave correctly Collective.
Documenting Software Architectures These notes are my personal view of the concepts presented on Duran-Limons paper: Documenting Software Architectures:
An Introduction to Object Modeling An Introduction to Object Modeling The approach of using object modeling during systems analysis and design is called.
1 Note content copyright © 2004 Ian Sommerville. NU-specific content copyright © 2004 M. E. Kabay. All rights reserved. Critical Systems Validation IS301.
© 2016 SlidePlayer.com Inc. All rights reserved.