Concurrency: introduction1 ©Magee/Kramer Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.

Slides:



Advertisements
Similar presentations
Embedded System, A Brief Introduction
Advertisements

Performance Testing - Kanwalpreet Singh.
CSC321 §1 Concurrent Programming 1 CSC 321 Concurrent Programming Course web site Lecturer: Professor N.S. Scott Room 2025,
CSC321 §1 Concurrent Programming 1 CSC 321 Concurrent Programming Course web site
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
WHAT IS AN OPERATING SYSTEM? An interface between users and hardware - an environment "architecture ” Allows convenient usage; hides the tedious stuff.
Concurrency: model-based design1 ©Magee/Kramer Chapter 8 Model-Based Design.
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
Slide 1 Concurrency, Dining Philosophers Lecture 14 COMP 201.
CSC321 §6 Modelling Processes using FSP 1 Section 6 Modelling Processes using FSP.
Alternate Software Development Methodologies
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
The Role of Software Engineering Brief overview of relationship of SE to managing DSD risks 1.
Chapter 5 Processes and Threads Copyright © 2008.
Introduction To System Analysis and Design
Chapter 6: Design of Expert Systems
Process Description and Control
Concurrency ©Magee/Kramer February 05, 2007 Claus Brabrand University of Aarhus Concurrency Spring 2007.
1: Operating Systems Overview
© 2005 Prentice Hall12-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
OPERATING SYSTEM OVERVIEW
3.5 Interprocess Communication
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
What is Concurrent Programming? Maram Bani Younes.
Instructore: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Concurrent and.
Advanced Operating Systems CIS 720 Lecture 1. Instructor Dr. Gurdip Singh – 234 Nichols Hall –
LOGO OPERATING SYSTEM Dalia AL-Dabbagh
Operating System Review September 10, 2012Introduction to Computer Security ©2004 Matt Bishop Slide #1-1.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition COMP60611 Fundamentals of Parallel and Distributed Systems Lecture 5 Introduction to Concurrency:
1 CSCI 6900: Design, Implementation, and Verification of Concurrent Software Eileen Kraemer August 16 th, 2010 The University of Georgia.
Object-Oriented Modeling Using UML CS 3331 Section 2.3 of Jia 2003.
Java Threads 11 Threading and Concurrent Programming in Java Introduction and Definitions D.W. Denbo Introduction and Definitions D.W. Denbo.
Java Software Solutions Lewis and Loftus Chapter 14 1 Copyright 1997 by John Lewis and William Loftus. All rights reserved. Advanced Flow of Control --
2015 Concurrency: model-based design 1 ©Magee/Kramer 2 nd Edition Chapter 8 Model-Based Design.
CSC321 §6 Modelling Processes using FSP 1 Chapter 6 Modelling Processes using FSP.
Analysis of Concurrent Software Models Using Partial Order Views Qiang Sun, Yuting Chen,
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Chapter 2 Processes and Threads Introduction 2.2 Processes A Process is the execution of a Program More specifically… – A process is a program.
Petri Nets Lecturer: Roohollah Abdipour. Agenda Introduction Petri Net Modelling with Petri Net Analysis of Petri net 2.
1: Operating Systems Overview 1 Jerry Breecher Fall, 2004 CLARK UNIVERSITY CS215 OPERATING SYSTEMS OVERVIEW.
2015 Concurrency: logical properties 1 ©Magee/Kramer 2 nd Edition Chapter 14 Logical Properties Satisfied? Not satisfied?
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Essentials of Visual Modeling w/ UML Instructor Notes
Prof. Hany H. Ammar, CSEE, WVU, and
1 Model-Checking of Component-Based Real-Time Embedded Software Based on CORBA Event Service Yuanfang Zhang for Seminar CSE7216 Presentation based on Zonghua.
The Dynamic Analysis Model StateCharts Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
Choosing a Formal Method Mike Weissert COSC 481. Outline Introduction Reasons For Choosing Formality Application Characteristics Criteria For A Successful.
Concepts, Models and Programs Jeff Kramer and Jeff Magee
Chapter 4 – Thread Concepts
Advanced Operating Systems CIS 720
Object-Oriented Analysis and Design
Unified Modeling Language
Chapter 4 – Thread Concepts
Chapter 4: Multithreaded Programming
Operating Systems Bina Ramamurthy CSE421 11/27/2018 B.Ramamurthy.
CSCI1600: Embedded and Real Time Software
What is Concurrent Programming?
Software Engineering with Reusable Components
Process Description and Control
Operating Systems : Overview
Process Description and Control
Concurrency: Mutual Exclusion and Process Synchronization
Operating Systems : Overview
Process Description and Control
Operating Systems : Overview
Computer in Safety-Critical Systems
Presentation transcript:

Concurrency: introduction1 ©Magee/Kramer Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer

Concurrency: introduction2 ©Magee/Kramer 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 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: introduction4 ©Magee/Kramer 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: introduction5 ©Magee/Kramer 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: introduction6 ©Magee/Kramer 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: introduction7 ©Magee/Kramer 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: introduction8 ©Magee/Kramer 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 crystallize particular aspects of concurrent programming problems!

Concurrency: introduction9 ©Magee/Kramer 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: introduction10 ©Magee/Kramer Course Outline  Processes and Threads  Concurrent Execution  Shared Objects & Interference  Monitors & Condition Synchronization  Deadlock  Safety and Liveness Properties  Model-based Design  Dynamic systems  Message Passing Concepts Models Practice  Concurrent Software Architectures  Timed Systems

Concurrency: introduction11 ©Magee/Kramer 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: introduction12 ©Magee/Kramer Book Concurrency: State Models & Java Programs Jeff Magee & Jeff Kramer WILEY

Concurrency: introduction13 ©Magee/Kramer 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.