Shmuel Ur Shady Copty Software and Verification Technologies
|
|
- Winifred Lang
- 6 years ago
- Views:
Transcription
1 Multi Threaded Testing with AOP is Easy And it Finds Bugs! Shmuel Ur Shady Copty Software and Verification Technologies IBM Labs in Haifa 2004 IBM Corporation
2 Outline Noise making as a testing technique The ConTest testing tool AspectJ AOP based noise maker Results Other applications Conclusions 2 IBM Labs in Haifa 2004 IBM Corporation
3 A Simple Java Example Function increase() public void increase() { counter++; Although written as a single increment operation, the ++ operator is actually mapped into three JVM instructions [load operand, increment, write-back] 3 IBM Labs in Haifa 2004 IBM Corporation
4 A Simple Java Example - Continued Thread A Thread B Load operand Increment Write-back Context Switch Load operand Increment Write-back counter = 34 4 IBM Labs in Haifa 2004 IBM Corporation
5 A Simple Java Example Noise Makers Thread A Thread B Load operand Increment Context Switch Write-back Context Switch counter = 34 Load operand Increment Write-back Context Switch 5 IBM Labs in Haifa 2004 IBM Corporation
6 ConTest Overview ConTest is composed of the following components An instrumentation engine that Creates hooks for the irritator and for coverage printing Generates coverage models The instrumentation is done at the byte code level An irritator that randomly, or using heuristics, generates new interleaving on-the-fly Seed replay component Coverage component Debugging aids 6 IBM Labs in Haifa 2004 IBM Corporation
7 AspectJ by Example class IDManager{ public int NewID() { return ++_counter; private int _counter; public aspect Example { pointcut IssueID(): call (int IDManager.NewID()); after(): IssueID() { System.out.println( Just gave a new ID ); 7 IBM Labs in Haifa 2004 IBM Corporation
8 A more specific Aspect class IDManager{ public int NewID() { return ++_counter; private int _counter; public aspect Example2 { pointcut ReadCounter(): get(int IDManager._counter); after(): ReadCounter() { System.out.println( read the counter ); 8 IBM Labs in Haifa 2004 IBM Corporation
9 A more general Aspect class IDManager{ public int NewID() { return ++_counter; Your Application private int _counter; public aspect Example4 extends Thread{ pointcut Noise(): public aspect Example3 { (get(* *) set (* *)); pointcut AccessVariable(): (get(* *) set(* *)); after(): Noise() { try { after(): AccessVariable() { yield(); System.out.println( accessed something ); catch (Exception e) {; 9 IBM Labs in Haifa 2004 IBM Corporation
10 Woven bytecode Load operand Increment Write-back Load operand Context Switch Increment Write-back Context Switch 10 IBM Labs in Haifa 2004 IBM Corporation
11 An AOP Testing Tool public aspect SleepNoise extends Thread{ private static Random rand = new Random(); pointcut noisevictem(): ((get(* *) set (* *))&& within(!sleepnoise)); after(): noisevictem() { try{// noise if (rand.nextint(100) == 1){ // activation sleep(rand.nextint(50)); // type catch (Exception e) {; 11 IBM Labs in Haifa 2004 IBM Corporation
12 Experiment Several programs with documented bugs BubbleSort Assumed threads will finish in time and didn t synchronize BubbleSort2 Programmer sends new threads to sleep to initialize his data structure IDManager non-atomic update of an ID counter DoubleLock Deadlock caused by different order of locking 12 IBM Labs in Haifa 2004 IBM Corporation
13 Experiment - results 12 lines of AspectJ code 13 IBM Labs in Haifa 2004 IBM Corporation
14 Contest Instrumentation, AspectJ Falling Short? For Testing gets/sets for variables Concurrent related functions (sleep, yield, wait, ) Synchronization blocks In addition, for coverage Basic blocks Method calls 14 IBM Labs in Haifa 2004 IBM Corporation
15 Tampering with Timeouts public aspect SleepMutator extends Thread{ pointcut noisevictem(long i): call(void sleep(long)) && args(i) && within(!sleepmutator); private static Random rand = new Random(); void around(long i): noisevictem(i) { try{ long newsleeptime = rand.nextint((int)i*3); // [0,3*sleep] if (rand.nextint(5) == 1) proceed(newsleeptime); ; catch (Exception e) { 15 IBM Labs in Haifa 2004 IBM Corporation
16 Tampering with UDP public aspect UDP extends DatagramSocket pointcut UDPNoise(DatagramPacket i): call(void send(datagrampacket)) && args(i) && within(!udp); ; private static Random rand = new Random(); void around(datagrampacket i): UDPNoise (i) { if (rand.nextint(5) == 1) proceed(i); 16 IBM Labs in Haifa 2004 IBM Corporation
17 Coverage ConTest supports Method coverage Branch coverage Concurrent point coverage Interfered location pairs coverage Synchronization coverage 100% coverage? A new feature to AspectJ was added during our work - ShowWeaveInfo 17 IBM Labs in Haifa 2004 IBM Corporation
18 Concluding Remarks AOP is suitable for multi threaded testing Finds bugs, extremely easy AspectJ as an open source instrumentor If something is missing it is easy to add Detailed study of implementing ConTest features in the paper Source code is available on our website 18 IBM Labs in Haifa 2004 IBM Corporation
19 19 IBM Labs in Haifa 2004 IBM Corporation
20 20 IBM Labs in Haifa 2004 IBM Corporation
Fidgeting Till The Point Of No Return
Fidgeting Till The Point Of No Return Marina Biberstein Eitan Farchi Shmuel Ur IBM Labs in Haifa Table of contents Background: problems and existing solutions Fidgeting: why and how Summary 2 A sample
More informationReachability testing for concurrent programs. Yu Lei and Richard Carver Presented by Thuan Huynh
Reachability testing for concurrent programs Yu Lei and Richard Carver Presented by Thuan Huynh Introduction Some existing tools Reachability testing Concepts Algorithm Implementation Optimizations Results
More informationSlides by Y. Nir-Buchbinder, adapted by O. Agmon Ben-Yehuda 1/30
Application of Synchronization Coverage Arkady Bron, Eitan Farchi, Yonit Magid, Yarden Nir-Buchbinder, Shmuel Ur PPoPP 2005 Presented in the spring 2011 Seminar on Advanced Topics in Concurrent Programming
More informationComputation Abstractions. Processes vs. Threads. So, What Is a Thread? CMSC 433 Programming Language Technologies and Paradigms Spring 2007
CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Threads and Synchronization May 8, 2007 Computation Abstractions t1 t1 t4 t2 t1 t2 t5 t3 p1 p2 p3 p4 CPU 1 CPU 2 A computer Processes
More informationConcurrency in Java Prof. Stephen A. Edwards
Concurrency in Java Prof. Stephen A. Edwards The Java Language Developed by James Gosling et al. at Sun Microsystems in the early 1990s Originally called Oak, first intended application was as an OS for
More informationCooperari A tool for cooperative testing of multithreaded Java programs
Cooperari A tool for cooperative testing of multithreaded Java programs Eduardo R. B. Marques, Francisco Martins, Miguel Simões! LASIGE/Departamento de Informática Faculdade de Ciências da Universidade
More informationAutomatic Simulation of Network Problems in UDP-Based Java Programs
Automatic Simulation of Network Problems in UDP-Based Java Programs Eitan Farchi IBM Haifa Research Lab, farchi@il.ibm.com Yoel Krasny IBM Haifa Research Lab, yoelk@il.ibm.com Yarden Nir IBM Haifa Research
More informationCSCD 330 Network Programming
CSCD 330 Network Programming Lecture 12 More Client-Server Programming Winter 2019 Reading: References at end of Lecture 1 Introduction So far, Looked at client-server programs with Java Sockets TCP and
More informationTesting and Debugging Concurrent Software Challenges and Solutions. Shmuel Ur
Testing and Debugging Concurrent Software Challenges and Solutions Shmuel Ur Eliminating Defects from Concurrent Software Fact Concurrency is pervasive Infrastructures Middleware Desktop Embedded software
More informationShared Objects & Mutual Exclusion
Feb. 08, 2012 Concurrent Execution Concepts Process interference Mutual exclusion Models Model checking for interference Modeling mutual exclusion Practice Multithreaded Java programs Thread interference
More informationProblems with Concurrency. February 19, 2014
with Concurrency February 19, 2014 s with concurrency interleavings race conditions dead GUI source of s non-determinism deterministic execution model 2 / 30 General ideas Shared variable Access interleavings
More informationCSCD 330 Network Programming
CSCD 330 Network Programming Lecture 12 More Client-Server Programming Winter 2016 Reading: References at end of Lecture 1 Introduction So far, Looked at client-server programs with Java Sockets TCP and
More informationDeterministically Executing Concurrent Programs for Testing and Debugging
Deterministically Executing Concurrent Programs for Testing and Debugging Steve MacDonald and Jun Chen David R. Cheriton School of Computer Science University of Waterloo, Waterloo, Ontario, Canada {stevem,
More informationModel Requirements and JAVA Programs MVP 2 1
Model Requirements and JAVA Programs MVP 2 1 Traditional Software The Waterfall Model Problem Area Development Analysis REVIEWS Design Implementation Costly wrt time and money. Errors are found too late
More informationWeek 7. Concurrent Programming: Thread Synchronization. CS 180 Sunil Prabhakar Department of Computer Science Purdue University
Week 7 Concurrent Programming: Thread Synchronization CS 180 Sunil Prabhakar Department of Computer Science Purdue University Announcements Exam 1 tonight 6:30 pm - 7:30 pm MTHW 210 2 Outcomes Understand
More informationSynchronization in Concurrent Programming. Amit Gupta
Synchronization in Concurrent Programming Amit Gupta Announcements Project 1 grades are out on blackboard. Detailed Grade sheets to be distributed after class. Project 2 grades should be out by next Thursday.
More informationAn AspectJ-enabled Eclipse Runtime Engine - Demonstration at AOSD 04 - Martin Lippert
An AspectJ-enabled Eclipse Runtime Engine - Demonstration at AOSD 04 - Martin Lippert lippert@acm.org www.martinlippert.com Motivation Use Eclipse 3.0 RCP to develop enterprise applications Use AspectJ
More informationConcurrent Computing CSCI 201 Principles of Software Development
Concurrent Computing CSCI 201 Principles of Software Development Jeffrey Miller, Ph.D. jeffrey.miller@usc.edu Outline Threads Multi-Threaded Code CPU Scheduling Program USC CSCI 201L Thread Overview Looking
More informationMonitoring and Managing Computer Resource Usage on OSGi Frameworks
Monitoring and Managing Computer Resource Usage on OSGi Frameworks Ikuo YAMASAKI Research Engineer NTT Cyber Solution Laboratories Background: Service Aggregation Platform Operation Center and Home Service
More informationMulti-threaded programming in Java
Multi-threaded programming in Java Java allows program to specify multiple threads of execution Provides instructions to ensure mutual exclusion, and selective blocking/unblocking of threads What is a
More informationJava PathFinder JPF 2 Second Generation of Java Model Checker
Java PathFinder JPF 2 Second Generation of Java Model Checker Guenther Brand Mat. Nr. 9430535 27. 06. 2003 Abstract This essay is based on the papers Java PathFinder, Second Generation of Java Model Checker
More informationShared Mutable State SWEN-220
Shared Mutable State SWEN-220 The Ultimate Culprit - Shared, Mutable State Most of your development has been in imperative languages. The fundamental operation is assignment to change state. Assignable
More informationProblems with Concurrency
with Concurrency February 14, 2012 1 / 27 s with concurrency race conditions deadlocks GUI source of s non-determinism deterministic execution model interleavings 2 / 27 General ideas Shared variable Shared
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More informationCMSC 132: Object-Oriented Programming II. Threads in Java
CMSC 132: Object-Oriented Programming II Threads in Java 1 Problem Multiple tasks for computer Draw & display images on screen Check keyboard & mouse input Send & receive data on network Read & write files
More informationCOURSE 11 PROGRAMMING III OOP. JAVA LANGUAGE
COURSE 11 PROGRAMMING III OOP. JAVA LANGUAGE PREVIOUS COURSE CONTENT Input/Output Streams Text Files Byte Files RandomAcessFile Exceptions Serialization NIO COURSE CONTENT Threads Threads lifecycle Thread
More informationSynchronized Methods of Old Versions of Java
Administrivia Assignment #4 is out Due Thursday April 8, 10:00pm no late assignments will be accepted Sign up in labs next week for a demo time In case you hadn t noticed Classes end Thursday April 15
More informationCMSC 433 Programming Language Technologies and Paradigms. Concurrency
CMSC 433 Programming Language Technologies and Paradigms Concurrency What is Concurrency? Simple definition Sequential programs have one thread of control Concurrent programs have many Concurrency vs.
More informationTake Control with AspectJ
Hermod Opstvedt Chief Architect DnB NOR ITUD Common components Hermod Opstvedt Slide 1 What is AspectJ? Aspect-oriented programming (AOP) is a technique for improving separation of concerns. Crosscutting
More informationInstrumentation of Java Bytecode for Runtime Analysis
Instrumentation of Java Bytecode for Runtime Analysis Allen Goldberg and Klaus Havelund Kestrel Technology, NASA Ames Research Center Moffett Field, MS 269-3, California USA Phone: 650-604-4858, Email:
More informationJava PathFinder. Pavel Parízek. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics
Java PathFinder http://d3s.mff.cuni.cz Pavel Parízek CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Java PathFinder (JPF) Verification framework for Java programs Explicit state space
More informationCOMP31212: Concurrency A Review of Java Concurrency. Giles Reger
COMP31212: Concurrency A Review of Java Concurrency Giles Reger Outline What are Java Threads? In Java, concurrency is achieved by Threads A Java Thread object is just an object on the heap, like any other
More informationCS 351 Design of Large Programs Threads and Concurrency
CS 351 Design of Large Programs Threads and Concurrency Brooke Chenoweth University of New Mexico Spring 2018 Concurrency in Java Java has basic concurrency support built into the language. Also has high-level
More informationConcurrency COMS W4115. Prof. Stephen A. Edwards Spring 2002 Columbia University Department of Computer Science
Concurrency COMS W4115 Prof. Stephen A. Edwards Spring 2002 Columbia University Department of Computer Science Concurrency Multiple, simultaneous execution contexts. Want to walk and chew gum at the same
More informationImplementing Coroutines. Faking Coroutines in Java
Concurrency Coroutines Concurrency COMS W4115 Prof. Stephen A. Edwards Spring 2002 Columbia University Department of Computer Science Multiple, simultaneous execution contexts. Want to walk and chew gum
More informationProducing Production Quality Software. Lecture 12: Concurrent and Distributed Programming Prof. Arthur P. Goldberg Fall, 2004
Producing Production Quality Software Lecture 12: Concurrent and Distributed Programming Prof. Arthur P. Goldberg Fall, 2004 Topics Models of concurrency Concurrency in Java 2 Why Use Concurrency? Enable
More informationLecture 8: September 30
CMPSCI 377 Operating Systems Fall 2013 Lecture 8: September 30 Lecturer: Prashant Shenoy Scribe: Armand Halbert 8.1 Semaphores A semaphore is a more generalized form of a lock that can be used to regulate
More informationDefining a Catalog of Programming Anti-Patterns for Concurrent Java
Defining a Catalog of Programming Anti-Patterns for Concurrent Java Jeremy S. Bradbury, Kevin Jalbert Software Quality Research Group Faculty of Science (Computer Science) University of Ontario Institute
More informationSoftware Theory and Practice Lab STAP Shanghai Jiao Tong University
Jianjun Zhao Joint work with my students Sai Zhang, Zhongxian Gu, Yu Lin Software Theory and Practice Lab STAP Shanghai Jiao Tong University http://stap.sjtu.edu.cn/ 2009 12 12 Verification and Analysis
More informationAutomatically Repairing Concurrency Bugs with ARC MUSEPAT 2013 Saint Petersburg, Russia
Automatically Repairing Concurrency Bugs with ARC MUSEPAT 2013 Saint Petersburg, Russia David Kelk, Kevin Jalbert, Jeremy S. Bradbury Faculty of Science (Computer Science) University of Ontario Institute
More informationCS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2004
CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2004 Lecture 9: Readers-Writers and Language Support for Synchronization 9.1.2 Constraints 1. Readers can access database
More informationComplex, concurrent software. Precision (no false positives) Find real bugs in real executions
Harry Xu May 2012 Complex, concurrent software Precision (no false positives) Find real bugs in real executions Need to modify JVM (e.g., object layout, GC, or ISA-level code) Need to demonstrate realism
More informationProgramming in Parallel COMP755
Programming in Parallel COMP755 All games have morals; and the game of Snakes and Ladders captures, as no other activity can hope to do, the eternal truth that for every ladder you hope to climb, a snake
More informationWhat is a thread anyway?
Concurrency in Java What is a thread anyway? Smallest sequence of instructions that can be managed independently by a scheduler There can be multiple threads within a process Threads can execute concurrently
More informationContents. 6-1 Copyright (c) N. Afshartous
Contents 1. Classes and Objects 2. Inheritance 3. Interfaces 4. Exceptions and Error Handling 5. Intro to Concurrency 6. Concurrency in Java 7. Graphics and Animation 8. Applets 6-1 Copyright (c) 1999-2004
More informationOverview. Processes vs. Threads. Computation Abstractions. CMSC 433, Fall Michael Hicks 1
CMSC 433 Programming Language Technologies and Paradigms Spring 2003 Threads and Synchronization April 1, 2003 Overview What are threads? Thread scheduling, data races, and synchronization Thread mechanisms
More informationThreads and Locks. CSCI 5828: Foundations of Software Engineering Lecture 09 09/22/2015
Threads and Locks CSCI 5828: Foundations of Software Engineering Lecture 09 09/22/2015 1 Goals Cover the material presented in Chapter 2, Day 1 of our concurrency textbook Creating threads Locks Memory
More informationLanguage support for AOP
Language support for AOP AspectJ and beyond Mario Südholt www.emn.fr/sudholt INRIA and École des Mines de Nantes OBASCO project, Nantes, France Language support for AOP ; Mario Südholt; INRIA/EMN; March
More informationOS Customization versus OS Code Modularity
OS Customization versus OS Code Modularity ECE 344 Fall 2006 Hans-Arno Jacobsen Thanks to Michael Gong, Vinod Muthusamy, and Charles Zhang for helping to find interesting examples et al. Possibly a Debugging
More informationMultithreading Pearson Education, Inc. All rights reserved.
1 23 Multithreading 2 23.1 Introduction Multithreading Provides application with multiple threads of execution Allows programs to perform tasks concurrently Often requires programmer to synchronize threads
More informationMultiThreading. Object Orientated Programming in Java. Benjamin Kenwright
MultiThreading Object Orientated Programming in Java Benjamin Kenwright Outline Review Essential Java Multithreading Examples Today s Practical Review/Discussion Question Does the following code compile?
More informationNetwork Programming COSC 1176/1179. Lecture 6 Concurrent Programming (2)
Network Programming COSC 1176/1179 Lecture 6 Concurrent Programming (2) Threads Recall from last week Every line of Java code is part of a thread There can be one or more threads running in parallel Each
More informationTesting Concurrent Java Programs Using Randomized Scheduling
Testing Concurrent Java Programs Using Randomized Scheduling Scott D. Stoller Computer Science Department State University of New York at Stony Brook http://www.cs.sunysb.edu/ stoller/ 1 Goal Pillars of
More informationRuntime Atomicity Analysis of Multi-threaded Programs
Runtime Atomicity Analysis of Multi-threaded Programs Focus is on the paper: Atomizer: A Dynamic Atomicity Checker for Multithreaded Programs by C. Flanagan and S. Freund presented by Sebastian Burckhardt
More informationShared-Memory and Multithread Programming
Shared-Memory and Multithread Programming Pruet Boonma pruet@eng.cmu.ac.th Department of Computer Engineering Faculty of Engineering, Chiang Mai University Based on a material by: Bryan Carpenter Pervasive
More informationCS11 Java. Fall Lecture 7
CS11 Java Fall 2006-2007 Lecture 7 Today s Topics All about Java Threads Some Lab 7 tips Java Threading Recap A program can use multiple threads to do several things at once A thread can have local (non-shared)
More informationCalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1
CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1 1 University of California, Berkeley, USA {pallavi,parkcs,ksen}@eecs.berkeley.edu
More informationAgenda. Highlight issues with multi threaded programming Introduce thread synchronization primitives Introduce thread safe collections
Thread Safety Agenda Highlight issues with multi threaded programming Introduce thread synchronization primitives Introduce thread safe collections 2 2 Need for Synchronization Creating threads is easy
More informationJML and Aspects: The Benefits of
JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ Henrique Rebêlo Sérgio Soares Ricardo Lima Paulo Borba Márcio Cornélio Java Modeling Language Formal specification language for
More information10/17/2011. Cooperating Processes. Synchronization 1. Example: Producer Consumer (3) Example
Cooperating Processes Synchronization 1 Chapter 6.1 4 processes share something (devices such as terminal, keyboard, mouse, etc., or data structures) and can affect each other non deterministic Not exactly
More informationConcurrency. Fundamentals of Computer Science
Concurrency http://csunplugged.org/routing-and-deadlock Fundamentals of Computer Science Outline Multi-threaded programs Multiple simultaneous paths of execution Seemingly at once (single core) Actually
More informationi219 Software Design Methodology 11. Software model checking Kazuhiro Ogata (JAIST) Outline of lecture
i219 Software Design Methodology 11. Software model checking Kazuhiro Ogata (JAIST) Outline of lecture 2 Concurrency Model checking Java Pathfinder (JPF) Detecting race condition Bounded buffer problem
More informationSynchronization COMPSCI 386
Synchronization COMPSCI 386 Obvious? // push an item onto the stack while (top == SIZE) ; stack[top++] = item; // pop an item off the stack while (top == 0) ; item = stack[top--]; PRODUCER CONSUMER Suppose
More informationMidterm Exam. CS169 Fall November 17, 2009 LOGIN: NAME: SID: Problem Max Points Points TOTAL 100
Midterm Exam CS169 Fall 2009 November 17, 2009 Please read all instructions (including these) carefully. Write your name, login, and SID. There are 12 pages in this exam and 6 questions, each with multiple
More informationJava s Implementation of Concurrency, and how to use it in our applications.
Java s Implementation of Concurrency, and how to use it in our applications. 1 An application running on a single CPU often appears to perform many tasks at the same time. For example, a streaming audio/video
More informationJVM Independent Replay in Java
JVM Independent Replay in Java RV 04 April 3, 2004, Barcelona, Spain Viktor Schuppan, Marcel Baur, Armin Biere Computer Systems Institute, ETH Zürich http://www.inf.ethz.ch/ schuppan/ Introduction 1 How
More informationDataCollider: Effective Data-Race Detection for the Kernel
DataCollider: Effective Data-Race Detection for the Kernel John Erickson, Madanlal Musuvathi, Sebastian Burckhardt, Kirk Olynyk Microsoft Windows and Microsoft Research {jerick, madanm, sburckha, kirko}@microsoft.com
More information1. Introduction to Concurrent Programming
1. Introduction to Concurrent Programming A concurrent program contains two or more threads that execute concurrently and work together to perform some task. When a program is executed, the operating system
More informationwait with priority An enhanced version of the wait operation accepts an optional priority argument:
wait with priority An enhanced version of the wait operation accepts an optional priority argument: syntax: .wait the smaller the value of the parameter, the highest the priority
More informationBugdel: An Aspect-Oriented Debugging System
Bugdel: An Aspect-Oriented Debugging System Yoshiyuki Usui and Shigeru Chiba Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology 2-12-1-W8-50 Ohkayama, Meguro-ku Tokyo 152-8552,
More informationOverview of Java Threads (Part 2)
Overview of Java Threads (Part 2) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Learning
More informationMultithreaded Programming Part II. CSE 219 Stony Brook University, Department of Computer Science
Multithreaded Programming Part II CSE 219 Stony Brook University, Thread Scheduling In a Java application, main is a thread on its own Once multiple threads are made Runnable the thread scheduler of the
More informationAOP 101: Intro to Aspect Oriented Programming. Ernest Hill
AOP 101: Intro to Aspect Oriented Programming ernesthill@earthlink.net AOP 101-1 AOP 101: Aspect Oriented Programming Goal of Software History of Programming Methodology Remaining Problem AOP to the Rescue
More informationINF 212 ANALYSIS OF PROG. LANGS CONCURRENCY. Instructors: Crista Lopes Copyright Instructors.
INF 212 ANALYSIS OF PROG. LANGS CONCURRENCY Instructors: Crista Lopes Copyright Instructors. Basics Concurrent Programming More than one thing at a time Examples: Network server handling hundreds of clients
More informationCS360 Lecture 10 Multithreading
Tuesday, March 9, 2004 Reading Exception Handling: Chapter 15 Multithreading: Chapter 16 CS360 Lecture 10 Multithreading Declaring New Exception Types Most programmers use existing exception classes from
More informationJava Programming Lecture 23
Java Programming Lecture 23 Alice E. Fischer April 19, 2012 Alice E. Fischer () Java Programming - L23... 1/20 April 19, 2012 1 / 20 Outline 1 Thread Concepts Definition and Purpose 2 Java Threads Creation
More informationUsing and Extending AspectJ for Separating Concerns in Parallel Java Code
Using and Extending AspectJ for Separating Concerns in Parallel Java Code Bruno Harbulot and John Gurd The University of Manchester POOSC 2005 Glasgow, July 2005 1/26 Presentation Outline Problem and Approach
More informationThe Java Memory Model
Jeremy Manson 1, William Pugh 1, and Sarita Adve 2 1 University of Maryland 2 University of Illinois at Urbana-Champaign Presented by John Fisher-Ogden November 22, 2005 Outline Introduction Sequential
More informationRandomized Active Atomicity Violation Detection in Concurrent Programs
Randomized Active Atomicity Violation Detection in Concurrent Programs Chang-Seo Park EECS Department, UC Berkeley, CA, USA. parkcs@cs.berkeley.edu Koushik Sen EECS Department, UC Berkeley, CA, USA. ksen@cs.berkeley.edu
More informationBenchmark and Framework for Encouraging Research on Multi-Threaded Testing Tools
Benchmark and Framework for Encouraging Research on Multi-Threaded Testing Tools Klaus Havelund Kestrel Technology NASA Ames Research Center Moffett Field, CA 94035-1000 USA havelund@email.arc.nasa.gov
More informationDealing with Issues for Interprocess Communication
Dealing with Issues for Interprocess Communication Ref Section 2.3 Tanenbaum 7.1 Overview Processes frequently need to communicate with other processes. In a shell pipe the o/p of one process is passed
More informationP17 System Testing Monday, September 24, 2007
IBM Software Group P17 System Testing Monday, September 24, 2007 Module 8 : IBM Rational Testing Solutions Marty Swafford IBM Rational Software IBM Certified Solution Designer - Rational Manual Tester,
More informationW4118: concurrency error. Instructor: Junfeng Yang
W4118: concurrency error Instructor: Junfeng Yang Goals Identify patterns of concurrency errors (so you can avoid them in your code) Learn techniques to detect concurrency errors (so you can apply these
More informationCOMPSCI 230 Threading Week8. Figure 1 Thread status diagram [http://www.programcreek.com/2009/03/thread-status/]
COMPSCI 230 Threading Week8 Figure 1 Thread status diagram [http://www.programcreek.com/2009/03/thread-status/] Synchronization Lock DeadLock Why do we need Synchronization in Java? If your code is executing
More informationSynchronization II: EventBarrier, Monitor, and a Semaphore. COMPSCI210 Recitation 4th Mar 2013 Vamsi Thummala
Synchronization II: EventBarrier, Monitor, and a Semaphore COMPSCI210 Recitation 4th Mar 2013 Vamsi Thummala Check point: Mission in progress Master synchronization techniques Develop best practices for
More informationComputer Aided Verification 2015 The SPIN model checker
Computer Aided Verification 2015 The SPIN model checker Grigory Fedyukovich Universita della Svizzera Italiana March 11, 2015 Material borrowed from Roberto Bruttomesso Outline 1 Introduction 2 PROcess
More informationIntroduction to Java Threads
Object-Oriented Programming Introduction to Java Threads RIT CS 1 "Concurrent" Execution Here s what could happen when you run this Java program and launch 3 instances on a single CPU architecture. The
More informationAdvances in Noise-based Testing of Concurrent Software
SOFTWARE TESTING, VERIFICATION AND RELIABILITY Softw. Test. Verif. Reliab. 2013; 00:1 38 Published online in Wiley InterScience (www.interscience.wiley.com). Advances in Noise-based Testing of Concurrent
More informationProject. Threads. Plan for today. Before we begin. Thread. Thread. Minimum submission. Synchronization TSP. Thread synchronization. Any questions?
Project Threads Synchronization Minimum submission Deadline extended to tonight at midnight Early submitters 10 point bonus TSP Still due on Tuesday! Before we begin Plan for today Thread synchronization
More informationSynchronization. Announcements. Concurrent Programs. Race Conditions. Race Conditions 11/9/17. Purpose of this lecture. A8 released today, Due: 11/21
Announcements Synchronization A8 released today, Due: 11/21 Late deadline is after Thanksgiving You can use your A6/A7 solutions or ours A7 correctness scores have been posted Next week's recitation will
More informationOperating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst
Operating Systems CMPSCI 377 Spring 2017 Mark Corner University of Massachusetts Amherst What is a Monitor? Ties data and the synchronization operations together Monitors guarantee mutual exclusion, i.e.,
More informationThreads Questions Important Questions
Threads Questions Important Questions https://dzone.com/articles/threads-top-80-interview https://www.journaldev.com/1162/java-multithreading-concurrency-interviewquestions-answers https://www.javatpoint.com/java-multithreading-interview-questions
More informationPrinciples of Software Construction: Concurrency, Part 1
Principles of Software Construction: Concurrency, Part 1 Josh Bloch Charlie Garrod School of Computer Science 1 Administrivia Midterm review tomorrow 7-9pm, HH B103 Midterm on Thursday HW 5 team signup
More informationUsing AOP for Detailed Runtime Monitoring Instrumentation
Using AOP for Detailed Runtime Monitoring Instrumentation Jonathan E Cook, joncook@nmsu.edu Amjad Nusayr, anusayr@cs.nmsu.edu The 2009 Workshop on Dynamic Analysis New Mexico State University Runtime Monitoring
More informationF. Tip and M. Weintraub CONCURRENCY
F. Tip and M. Weintraub CONCURRENCY SHARED-MEMORY CONCURRENCY threads execute concurrently threads communicate values via shared memory synchronization using locks 2 PITFALLS data races atomicity violations
More informationIntro to Threads. Two approaches to concurrency. Threaded multifinger: - Asynchronous I/O (lab) - Threads (today s lecture)
Intro to Threads Two approaches to concurrency - Asynchronous I/O (lab) - Threads (today s lecture) Threaded multifinger: - Run many copies of finger simultaneously for (int i = 1; i < argc; i++) thread_create
More information1) Discuss the mutual exclusion mechanism that you choose as implemented in the chosen language and the associated basic syntax
Lab report Project 3 Mihai Ene I have implemented the solution in Java. I have leveraged its threading mechanisms and concurrent API (i.e. concurrent package) in order to achieve the required functionality
More informationCISC 4700 L01 Network & Client-Server Programming Spring Cowell Chapter 15: Writing Threaded Applications
CISC 4700 L01 Network & Client-Server Programming Spring 2016 Cowell Chapter 15: Writing Threaded Applications Idea: application does simultaneous activities. Example: web browsers download text and graphics
More informationComputation Abstractions. CMSC 330: Organization of Programming Languages. So, What Is a Thread? Processes vs. Threads. A computer.
CMSC 330: Organization of Programming Languages Threads Computation Abstractions t1 t2 t1 t3 t2 t1 p1 p2 p3 p4 CPU 1 CPU 2 A computer t4 t5 Processes (e.g., JVM s) Threads CMSC 330 2 Processes vs. Threads
More informationFaculty of Computers & Information Computer Science Department
Cairo University Faculty of Computers & Information Computer Science Department Theoretical Part 1. Introduction to Critical Section Problem Critical section is a segment of code, in which the process
More information