CSC321 §1 Concurrent Programming 1 CSC 321 Concurrent Programming Course web site

Slides:



Advertisements
Similar presentations
1 Senn, Information Technology, 3 rd Edition © 2004 Pearson Prentice Hall James A. Senns Information Technology, 3 rd Edition Chapter 7 Enterprise Databases.
Advertisements

IB Portfolio Tasks 20% of final grade
1 433 – 254: Software Design Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering University of.
Requirements Engineering Process
What is an ITP? Individual training plan What is an ITP for a Goldsmiths PGCE student? Progress check, a record of achievement, a log of experiences,
Making the System Operational
WS-JDML: A Web Service Interface for Job Submission and Monitoring Stephen M C Gough William Lee London e-Science Centre Department of Computing, Imperial.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design 1.
Software Engineering COMP 201
Configuration management
Software change management
CSNB334 Advanced Operating Systems Course Introduction Lecturer: Asma Shakil.
OOAD – Dr. A. Alghamdi Mastering Object-Oriented Analysis and Design with UML Module 3: Requirements Overview Module 3 - Requirements Overview.
By Waqas Over the many years the people have studied software-development approaches to figure out which approaches are quickest, cheapest, most.
1 Multimedia Systems 2 Dr Paul Newbury School of Engineering and Information Technology ENGG II - 3A11 Ext:
AMSc Research Methods Module co-ordinator: Jane Reid
Lecture 1: Software Engineering: Introduction
CSC321 §1 Concurrent Programming 1 CSC 321 Concurrent Programming Course web site Lecturer: Professor N.S. Scott Room 2025,
Database System Concepts and Architecture
Chapter 10 Software Testing
1 Processes and Threads Chapter Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Advanced Manufacturing Laboratory Department of Industrial Engineering Sharif University of Technology Session # 14.
Copyright © 2014 ICT Inspires Ltd. All Rights Reserved. ICT (Computing) Subject Leader Course Session 2: Broader.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
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.
1 Formal Methods in SE Qaisar Javaid Assistant Professor Lecture 05.
Damian Gordon.  This module is concerned with program design skills, with particular reference to using flowcharts, pseudocode and programming language.
Concurrent Processes Lecture 5. Introduction Modern operating systems can handle more than one process at a time System scheduler manages processes and.
Architectural Support for Operating Systems. Announcements Most office hours are finalized Assignments up every Wednesday, due next week CS 415 section.
General information CSE 230 : Introduction to Software Engineering
© 2005 Prentice Hall12-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Software Engineering COMP 201
University of Toronto Department of Computer Science CSC444 Lec04- 1 Lecture 4: Software Lifecycles The Software Process Waterfall model Rapid Prototyping.
CS 347: Operating Systems  In this course, we reason about effective performance of a computer system  The emphasis of this course is on –Concepts –Techniques.
Ciarán O’Leary Wednesday, 23 rd September Ciarán O’Leary School of Computing, Dublin Institute of Technology, Kevin St Research Interests Distributed.
Concurrency: introduction1 ©Magee/Kramer Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
Advanced Operating Systems CIS 720 Lecture 1. Instructor Dr. Gurdip Singh – 234 Nichols Hall –
Course: Software Engineering © Alessandra RussoUnit 1 - Introduction, slide Number 1 Unit 1: Introduction Course: C525 Software Engineering Lecturer: Alessandra.
SE-308 Software Engineering-II 7th Term SE University of Engineering & Technology Taxila, Pakistan Software Engineering Department.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
WXGE 6103 Digital Image Processing Semester 2, Session 2013/2014.
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.
2015 Concurrency: model-based design 1 ©Magee/Kramer 2 nd Edition Chapter 8 Model-Based Design.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Introduction Fall 2001 Foundations of Computer Systems Prerequisite:91.166* or * Section A Instructor: Dr. David Hutchinson Office:
Petri Nets Lecturer: Roohollah Abdipour. Agenda Introduction Petri Net Modelling with Petri Net Analysis of Petri net 2.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
HCI Meeting 1 Thursday, August 26. Class Activities [1] Student questionnaire Answer the following questions: 1.When and where was the computer mouse.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
1 Sobah Abbas Petersen Adjunct Associate Professor, NTNU Researcher, Sintef TDT4252 Modelling of Information Systems Advanced Course TDT4252,
Choosing a Formal Method Mike Weissert COSC 481. Outline Introduction Reasons For Choosing Formality Application Characteristics Criteria For A Successful.
BSc Honours Project Introduction CSY4010 Amir Minai Module Leader.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
COM621 – Interactive Web Development 2015/2016 Module Co-Ordinator: Dr. Pratheepan Yogarajah Room:
Concepts, Models and Programs Jeff Kramer and Jeff Magee
Advanced Operating Systems CIS 720
Requirements Engineering Process
Principles of Computing – UFCFA Lecture-1
COMS Prelim 1 Review Session
Shared Memory Programming
Concurrency: Mutual Exclusion and Process Synchronization
Principles of Computing – UFCFA Week 1
Lecture 1: Overview of CSCI 485 Notes: I presented parts of this lecture as a keynote at Educator’s Symposium of OOPSLA Shahram Ghandeharizadeh Associate.
Presentation transcript:

