Concurrent programmin. ng xp. The industrial experience

Size: px
Start display at page:

Download "Concurrent programmin. ng xp. The industrial experience"

Transcription

1 Concurrent programmin ng xp The industrial experience

2 Karol Ostrovský M.Sc. Comenius University, Bratislava Ph.D. Chalmers Post-doc Chalmers System Designer Dfind, on assignment at Ericsson Operations & Maintenance Subsystem Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 2

3 Karol Ostrovský Language skills Basic Pascal C/C++ Scheme SmallTalk Java JR (MPD) Haskell Erlang Ocaml LaTeX VAX assembler Trilogy Ada Agdag Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 3

4 The chalmers years Research in static analysis of concurrent programming languages Type systems Protocol analysis Main course responsible PPxT Developed the course between 2005 and 2010 Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 4

5 The case of the missing slide The Message from this Course Should you forget everything from this course, please, remember at least this saying: Use the right tool for the job. PPVT10 Introduction 3 Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 5

6 What does this buy you? Course Goals General Introduction to the problems common to many computing disciplines: Operating systems Distributed systems Real time systems Appreciation of the problems of concurrent programming g Classic synchronisationn problems PPVT10 Introduction 9 Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 6

7 What does this buy you? Course Goals Practical Understanding of a range constructs for concurrent of programming language programming Ability to apply these in practice to synchronisation problems in concurrent p rogramming g Practical knowledge of the programming techniques of modern concurrent pro ogramming languages PPVT10 Introduction 10 Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 7

8 what does this really buy you? Everything this course teaches is used in industrial practice As is Erlang lectures almost production code Applied or customised Resource allocation Master slave Timeouts, alarms Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 8

9 The pthreads experience SGSN shell in C Problem: Unix signal handling was insufficient Solution: create a separate thread for signal handling My yproblem I never practically used pthreads before My solution general solution based on co oncurrency principles - synchronisation, mutual exclusion, message passing translate to pthreads Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 9

10 The general solution Shared data Main Handler Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 10

11 Pthreads translation init lock Mutex variable unlock destroy Main create join unlock Handler Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 11

12 Ericsson where am i? Business Unit Networks Development Unit IP and Broad band Product Development Unit Packet Core - SGSN-MME O&M sub-system 2G sub-system 3G sub-system... - GGSN-MPG - CPG -... Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 12

13 Mobile telecom network Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 13

14 packet core network 3GPP Defines standards (mostly proto ocols) Interoperability is essential SGSN-MME Servicing GPRS Support Node (2G/3G) Mobility Management Entity (4G G) Control signalling Admission control, Authentication Mobility, roaming Payload transport (not in 4G) Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 14

15 SGSN-MME mkvi 3 sub-racks 21 blades (2+19) 2 core PowerPC ~ 114 simultaneously running processes Backplane: 1Gbps Up to 3 MSAU Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 15

16 SGSN-MME MkViii 3 sub-racks 14 blades (2+12) 6 core Intel x86 12 SMT threads total ~ 432 simultaneously running processes Backplane: 1 or 10Gbps Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 16

17 SGSN-MME architecture sketch NCB NCB FS SB FSB AP AP... AP DP DP... DP Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 17

18 Sieve of Eratosthenes Architecture nums N+1 pipeline channels One shared output channel filter1 filter2 filtern print output eat PPVT10 Message Passing 46 Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 18

19 pipeline of processes NC CB AP_1 AP_2 AP_N LOG log gging g Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 19

20 Typical concurrency patterns One mobile one process (replicated worker) Isolation Synchronisation only with resources Central resources Resource allocator Master/coordinator slave/worker Transaction handler Node management Configuration management Fault management (e.g. barrier sync. during start-up) Timeouts, alarms (e.g. heartbeat) Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 20

21 SGSN-MME A huge version of the assignment 2 The pub SGSN-MME node Customers mobile phones The landlord NCB The assistant node management The tables system resources Extension of the assignment SGSN-MME can run in a pool Operations & Maintenance? multiple-bars? Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 21

22 Operations & Maintenance Configuration management Maintaining working and consist tent settings Logging Black box (flight data recorder) Fault management Alarm handling Performance management Gathering statistics Monitoring health Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 22

23 Haskell patterns monads Good Keeps pure and side-effecting effecting c omputations apart Good separation of concerns Improved compositionality Possible performance gain Gather writes together and write to DB once amortise the cost of transactions: Bad 1 item write costs items write is not 100 but only 20! In rapid prototyping it can present a big hurdle to jump over So, it is good that Erlang does not have static types Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 23

24 OO-design patterns Factory method Improve memory sharing Object pool Bounded parallelisation of algorithms thread pool Overload protection Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 24