CSC321 §1 Concurrent Programming 1 CSC 321 Concurrent Programming Course web site

CSC321 §1 Concurrent Programming 2 Lectures Lectures: Monday 10-11, 209 PFC Wednesday 11-12, 1.15 Crossland Friday 11-12, 1.15 Crossland Lecturer: Professor NS Scott Room 2.08, Computer Science Building Phone: Course Administrator: Dr Ashok Ramasubbu Room 2.08, Computer Science Building Phone : Approximately 30 lectures, starting Monday 24 September 2001

CSC321 §1 Concurrent Programming 3 Book List  Jeff Magee & Jeff Kramer, Concurrency: state models and Java Programs, Wiley  Java examples and demonstration programs  State models for the examples  Labelled Transition System Analyser (LTSA) for modelling concurrency, model animation and model property checking.  M. Ben-Ari, Principles of Concurrent and Distributed Programming, Prentice-Hall.

CSC321 §1 Concurrent Programming 4 Practical Classes There will be no formal practical classes. However, it is essential that each student, in his/her own time, works through the collection of practical exercises located on the course web site at Weekly advisory sessions to help with queries will be available at a time to be announced.

CSC321 §1 Concurrent Programming 5 Method of Assessment  Two programming assignments each contributing 5% to the final grade.  Two written assignments each contributing 5% to the final grade.  A final three-hour written examination contributing 80% to the final grade.

CSC321 §1 Concurrent Programming 6 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.

CSC321 §1 Concurrent Programming 7 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.

CSC321 §1 Concurrent Programming 8 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.

CSC321 §1 Concurrent Programming 9 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

CSC321 §1 Concurrent Programming 10 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.

CSC321 §1 Concurrent Programming 11 Modelling the Cruise Control System Later sections 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.

CSC321 §1 Concurrent Programming 12 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 sections 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!

CSC321 §1 Concurrent Programming 13 Course Objectives  to assist the student in obtaining an appreciation of the difference between sequential and concurrent programs;  to provide the student with a sound understanding of the concepts, models and practice involved in designing concurrent software;  to provide the student with concurrent programming practice and experience through the use of Java. This course is intended:

CSC321 §1 Concurrent Programming 14 Course Objectives The emphasis on principles and concepts provides a thorough understanding of both the problems and the solution techniques. Modelling provides insight into concurrent behaviour and aids reasoning about particular designs. After the course the student should understand the problems that are specific to concurrent programs and the means by which such problems can be avoided or overcome.

CSC321 §1 Concurrent Programming 15 Course Outline  Concurrent Programming Abstraction & Java Threads  The Mutual Exclusion Problem  Semaphores  Monitors  Modelling Process using FSP  Modelling Concurrency using FSP  Implementing FSP Models in Java  Deadlock  Safety and Liveness Properties  Message Passing