25 What they do not teach you Software maintenance Software lives long Especially telecom systems (decades) Banking systems live even longer (think COBOL) People change Organisations change Hardware changes Requirements change Documentation often does not change Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 25

26 Software maintenance The developer s challenge Write simple (readable) and effic cient code: 1. Write a straightforward and working solution first 2. Optimise later (or even better skip this step) Think smart but do not over-optimise Optimisations complicate mainte enance The code is often the only reliable document Types can be very good documentation Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 26

27 Synthesis and analysis Emphasis on synthesis so far Software development Perhaps 30% of manpower is spent on testing Analytical work Do you like to break a system? But testing ti can also be synth hetical Testing frameworks Quickcheck SGSN-MME has its own Would you like to formally prove the system correct? Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 27

28 Erlang in practice pros Well suited for Control handling of telecom traff fic Application layer (OSI model) applications Web servers, etc. Domain Specific Language framework Test scripting Reasonably high-level (as co mpared to for example C) Good for software maintenance OTP includes useful building blocks Supervisor Generic server Finite state machine Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 28

29 Erlang in practice cons Hard to find good Erlang programmers (?) A bit too low-level language Given current HW limitations one must sometimes optimise to the point where the code is not portable (with the same performance) Raise the abstraction and provide a customisable compiler, VM Where is the type system? A static type system of Haskell-nature would be a hindrance But good static analysis tools are desperately needed Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 29

30 More than true Sayings The greatest performance improvement of all is when a system goes from not working to working The only thing worse than a problem that happens all the time is a problem that doesn't happen all the time PPVT10 Introduction 54 Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 30

31 Concurrent programming xp You are finishing a very good course Provides great general/theoretic cal background Mixed with almost production level practical examples The industrial experience It is more difficult that you expect, but Good systematic approach helps Lateral thinking is an asset Guest Lecture PPxT VT2011 Karol Ostrovsky Ericsson AB Page 31

32

concurrent programming XXL

concurrent programming XXL concurrent programming XXL Industrial Use of Erlang Introduction Karol Ostrovský (karol.ostrovsky@gmail.com) Motivation Machine Ericsson Blade System 3 sub-racks 14 blades 2 routers 12 compute nodes 6

More information

<Urban.Boquist. com> Rev PA

<Urban.Boquist. com> Rev PA FP in industry - Erlang Urban Boquist Ericsson AB com> 1 Outline Who Am I Mobile Telecommunications Networks Packet Core Network GPRS & SGSN Use of Erlang in SGSN SGSN Design

More information

All you need is fun. Cons T Åhs Keeper of The Code

All you need is fun. Cons T Åhs Keeper of The Code All you need is fun Cons T Åhs Keeper of The Code cons@klarna.com Cons T Åhs Keeper of The Code at klarna Architecture - The Big Picture Development - getting ideas to work Code Quality - care about the

More information

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012 Eike Ritter 1 Modified: October 16, 2012 Lecture 8: Operating Systems with C/C++ School of Computer Science, University of Birmingham, UK 1 Based on material by Matt Smart and Nick Blundell Outline 1 Concurrent

More information

Erlang. Joe Armstrong.

Erlang. Joe Armstrong. Erlang Joe Armstrong joe.armstrong@ericsson.com 1 Who is Joe? Inventor of Erlang, UBF, Open Floppy Grid Chief designer of OTP Founder of the company Bluetail Currently Software Architect Ericsson Current

More information

Background: I/O Concurrency

Background: I/O Concurrency Background: I/O Concurrency Brad Karp UCL Computer Science CS GZ03 / M030 5 th October 2011 Outline Worse Is Better and Distributed Systems Problem: Naïve single-process server leaves system resources

More information

Lecture 6. Introduction to Message Passing

Lecture 6. Introduction to Message Passing Lecture 6 Introduction to Message Passing Message Passing Introduction to message passing JR s message passing model Operations Asynchronous message passing Synchronous message passing 2 Shared Variables?

More information

20 Years of Commercial Functional Programming

20 Years of Commercial Functional Programming 20 Years of Commercial Functional Programming Ulf Wiger Senior Software Architect Ericsson AB 2004-07-01 1 History of Erlang How to design SW for future telecoms systems? 1995: Several new projects 1998:

More information

Functional Programming In Real Life

Functional Programming In Real Life Functional Programming In Real Life Dr. Erik Stenman CTO Kreditor Europe AB Creative Payment Solutions Introduction I will talk about KREDITOR, a company that bet it's future on Erlang, a functional programming

More information

Message Passing. Lecture 7. Shared Variables? Shared Variables? Synchronisation. Overview of Message Passing

Message Passing. Lecture 7. Shared Variables? Shared Variables? Synchronisation. Overview of Message Passing Message Passing Lecture 7 Introduction to Message Passing Introduction to message passing JR s message passing model Operations Asynchronous message passing Synchronous message passing 2 Shared Variables?

More information

ECE 574 Cluster Computing Lecture 8

ECE 574 Cluster Computing Lecture 8 ECE 574 Cluster Computing Lecture 8 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 16 February 2017 Announcements Too many snow days Posted a video with HW#4 Review HW#5 will

More information

COMP Parallel Computing. CC-NUMA (2) Memory Consistency

COMP Parallel Computing. CC-NUMA (2) Memory Consistency COMP 633 - Parallel Computing Lecture 11 September 26, 2017 Memory Consistency Reading Patterson & Hennesey, Computer Architecture (2 nd Ed.) secn 8.6 a condensed treatment of consistency models Coherence

More information

Page 1. Analogy: Problems: Operating Systems Lecture 7. Operating Systems Lecture 7

Page 1. Analogy: Problems: Operating Systems Lecture 7. Operating Systems Lecture 7 Os-slide#1 /*Sequential Producer & Consumer*/ int i=0; repeat forever Gather material for item i; Produce item i; Use item i; Discard item i; I=I+1; end repeat Analogy: Manufacturing and distribution Print

More information

Lecture 3: Intro to parallel machines and models

Lecture 3: Intro to parallel machines and models Lecture 3: Intro to parallel machines and models David Bindel 1 Sep 2011 Logistics Remember: http://www.cs.cornell.edu/~bindel/class/cs5220-f11/ http://www.piazza.com/cornell/cs5220 Note: the entire class

More information

Data Types. Every program uses data, either explicitly or implicitly to arrive at a result.

Data Types. Every program uses data, either explicitly or implicitly to arrive at a result. Every program uses data, either explicitly or implicitly to arrive at a result. Data in a program is collected into data structures, and is manipulated by algorithms. Algorithms + Data Structures = Programs

More information

CSE 344 Final Review. August 16 th

CSE 344 Final Review. August 16 th CSE 344 Final Review August 16 th Final In class on Friday One sheet of notes, front and back cost formulas also provided Practice exam on web site Good luck! Primary Topics Parallel DBs parallel join

More information

INSTITUTE OF AERONAUTICAL ENGINEERING

INSTITUTE OF AERONAUTICAL ENGINEERING INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad -500 043 INFORMATION TECHNOLOGY TUTORIAL QUESTION BANK Name : PRINCIPLES OF PROGRAMMING LANGUAGES Code : A40511 Class : II B. Tech

More information

PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING

PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING JAN BARTONÍČEK This paper's goal is to briefly explain the basic theory behind programming languages and their history

More information

CS 153 Lab4 and 5. Kishore Kumar Pusukuri. Kishore Kumar Pusukuri CS 153 Lab4 and 5

CS 153 Lab4 and 5. Kishore Kumar Pusukuri. Kishore Kumar Pusukuri CS 153 Lab4 and 5 CS 153 Lab4 and 5 Kishore Kumar Pusukuri Outline Introduction A thread is a straightforward concept : a single sequential flow of control. In traditional operating systems, each process has an address

More information

Copyright 2013 Thomas W. Doeppner. IX 1

Copyright 2013 Thomas W. Doeppner. IX 1 Copyright 2013 Thomas W. Doeppner. IX 1 If we have only one thread, then, no matter how many processors we have, we can do only one thing at a time. Thus multiple threads allow us to multiplex the handling

More information

Multiprocessor System. Multiprocessor Systems. Bus Based UMA. Types of Multiprocessors (MPs) Cache Consistency. Bus Based UMA. Chapter 8, 8.

Multiprocessor System. Multiprocessor Systems. Bus Based UMA. Types of Multiprocessors (MPs) Cache Consistency. Bus Based UMA. Chapter 8, 8. Multiprocessor System Multiprocessor Systems Chapter 8, 8.1 We will look at shared-memory multiprocessors More than one processor sharing the same memory A single CPU can only go so fast Use more than

More information

Multiprocessor Systems. COMP s1

Multiprocessor Systems. COMP s1 Multiprocessor Systems 1 Multiprocessor System We will look at shared-memory multiprocessors More than one processor sharing the same memory A single CPU can only go so fast Use more than one CPU to improve

More information

Erlang. Joe Armstrong

Erlang. Joe Armstrong Erlang Joe Armstrong Though OOP came from many motivations, two were central. The large scale one was to find a better module scheme for complex systems involving hiding of details, and the small scale

More information

DEPARTMENT OF COMPUTER SCIENCE

DEPARTMENT OF COMPUTER SCIENCE Department of Computer Science 1 DEPARTMENT OF COMPUTER SCIENCE Office in Computer Science Building, Room 279 (970) 491-5792 cs.colostate.edu (http://www.cs.colostate.edu) Professor L. Darrell Whitley,

More information

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Introduction to 3110 Prof. Clarkson Fall 2016 Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Welcome! Programming isn t hard Programming well is very hard

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

C++ Threading. Tim Bailey

C++ Threading. Tim Bailey C++ Threading Introduction Very basic introduction to threads I do not discuss a thread API Easy to learn Use, eg., Boost.threads Standard thread API will be available soon The thread API is too low-level

More information

CPSC/ECE 3220 Fall 2017 Exam Give the definition (note: not the roles) for an operating system as stated in the textbook. (2 pts.

CPSC/ECE 3220 Fall 2017 Exam Give the definition (note: not the roles) for an operating system as stated in the textbook. (2 pts. CPSC/ECE 3220 Fall 2017 Exam 1 Name: 1. Give the definition (note: not the roles) for an operating system as stated in the textbook. (2 pts.) Referee / Illusionist / Glue. Circle only one of R, I, or G.

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 1 - Introduction Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages Spring 2014

More information

Concurrent Programming. Introduction

Concurrent Programming. Introduction Concurrent Programming Introduction Team Lecturer: Alejandro Russo Course issues tda382@googlegroups.com https://groups.google.com/forum/#!forum/tda382 Other issues: russo@chalmers.se Assistants Staffan

More information

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science) Lecture 09 Ada to Software Engineering Mr. Mubashir Ali Lecturer (Dept. of dr.mubashirali1@gmail.com 1 Summary of Previous Lecture 1. ALGOL 68 2. COBOL 60 3. PL/1 4. BASIC 5. Early Dynamic Languages 6.

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

Multiprocessor Systems. Chapter 8, 8.1

Multiprocessor Systems. Chapter 8, 8.1 Multiprocessor Systems Chapter 8, 8.1 1 Learning Outcomes An understanding of the structure and limits of multiprocessor hardware. An appreciation of approaches to operating system support for multiprocessor

More information

The HALFWORD HEAP EMULATOR

The HALFWORD HEAP EMULATOR The HALFWORD HEAP EMULATOR EXPLORING A VIRTUAL MACHINE patrik Nyblom, Ericsson ab pan@erlang.org The Beam Virtual Machine Björns/Bogdans Erlang Abstract Machine Has evolved over the years and is a joint

More information

! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented

! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented Course Goal CMSC 330: Organization of Programming Languages Introduction Learn how programming languages work Broaden your language horizons! Different programming languages! Different language features

More information

Huge market -- essentially all high performance databases work this way

Huge market -- essentially all high performance databases work this way 11/5/2017 Lecture 16 -- Parallel & Distributed Databases Parallel/distributed databases: goal provide exactly the same API (SQL) and abstractions (relational tables), but partition data across a bunch

More information

CSE 333 Lecture 1 - Systems programming

CSE 333 Lecture 1 - Systems programming CSE 333 Lecture 1 - Systems programming Hal Perkins Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting

More information

Synchronization. CS61, Lecture 18. Prof. Stephen Chong November 3, 2011

Synchronization. CS61, Lecture 18. Prof. Stephen Chong November 3, 2011 Synchronization CS61, Lecture 18 Prof. Stephen Chong November 3, 2011 Announcements Assignment 5 Tell us your group by Sunday Nov 6 Due Thursday Nov 17 Talks of interest in next two days Towards Predictable,

More information

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University Introduction to Computers and Programming Languages CS 180 Sunil Prabhakar Department of Computer Science Purdue University 1 Objectives This week we will study: The notion of hardware and software Programming

More information

Programming Languages 2nd edition Tucker and Noonan"

Programming Languages 2nd edition Tucker and Noonan Programming Languages 2nd edition Tucker and Noonan" " Chapter 1" Overview" " A good programming language is a conceptual universe for thinking about programming. " " " " " " " " " " " " "A. Perlis" "

More information

CS 11 Haskell track: lecture 1

CS 11 Haskell track: lecture 1 CS 11 Haskell track: lecture 1 This week: Introduction/motivation/pep talk Basics of Haskell Prerequisite Knowledge of basic functional programming e.g. Scheme, Ocaml, Erlang CS 1, CS 4 "permission of

More information

COMP 3430 Robert Guderian

COMP 3430 Robert Guderian Operating Systems COMP 3430 Robert Guderian file:///users/robg/dropbox/teaching/3430-2018/slides/04_threads/index.html?print-pdf#/ 1/58 1 Threads Last week: Processes This week: Lesser processes! file:///users/robg/dropbox/teaching/3430-2018/slides/04_threads/index.html?print-pdf#/

More information

Threads (light weight processes) Chester Rebeiro IIT Madras

Threads (light weight processes) Chester Rebeiro IIT Madras Threads (light weight processes) Chester Rebeiro IIT Madras 1 Processes Separate streams of execution Each process isolated from the other Process state contains Process ID Environment Working directory.

More information

Module 10A Lecture - 20 What is a function? Why use functions Example: power (base, n)

Module 10A Lecture - 20 What is a function? Why use functions Example: power (base, n) Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute of Technology, Madras Module 10A Lecture - 20 What is a function?

More information

Administrivia. Minute Essay From 4/11

Administrivia. Minute Essay From 4/11 Administrivia All homeworks graded. If you missed one, I m willing to accept it for partial credit (provided of course that you haven t looked at a sample solution!) through next Wednesday. I will grade

More information

Com S 541. Programming Languages I

Com S 541. Programming Languages I Programming Languages I Lecturer: TA: Markus Lumpe Department of Computer Science 113 Atanasoff Hall http://www.cs.iastate.edu/~lumpe/coms541.html TR 12:40-2, W 5 Pramod Bhanu Rama Rao Office hours: TR

More information

SPIN, PETERSON AND BAKERY LOCKS

SPIN, PETERSON AND BAKERY LOCKS Concurrent Programs reasoning about their execution proving correctness start by considering execution sequences CS4021/4521 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College

More information

Verified compilers. Guest lecture for Compiler Construction, Spring Magnus Myréen. Chalmers University of Technology

Verified compilers. Guest lecture for Compiler Construction, Spring Magnus Myréen. Chalmers University of Technology Guest lecture for Compiler Construction, Spring 2015 Verified compilers Magnus Myréen Chalmers University of Technology Mentions joint work with Ramana Kumar, Michael Norrish, Scott Owens and many more

More information

The do s and don ts of error handling. Joe Armstrong

The do s and don ts of error handling. Joe Armstrong The do s and don ts of error handling Joe Armstrong A system is fault tolerant if it continues working even if something is wrong Work like this is never finished it s always in-progress Hardware can fail

More information

PROBLEM SOLVING AND PYTHON PROGRAMMING

PROBLEM SOLVING AND PYTHON PROGRAMMING ALGORITHM UNIT-1 It is defined as a sequence of instructions that describe a method for solving a problem. In other words it is a step by step procedure for solving a problem. Properties of Algorithms

More information

Chapter 5: Threads. Outline

Chapter 5: Threads. Outline Department of Electr rical Eng ineering, Chapter 5: Threads 王振傑 (Chen-Chieh Wang) ccwang@mail.ee.ncku.edu.tw ncku edu Feng-Chia Unive ersity Outline Overview Multithreading Models Threading Issues 2 Depar

More information

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Introduction to 3110 Prof. Clarkson Fall 2015 Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Welcome! Programming isn t hard Programming well is very hard

More information

Vulkan: Scaling to Multiple Threads. Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics

Vulkan: Scaling to Multiple Threads. Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics Vulkan: Scaling to Multiple Threads Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics www.imgtec.com Introduction Who am I? Kevin Sun Working at Imagination Technologies Take responsibility

More information

Written by Marco Tusa Wednesday, 23 February :03 - Last Updated Sunday, 18 August :39

Written by Marco Tusa Wednesday, 23 February :03 - Last Updated Sunday, 18 August :39 The Binary Log The binary log in MySQL has two main declared purpose, replication and PTR (point in time recovery), as declared in the MySQL manual. In the MySQL binary log are stored all that statements

More information

Haskell in the corporate environment. Jeff Polakow October 17, 2008

Haskell in the corporate environment. Jeff Polakow October 17, 2008 Haskell in the corporate environment Jeff Polakow October 17, 2008 Talk Overview Haskell and functional programming System description Haskell in the corporate environment Functional Programming in Industry

More information

PyPy - How to not write Virtual Machines for Dynamic Languages

PyPy - How to not write Virtual Machines for Dynamic Languages PyPy - How to not write Virtual Machines for Dynamic Languages Institut für Informatik Heinrich-Heine-Universität Düsseldorf ESUG 2007 Scope This talk is about: implementing dynamic languages (with a focus

More information

RADU POPESCU IMPROVING THE WRITE SCALABILITY OF THE CERNVM FILE SYSTEM WITH ERLANG/OTP

RADU POPESCU IMPROVING THE WRITE SCALABILITY OF THE CERNVM FILE SYSTEM WITH ERLANG/OTP RADU POPESCU IMPROVING THE WRITE SCALABILITY OF THE CERNVM FILE SYSTEM WITH ERLANG/OTP THE EUROPEAN ORGANISATION FOR PARTICLE PHYSICS RESEARCH (CERN) 2 THE LARGE HADRON COLLIDER THE LARGE HADRON COLLIDER

More information

Process Description and Control

Process Description and Control Process Description and Control 1 Process:the concept Process = a program in execution Example processes: OS kernel OS shell Program executing after compilation www-browser Process management by OS : Allocate

More information

Thread Synchronization: Too Much Milk

Thread Synchronization: Too Much Milk Thread Synchronization: Too Much Milk 1 Implementing Critical Sections in Software Hard The following example will demonstrate the difficulty of providing mutual exclusion with memory reads and writes

More information

Erlang and Concurrency. André Pang Rising Sun Research

Erlang and Concurrency. André Pang Rising Sun Research Erlang and Concurrency André Pang Rising Sun Research Games. Unreal 3 engine. Amazing graphics. (Unreal 3 video demo.) 2004/2005? Still state-of-the-art. What does that game have to do with this talk?

More information

Process Concepts. CSC400 - Operating Systems. 3. Process Concepts. J. Sumey

Process Concepts. CSC400 - Operating Systems. 3. Process Concepts. J. Sumey CSC400 - Operating Systems 3. Process Concepts J. Sumey Overview Concurrency Processes & Process States Process Accounting Interrupts & Interrupt Processing Interprocess Communication CSC400 - Process

More information

Job Posting (Aug. 19) ECE 425. ARM7 Block Diagram. ARM Programming. Assembly Language Programming. ARM Architecture 9/7/2017. Microprocessor Systems

Job Posting (Aug. 19) ECE 425. ARM7 Block Diagram. ARM Programming. Assembly Language Programming. ARM Architecture 9/7/2017. Microprocessor Systems Job Posting (Aug. 19) ECE 425 Microprocessor Systems TECHNICAL SKILLS: Use software development tools for microcontrollers. Must have experience with verification test languages such as Vera, Specman,

More information

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher COP4020 ming Languages Compilers and Interpreters Robert van Engelen & Chris Lacher Overview Common compiler and interpreter configurations Virtual machines Integrated development environments Compiler

More information

Advanced Operating Systems (CS 202) Scheduling (1)

Advanced Operating Systems (CS 202) Scheduling (1) Advanced Operating Systems (CS 202) Scheduling (1) Today: CPU Scheduling 2 The Process The process is the OS abstraction for execution It is the unit of execution It is the unit of scheduling It is the

More information

Virtual Memory. Lecture for CPSC 5155 Edward Bosworth, Ph.D. Computer Science Department Columbus State University

Virtual Memory. Lecture for CPSC 5155 Edward Bosworth, Ph.D. Computer Science Department Columbus State University Virtual Memory Lecture for CPSC 5155 Edward Bosworth, Ph.D. Computer Science Department Columbus State University Precise Definition of Virtual Memory Virtual memory is a mechanism for translating logical

More information

Read & Download (PDF Kindle) Modern Multithreading: Implementing, Testing, And Debugging Multithreaded Java And C++/Pthreads/Win32 Programs

Read & Download (PDF Kindle) Modern Multithreading: Implementing, Testing, And Debugging Multithreaded Java And C++/Pthreads/Win32 Programs Read & Download (PDF Kindle) Modern Multithreading: Implementing, Testing, And Debugging Multithreaded Java And C++/Pthreads/Win32 Programs Master the essentials of concurrent programming,including testing

More information

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Introduction to 3110 Prof. Clarkson Fall 2017 Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Welcome! Programming isn t hard Programming well is very hard

More information

Lecture 4: Memory Management & The Programming Interface

Lecture 4: Memory Management & The Programming Interface CS 422/522 Design & Implementation of Operating Systems Lecture 4: Memory Management & The Programming Interface Zhong Shao Dept. of Computer Science Yale University Acknowledgement: some slides are taken

More information

Questions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation. What s in a process? Organizing a Process

Questions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation. What s in a process? Organizing a Process Questions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation Why are threads useful? How does one use POSIX pthreads? Michael Swift 1 2 What s in a process? Organizing a Process A process

More information

Shared memory programming model OpenMP TMA4280 Introduction to Supercomputing

Shared memory programming model OpenMP TMA4280 Introduction to Supercomputing Shared memory programming model OpenMP TMA4280 Introduction to Supercomputing NTNU, IMF February 16. 2018 1 Recap: Distributed memory programming model Parallelism with MPI. An MPI execution is started

More information

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017 ECE 550D Fundamentals of Computer Systems and Engineering Fall 2017 The Operating System (OS) Prof. John Board Duke University Slides are derived from work by Profs. Tyler Bletsch and Andrew Hilton (Duke)

More information

Notes to Instructors Concerning the BLITZ Projects

Notes to Instructors Concerning the BLITZ Projects Overview Notes to Instructors Concerning the BLITZ Projects Harry H. Porter III, Ph.D. Department of Computer Science Portland State University April 14, 2006 Revised: September 17, 2007 The BLITZ System

More information

How Scalable is your SMB?

How Scalable is your SMB? How Scalable is your SMB? Mark Rabinovich Visuality Systems Ltd. What is this all about? Visuality Systems Ltd. provides SMB solutions from 1998. NQE (Embedded) is an implementation of SMB client/server

More information

Background. The Critical-Section Problem Synchronisation Hardware Inefficient Spinning Semaphores Semaphore Examples Scheduling.

Background. The Critical-Section Problem Synchronisation Hardware Inefficient Spinning Semaphores Semaphore Examples Scheduling. Background The Critical-Section Problem Background Race Conditions Solution Criteria to Critical-Section Problem Peterson s (Software) Solution Concurrent access to shared data may result in data inconsistency

More information

Active Server Pages Architecture

Active Server Pages Architecture Active Server Pages Architecture Li Yi South Bank University Contents 1. Introduction... 2 1.1 Host-based databases... 2 1.2 Client/server databases... 2 1.3 Web databases... 3 2. Active Server Pages...

More information

15 Sharing Main Memory Segmentation and Paging

15 Sharing Main Memory Segmentation and Paging Operating Systems 58 15 Sharing Main Memory Segmentation and Paging Readings for this topic: Anderson/Dahlin Chapter 8 9; Siberschatz/Galvin Chapter 8 9 Simple uniprogramming with a single segment per

More information

Chap. 6 Part 3. CIS*3090 Fall Fall 2016 CIS*3090 Parallel Programming 1

Chap. 6 Part 3. CIS*3090 Fall Fall 2016 CIS*3090 Parallel Programming 1 Chap. 6 Part 3 CIS*3090 Fall 2016 Fall 2016 CIS*3090 Parallel Programming 1 OpenMP popular for decade Compiler-based technique Start with plain old C, C++, or Fortran Insert #pragmas into source file You

More information

The case for reactive objects

The case for reactive objects The case for reactive objects Johan Nordlander, Luleå Univ. och Technology (with Mark Jones, Andrew Black, Magnus Carlsson, Dick Kieburtz all (ex) OGI) Links meeting, April 6 1 Links killer apps Web services...

More information

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure CSE 451: Operating Systems Spring 2012 Module 3 Operating System Components and Structure Ed Lazowska lazowska@cs.washington.edu Allen Center 570 The OS sits between application programs and the it mediates

More information

CPSC 426/526. Cloud Computing. Ennan Zhai. Computer Science Department Yale University

CPSC 426/526. Cloud Computing. Ennan Zhai. Computer Science Department Yale University CPSC 426/526 Cloud Computing Ennan Zhai Computer Science Department Yale University Recall: Lec-7 In the lec-7, I talked about: - P2P vs Enterprise control - Firewall - NATs - Software defined network

More information

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle Operating Systems Operating System Structure Lecture 2 Michael O Boyle 1 Overview Architecture impact User operating interaction User vs kernel Syscall Operating System structure Layers Examples 2 Lower-level

More information

Introduction to Nate Foster Spring 2018

Introduction to Nate Foster Spring 2018 Introduction to 3110 Nate Foster Spring 2018 Welcome! Programming isn t hard Programming well is very hard High variance among professionals productivity: 10x or more Studying functional programming will

More information

HDFS Architecture. Gregory Kesden, CSE-291 (Storage Systems) Fall 2017

HDFS Architecture. Gregory Kesden, CSE-291 (Storage Systems) Fall 2017 HDFS Architecture Gregory Kesden, CSE-291 (Storage Systems) Fall 2017 Based Upon: http://hadoop.apache.org/docs/r3.0.0-alpha1/hadoopproject-dist/hadoop-hdfs/hdfsdesign.html Assumptions At scale, hardware

More information

Programming with Shared Memory. Nguyễn Quang Hùng

Programming with Shared Memory. Nguyễn Quang Hùng Programming with Shared Memory Nguyễn Quang Hùng Outline Introduction Shared memory multiprocessors Constructs for specifying parallelism Creating concurrent processes Threads Sharing data Creating shared

More information

Concurrency & Synchronization. COMPSCI210 Recitation 25th Feb 2013 Vamsi Thummala Slides adapted from Landon Cox

Concurrency & Synchronization. COMPSCI210 Recitation 25th Feb 2013 Vamsi Thummala Slides adapted from Landon Cox Concurrency & Synchronization COMPSCI210 Recitation 25th Feb 2013 Vamsi Thummala Slides adapted from Landon Cox Midterm Review http://www.cs.duke.edu/~chase/cps11 0-archive/midterm-210-13s1.pdf Please

More information

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No # 09 Lecture No # 40 This is lecture forty of the course on

More information

1 of 5 3/28/2010 8:01 AM Unit Testing Notes Home Class Info Links Lectures Newsgroup Assignmen [Jump to Writing Clear Tests, What about Private Functions?] Testing The typical approach to testing code

More information

CS240: Programming in C

CS240: Programming in C CS240: Programming in C Lecture 1: Class overview. Cristina Nita-Rotaru Lecture 1/ Fall 2013 1 WELCOME to CS240 Cristina Nita-Rotaru Lecture 1/ Fall 2013 2 240 Team Instructor: Cristina Nita-Rotaru Special

More information

Advanced Operating Systems (CS 202) Scheduling (1) Jan, 23, 2017

Advanced Operating Systems (CS 202) Scheduling (1) Jan, 23, 2017 Advanced Operating Systems (CS 202) Scheduling (1) Jan, 23, 2017 Administrivia Lab has been released You may work in pairs Some more details about how to test your implementation may be added But feel

More information

Programmiersprachen (Programming Languages)

Programmiersprachen (Programming Languages) 2016-05-13 Preface Programmiersprachen (Programming Languages) coordinates: lecturer: web: usable for: requirements: No. 185.208, VU, 3 ECTS Franz Puntigam http://www.complang.tuwien.ac.at/franz/ps.html

More information

Lecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering?

Lecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering? Lecture 1 Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering? Welcome to ENGR 102 Syllabus review Your Time Expectations (in

More information

CSE 332: Data Structures & Parallelism Lecture 17: Shared-Memory Concurrency & Mutual Exclusion. Ruth Anderson Winter 2019

CSE 332: Data Structures & Parallelism Lecture 17: Shared-Memory Concurrency & Mutual Exclusion. Ruth Anderson Winter 2019 CSE 332: Data Structures & Parallelism Lecture 17: Shared-Memory Concurrency & Mutual Exclusion Ruth Anderson Winter 2019 Toward sharing resources (memory) So far, we have been studying parallel algorithms

More information

Embedded Elixir. Elixir Taiwan Meetup July 25, 2016 Jake Morrison

Embedded Elixir. Elixir Taiwan Meetup July 25, 2016 Jake Morrison Embedded Elixir Elixir Taiwan Meetup July 25, 2016 Jake Morrison What is Embedded Programming? Systems that interact with the physical world Resource constrained systems Machines controlled

More information

Virtual Machine Design

Virtual Machine Design Virtual Machine Design Lecture 4: Multithreading and Synchronization Antero Taivalsaari September 2003 Session #2026: J2MEPlatform, Connected Limited Device Configuration (CLDC) Lecture Goals Give an overview

More information

Progress report of "Ruby 3 Concurrency"

Progress report of Ruby 3 Concurrency Progress report of "Ruby 3 Concurrency" Cookpad Inc. Koichi Sasada Ruby X Elixir Conf Taiwan 2018 (2018/04/28) Today s topic Difficulty of Thread programming New concurrent abstraction

More information

Operating System Support

Operating System Support Teaching material based on Distributed Systems: Concepts and Design, Edition 3, Addison-Wesley 2001. Copyright George Coulouris, Jean Dollimore, Tim Kindberg 2001 email: authors@cdk2.net This material

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 3 Thomas Wies New York University Review Last week Names and Bindings Lifetimes and Allocation Garbage Collection Scope Outline Control Flow Sequencing

More information

Parallel Programming Principle and Practice. Lecture 7 Threads programming with TBB. Jin, Hai

Parallel Programming Principle and Practice. Lecture 7 Threads programming with TBB. Jin, Hai Parallel Programming Principle and Practice Lecture 7 Threads programming with TBB Jin, Hai School of Computer Science and Technology Huazhong University of Science and Technology Outline Intel Threading

More information

Operating System. Operating System Overview. Structure of a Computer System. Structure of a Computer System. Structure of a Computer System

Operating System. Operating System Overview. Structure of a Computer System. Structure of a Computer System. Structure of a Computer System Overview Chapter 1.5 1.9 A program that controls execution of applications The resource manager An interface between applications and hardware The extended machine 1 2 Structure of a Computer System Structure

More information

Safety and liveness for critical sections

Safety and liveness for critical sections Safety and liveness for critical sections! At most k threads are concurrently in the critical section A. Safety B. Liveness C. Both! A thread that wants to enter the critical section will eventually succeed

More information