CSC 543 Multiprocessing & Concurrent Programming, Fall 2016
|
|
- Edgar McGee
- 5 years ago
- Views:
Transcription
1 CSC 543 Multiprocessing & Concurrent Programming, Fall 2016 Dr. Dale E. Parson, Midterm Exam Project, Assorted Thread Synchronization Problems This assignment is due by 11:59 PM on Wednesday November 2 via make turnitin. Perform the following steps to set up this project and to get my handout. Start out in your login directory on csit (a.k.a. acad). cd $HOME/multip cp ~parson/multip/prisonerdmidterm2016.problem.zip prisonerdmidterm2016.problem.zip Then log into ONE of the following machines via the ssh command from csit. ssh hermione ssh dumbledore ssh luna ssh harry My advice is to do your development and testing on one of the Linux machines the per-context speed is greater and then do additional testing on harry. Always run make test on one of these machines (gmake test on harry) before running make turnitin on a Linux machine to ensure that last-minute edits or file transfers have not created problems. After logging into one of the above machines, do the following. cd./multip unzip prisonerdmidterm2016.problem.zip cd./prisonerdmidterm2016 gmake test_atomic test_semaphore Those two tests should pass. They use these source files from assignment 2. PrisonerTest.java Tables.java PlayerAtomic.java PlayerSemaphore.java # NO CHANGES NEEDED FOR EXAM # CHANGES NEEDED FOR EXAM # SAME AS PlayerExplicit.java, CHANGES NEEDED # SAME AS PlayerExplicit.java, CHANGES NEEDED 1. Tables.java is back to the starting point for assignment 2, i.e., it is not thread safe or immutable because it exposes several java.util.hashmap objects in the penalty field to multithreaded access. Here are the STUDENT instructions from within Tables.java. * STUDENT: MIDTERM: * This is my starting point for assignment 2's Tables.java. * It uses non-thread-safe java.util.hashmap for its * Map objects. You must continue to use java.util.hashmap * -- DO NOT CHANGE java.util.hashmap IN ANY WAY -- * but you must make this class thread safe for multi-threaded * access using some other means. ADD A COMMENT HERE EXPLAINING * YOUR SOLUTION (You can use any package as you see fit * within this source file.): page 1
2 2. PlayerAtomic.java has identical code to my solution PlayerExplicit.java that uses an explicit Reentrant lock and condition variable. Only the class name has changed. It works correctly. However, you must modify it as explained in its STUDENT comments: * PlayerAtomic plays the Iterated Prisoner's Dilemma with its * partner using an explicit lock & condition variable which a * STUDENT must change to using one or more object or objects from one or more classes * in package java.util.concurrent.atomic. THERE MUST BE NO OBJECTS * FROM CLASSES IN PACKAGE java.util.concurrent.locks IN THIS CLASS, * AND THERE MUST BE NO USE OF IMPLICIT OR EXPLICIT LOCKS OR * CONDITION VARIABLES. STUDENTS MUST MAKE THIS WORK USING ATOMICS. After you replace all uses of the explicit lock and condition variable with one or more atomic objects from package java.util.concurrent.atomic, gmake test_atomic should work correctly, without diffs or hanging. 3. PlayerSemaphore.java has identical code to my solution PlayerExplicit.java that uses an explicit Reentrant lock and condition variable. Only the class name has changed. It works correctly. However, you must modify it as explained in its STUDENT comments: * PlayerSemaphore plays the Iterated Prisoner's Dilemma with its * partner using an explicit lock & condition variable which a * STUDENT must change to using one or more objects from class * java.util.concurrent.semaphore. * THERE MUST BE NO OBJECTS FROM CLASSES IN PACKAGE * java.util.concurrent.atomic IN THIS CLASS, * AND THERE MUST BE NO USE OF IMPLICIT OR EXPLICIT LOCKS OR * CONDITION VARIABLES. STUDENTS MUST MAKE THIS WORK USING ONE OR * MORE SEMAPHORE OBJECTS. After you replace all uses of the explicit lock and condition variable with one or more Semaphore objects from package java.util.concurrent, gmake test_semaphore should work correctly, without diffs or hanging. 4. This part of the assignment, derived from assignment 1, relates to the following source files, and can be tested by using make test_pipeline. BigDecimalPipelineBuilder.java PipelineStage.java PipeSourceRandom.java PipeStageMath.java PipeSinkFile.java The last three files in bold are the files that you might have to change. Instructions are in file testscript, which you must NOT change. # STUDENT ASSIGNMENT FOR MIDTERM "make test_pipeline" portion: # The first "true true" test run below works OK -- It is multi-threaded # and blocking. The second test that uses non-blocking multi-threading hangs. # Your assignment is to analyze why the second test line hangs, and then # to change a SUBSET of the non-blocking calls WITHIN THE SCOPE OF THE page 2
3 # if (inputmidtermq!= null) { # AND/OR # if (outputmidtermq!= null) { # in the three pipeline classes PipeSinkFile.java, # PipeSourceRandom.java, and/or PipeStageMath.java, to use # blocking Queue calls. At least one Queue call within these "if" blocks # must be non-blocking, and at least one call must be blocking. # Write within a comment in the files in which you make changes, # 1. WHY USING ALL-NON-BLOCKING CALLS HANGS, and also # 2. WHY YOUR MIX OF BLOCKING AND NON-BLOCKING CALLS WORKS CORRECTLY. runatest true true java.util.concurrent.synchronousqueue runatest true false java.util.concurrent.synchronousqueue Here are the initialization statements for inputmidtermq and outputmidtermq in the files in which they appear: // The next statement says that if inq is in fact a // blocking queue, then set inputmidtermq to that, // else to null. BlockingQueue<BigDecimal []> inputmidtermq = (inq instanceof BlockingQueue)? ((BlockingQueue<BigDecimal []>) inq) : null ; // The next statement says that if ouq is in fact a // blocking queue, then set outputmidtermq to that, // else to null. BlockingQueue<BigDecimal []> outputmidtermq = (ouq instanceof BlockingQueue)? ((BlockingQueue<BigDecimal []>) ouq) : null ; Therefore, the if (inputmidtermq!= null) { and if (outputmidtermq!= null) { code blocks to consider for modification are BlockingQueue object references passed to the pipeline stage as plain Queue object references. Keep these if statement lines unchanged, but consider changing the Queue method calls within those blocks to BlockingQueue blocking calls; but you must keep at least one or more of the calls non-blocking; for the non-blocking calls you can use either the exception-throwing or the flag-returning non-blocking calls. Add comments where you make changes that explain the reason for the original problem, and also why your change or changes fix the problem. Here is a test run on the handout code. I am hitting control-\ after the test hangs. Control-\ (control backslash) causes the JVM to show stack traces. $ make test_pipeline /bin/rm -f sink.ref ln -s ~parson/tmp/sink.ref./sink.ref chmod +x testscript STUDENT=parson bash -x././testscript + runatest true true java.util.concurrent.synchronousqueue + CLASSPATH=..:jcip-annotations.jar + time java prisonerdmidterm2016.bigdecimalpipelinebuilder true true prisonerdmidterm2016.pipesourcerandom ' ' java.util.concurrent.synchronousqueue prisonerdmidterm2016.pipestagemath + java.util.concurrent.synchronousqueue prisonerdmidterm2016.pipesinkfile /home/kutztown/parson/tmp/parsonsink.out page 3
4 There are 64 contexts on this machine. RUNNING java prisonerdmidterm2016.bigdecimalpipelinebuilder true true prisonerdmidterm2016.pipesourcerandom java.util.concurrent.synchronousqueue prisonerdmidterm2016.pipestagemath + java.util.concurren t.synchronousqueue prisonerdmidterm2016.pipesinkfile /home/kutztown/parson/tmp/parsonsink.ou t CPU TIME FOR PipeSourceRandom = , USER TIME = CPU TIME FOR PipeStageMath = , USER TIME = CPU TIME FOR PipeSinkFile = , USER TIME = ELAPSED = 9.345, TOTAL CPU = , USER CPU = , SYSTEM CPU = real 10.0 user 16.1 sys exitstatus=0 + chmod 666 /home/kutztown/parson/tmp/parsonsink.out + ln -s /home/kutztown/parson/tmp/parsonsink.out./sink.out ln: cannot create./sink.out: File exists + '[' 0 -ne 0 ']' + diff./sink.out /home/kutztown/parson/tmp/sink.ref + exitstatus=0 + '[' 0 -ne 0 ']' + /bin/rm -rf /home/kutztown/parson/tmp/parsonsink.out./sink.out + runatest true false java.util.concurrent.synchronousqueue + CLASSPATH=..:jcip-annotations.jar + time java prisonerdmidterm2016.bigdecimalpipelinebuilder true false prisonerdmidterm2016.pipesourcerandom ' ' java.util.concurrent.synchronousqueue prisonerdmidterm2016.pipestagemath + java.util.concurrent.synchronousqueue prisonerdmidterm2016.pipesinkfile /home/kutztown/parson/tmp/parsonsink.out There are 64 contexts on this machine. RUNNING java prisonerdmidterm2016.bigdecimalpipelinebuilder true false prisonerdmidterm2016.pipesourcerandom java.util.concurrent.synchronousqueue prisonerdmidterm2016.pipestagemath + java.util.concurren t.synchronousqueue prisonerdmidterm2016.pipesinkfile /home/kutztown/parson/tmp/parsonsink.ou t The process hangs. Here are the stack traces for the three pipeline threads after hitting control-\. "Thread-2" prio=3 tid=0x002ba400 nid=0x26 runnable [0xb537f000] at java.util.concurrent.synchronousqueue.poll(synchronousqueue.java:888) at prisonerdmidterm2016.pipesinkfile.run(pipesinkfile.java:98) at java.lang.thread.run(thread.java:619) "Thread-1" prio=3 tid=0x002b8c00 nid=0x25 runnable [0xb547f000] at java.util.concurrent.synchronousqueue.poll(synchronousqueue.java:888) at prisonerdmidterm2016.pipestagemath.run(pipestagemath.java:112) page 4
5 at java.lang.thread.run(thread.java:619) "Thread-0" prio=3 tid=0x002b7800 nid=0x24 runnable [0xb557f000] at prisonerdmidterm2016.pipesourcerandom.run(pipesourcerandom.java:106) at java.lang.thread.run(thread.java:619) The threads are always either in a non-blocking call to a SynchronousQueue object, or in a polling loop, depending on when control-\ is hit. Here is the code in the neighborhood of PipeSourceRandom.java:106: 105 if (outputmidtermq!= null) { 106 while (! outputmidtermq.offer(result)) { 107 // spin until the blockqueue accepts the value 108 } 109 } else if (ouq!= null) { 110 ouq.add(result); 111 } else { 112 oubq.put(result); 113 } Once you have make test_pipeline working, make clean test should work, passing all tests without hanging. Make sure to write documentation comments explaining the problem and why your solution fixes it for this last part of the exam. When you are done working, run make turnitin to turn the assignment in by the deadline. page 5
CSC 343 Operating Systems, Fall 2015
CSC 343 Operating Systems, Fall 2015 Dr. Dale E. Parson, Assignment 4, analyzing swapping algorithm variations. This assignment is due via gmake turnitin from the swapping2015 directory by 11:59 PM on
More informationCSC 343 Operating Systems, Fall 2015
CSC 343 Operating Systems, Fall 2015 Dr. Dale E. Parson, Assignment 2, modeling an atomic spin lock, a mutex, and a condition variable. This assignment is due via gmake turnitin from the criticalsection2015
More informationCSC 310 Programming Languages, Spring 2014, Dr. Dale E. Parson
CSC 310 Programming Languages, Spring 2014, Dr. Dale E. Parson Assignment 3, Perquacky in Python, due 11:59 PM, Saturday April 12, 2014 I will turn the solution back on Monday April 14, after which I will
More informationCSC 552 UNIX System Programming, Fall 2015
CSC 552 UNIX System Programming, Fall 2015 Dr. Dale E. Parson, Assignment 4, multi-threading a socket-based server loop & helper functions. This assignment is due via make turnitin from the wordcathreadc4/
More informationCSC 510 Advanced Operating Systems, Fall 2017
CSC 510 Advanced Operating Systems, Fall 2017 Dr. Dale E. Parson, Assignment 4, Benchmarking and analyzing a modified Assignment 1 running on System VMs on Type 1 and Type 2 hypervisors. This assignment
More informationAssignment 2, perquack2 class hierarchy in Java, due 11:59 PM, Sunday March 16, 2014 Login into your account on acad/bill and do the following steps:
CSC 243 Java Programming, Spring 2014, Dr. Dale E. Parson Assignment 2, perquack2 class hierarchy in Java, due 11:59 PM, Sunday March 16, 2014 Login into your account on acad/bill and do the following
More informationPrinciples of Software Construction: Objects, Design and Concurrency. The Perils of Concurrency, Part 2 Can't live with it. Cant live without it.
Principles of Software Construction: Objects, Design and Concurrency 15-214 toad The Perils of Concurrency, Part 2 Can't live with it. Cant live without it. Fall 2013 Jonathan Aldrich Charlie Garrod School
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 informationSummary of Student Projects from CSC 580, Multiprocessor Programming in Java
Summary of Student Projects from CSC 580, Multiprocessor Programming in Java Dale E. Parson, http://faculty.kutztown.edu/parson, January 2012, course was held spring 2011 This course in Multiprocessor
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 informationCROWDMARK. Examination Midterm. Spring 2017 CS 350. Closed Book. Page 1 of 30. University of Waterloo CS350 Midterm Examination.
Times: Thursday 2017-06-22 at 19:00 to 20:50 (7 to 8:50PM) Duration: 1 hour 50 minutes (110 minutes) Exam ID: 3520593 Please print in pen: Waterloo Student ID Number: WatIAM/Quest Login Userid: Sections:
More informationThe New Java Technology Memory Model
The New Java Technology Memory Model java.sun.com/javaone/sf Jeremy Manson and William Pugh http://www.cs.umd.edu/~pugh 1 Audience Assume you are familiar with basics of Java technology-based threads (
More informationCSC UNIX System, Spring 2015
` CSC 352 - UNIX System, Spring 2015 Assignment 2, due by 11:59 on Friday March 6 via gmake turnitin. Dr. Dale E. Parson, http://faculty.kutztown.edu/parson The directory, source-file and makefile contents
More informationPerform the following steps to set up for this project. Start out in your login directory on csit (a.k.a. acad).
CSC 458 Data Mining and Predictive Analytics I, Fall 2017 (November 22, 2017) Dr. Dale E. Parson, Assignment 4, Comparing Weka Bayesian, clustering, ZeroR, OneR, and J48 models to predict nominal dissolved
More informationThreads and Java Memory Model
Threads and Java Memory Model Oleg Šelajev @shelajev oleg@zeroturnaround.com October 6, 2014 Agenda Threads Basic synchronization Java Memory Model Concurrency Concurrency - several computations are executing
More informationPrinciples of Software Construction: Objects, Design, and Concurrency. The Perils of Concurrency, Part 3 Can't live with it. Can't live without it.
Principles of Software Construction: Objects, Design, and Concurrency The Perils of Concurrency, Part 3 Can't live with it. Can't live without it. Fall 2014 Charlie Garrod Jonathan Aldrich School of Computer
More informationHigh-Level Design Specification for the Callimuse System
High-Level Design Specification for the Callimuse System CSC354 Introduction to Software Engineering, Dr. Dale Parson, Fall 2013. This assignment is due by end of October 24, 2013 1. Introduction by the
More informationChair of Software Engineering. Java and C# in depth. Carlo A. Furia, Marco Piccioni, Bertrand Meyer. Java: concurrency
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer Java: concurrency Outline Java threads thread implementation sleep, interrupt, and join threads that return values Thread synchronization
More informationJava SE 8 Programming
Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features
More informationCSC UNIX System, Spring 2015
CSC 352 - UNIX System, Spring 2015 Study guide for the CSC352 midterm exam (20% of grade). Dr. Dale E. Parson, http://faculty.kutztown.edu/parson We will have a midterm on March 19 on material we have
More informationCPSC/ECE 3220 Summer 2018 Exam 2 No Electronics.
CPSC/ECE 3220 Summer 2018 Exam 2 No Electronics. Name: Write one of the words or terms from the following list into the blank appearing to the left of the appropriate definition. Note that there are more
More informationDUE By 11:59 PM on Thursday March 15 via make turnitin on acad. The standard 10% per day deduction for late assignments applies.
CSC 558 Data Mining and Predictive Analytics II, Spring 2018 Dr. Dale E. Parson, Assignment 2, Classification of audio data samples from assignment 1 for predicting numeric white-noise amplification level
More informationHere are the steps to get the files for this project after logging in on acad/bill.
CSC 243, Java Programming, Spring 2014, Dr. Dale Parson Assignment 4, implementing undo, redo & initial GUI layout ASSIGNMENT due by 11:59 PM on Saturday April 19 via gmake turnitin ASSIGNMENT 5 (see page
More informationChapter 4: Threads. Operating System Concepts 9 th Edit9on
Chapter 4: Threads Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads 1. Overview 2. Multicore Programming 3. Multithreading Models 4. Thread Libraries 5. Implicit
More informationChapter 4: Threads. Operating System Concepts 9 th Edition
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples
More informationCSE 451: Operating Systems Winter Lecture 7 Synchronization. Steve Gribble. Synchronization. Threads cooperate in multithreaded programs
CSE 451: Operating Systems Winter 2005 Lecture 7 Synchronization Steve Gribble Synchronization Threads cooperate in multithreaded programs to share resources, access shared data structures e.g., threads
More informationThreads and Locks, Part 2. CSCI 5828: Foundations of Software Engineering Lecture 08 09/18/2014
Threads and Locks, Part 2 CSCI 5828: Foundations of Software Engineering Lecture 08 09/18/2014 1 Goals Cover the material presented in Chapter 2 of our concurrency textbook In particular, selected material
More informationJava SE 8 Programming
Oracle University Contact Us: +52 1 55 8525 3225 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features and Application Programming
More informationRecap. Contents. Reenterancy of synchronized. Explicit Locks: ReentrantLock. Reenterancy of synchronise (ctd) Advanced Thread programming.
Lecture 07: Advanced Thread programming Software System Components 2 Behzad Bordbar School of Computer Science, University of Birmingham, UK Recap How to deal with race condition in Java Using synchronised
More informationG52CON: Concepts of Concurrency
G52CON: Concepts of Concurrency Lecture 11: Semaphores I" Brian Logan School of Computer Science bsl@cs.nott.ac.uk Outline of this lecture" problems with Peterson s algorithm semaphores implementing semaphores
More informationChapter 4: Threads. Operating System Concepts 9 th Edition
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples
More informationChapter 4: Multithreaded Programming
Chapter 4: Multithreaded Programming Silberschatz, Galvin and Gagne 2013 Chapter 4: Multithreaded Programming Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading
More information143a, Spring 2018 Discussion Week 4 Programming Assignment. Jia Chen 27 Apr 2018
143a, Spring 2018 Discussion Week 4 Programming Assignment Jia Chen 27 Apr 2018 Annoucements HW2 posted due Friday, May 4, 2018, 11:55 PM Programming Assignment posted due Friday, Jun 1, 2018, 11:55 PM
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 informationChapter 4: Threads. Chapter 4: Threads
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples
More informationSynchronization SPL/2010 SPL/20 1
Synchronization 1 Overview synchronization mechanisms in modern RTEs concurrency issues places where synchronization is needed structural ways (design patterns) for exclusive access 2 Overview synchronization
More informationChapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues 4.2 Silberschatz, Galvin
More informationHere are the steps to get the files for this project after logging in on acad/bill.
CSC 243, Java Programming, Spring 2013, Dr. Dale Parson Assignment 5, handling events in a working GUI ASSIGNMENT due by 11:59 PM on Thursday May 9 via gmake turnitin Here are the steps to get the files
More informationCOMP 322: Fundamentals of Parallel Programming. Lecture 30: Java Synchronizers, Dining Philosophers Problem
COMP 322: Fundamentals of Parallel Programming Lecture 30: Java Synchronizers, Dining Philosophers Problem Vivek Sarkar, Shams Imam Department of Computer Science, Rice University Contact email: vsarkar@rice.edu,
More informationAgenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2
Lecture 3: Processes Agenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Process in General 3.3 Process Concept Process is an active program in execution; process
More informationHere are the steps to get the files for this project after logging in on acad/bill.
CSC 243, Java Programming, Spring 2013, Dr. Dale Parson Assignment 3, cloning & serializing game state for save & restore commands ASSIGNMENT due by 11:59 PM on Thursday April 11 via gmake turnitin Here
More informationThreads, Synchronization, and Scheduling. Eric Wu
Threads, Synchronization, and Scheduling Eric Wu (ericwu@cs) Topics for Today Project 2 Due tomorrow! Project 3 Due Feb. 17 th! Threads Synchronization Scheduling Project 2 Troubleshooting: Stock kernel
More informationCONCURRENT API AND PARALLEL PROGRAMMING
MODULE 11 CONCURRENT API AND PARALLEL PROGRAMMING Module 11.A THREAD MODEL: RUNNABLE, CALLABLE, FUTURE, FUTURETASK Threads > What are threads? Threads are a virtual CPU. > The three parts of at thread
More informationCSE 451: Operating Systems Winter Lecture 7 Synchronization. Hank Levy 412 Sieg Hall
CSE 451: Operating Systems Winter 2003 Lecture 7 Synchronization Hank Levy Levy@cs.washington.edu 412 Sieg Hall Synchronization Threads cooperate in multithreaded programs to share resources, access shared
More informationIntroduction to Locks. Intrinsic Locks
CMSC 433 Programming Language Technologies and Paradigms Spring 2013 Introduction to Locks Intrinsic Locks Atomic-looking operations Resources created for sequential code make certain assumptions, a large
More informationReal-Time and Concurrent Programming Lecture 4 (F4): Monitors: synchronized, wait and notify
http://cs.lth.se/eda040 Real-Time and Concurrent Programming Lecture 4 (F4): Monitors: synchronized, wait and notify Klas Nilsson 2016-09-20 http://cs.lth.se/eda040 F4: Monitors: synchronized, wait and
More informationOPERATING SYSTEM. Chapter 4: Threads
OPERATING SYSTEM Chapter 4: Threads Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples Objectives To
More informationChapter 4: Multi-Threaded Programming
Chapter 4: Multi-Threaded Programming Chapter 4: Threads 4.1 Overview 4.2 Multicore Programming 4.3 Multithreading Models 4.4 Thread Libraries Pthreads Win32 Threads Java Threads 4.5 Implicit Threading
More informationObject Oriented Programming. Week 10 Part 1 Threads
Object Oriented Programming Week 10 Part 1 Threads Lecture Concurrency, Multitasking, Process and Threads Thread Priority and State Java Multithreading Extending the Thread Class Defining a Class that
More informationCS420: Operating Systems
Threads James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Threads A thread is a basic unit of processing
More informationCSC 343 Operating Systems, Fall 2015, Intro to our UML State Machines
CSC 343 Operating Systems, Fall 2015, Intro to our UML State Machines Dr. Dale E. Parson, http://faculty.kutztown.edu/parson To compile and run this course s state machines, you will have to log onto machine
More informationStudent Name: University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science
University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science CS 162 Spring 2011 I. Stoica FIRST MIDTERM EXAMINATION Wednesday, March 9, 2011 INSTRUCTIONS
More informationPractical Concurrency. Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Practical Concurrency Agenda Motivation Java Memory Model Basics Common Bug Patterns JDK Concurrency Utilities Patterns of Concurrent Processing Testing Concurrent Applications Concurrency in Java 7 2
More informationSynchronization Lecture 24 Fall 2018
Synchronization Lecture 24 Fall 2018 Prelim 2 tonight! The room assignments are on the course website, page Exams. Check it carefully! Come on time! Bring you Cornell id card! No lunch with gries this
More informationG Programming Languages Spring 2010 Lecture 13. Robert Grimm, New York University
G22.2110-001 Programming Languages Spring 2010 Lecture 13 Robert Grimm, New York University 1 Review Last week Exceptions 2 Outline Concurrency Discussion of Final Sources for today s lecture: PLP, 12
More informationSTUDENT NAME: STUDENT ID: Problem 1 Problem 2 Problem 3 Problem 4 Problem 5 Total
University of Minnesota Department of Computer Science & Engineering CSci 5103 - Fall 2018 (Instructor: Tripathi) Midterm Exam 1 Date: October 18, 2018 (1:00 2:15 pm) (Time: 75 minutes) Total Points 100
More informationMidterm Exam Amy Murphy 6 March 2002
University of Rochester Midterm Exam Amy Murphy 6 March 2002 Computer Systems (CSC2/456) Read before beginning: Please write clearly. Illegible answers cannot be graded. Be sure to identify all of your
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 informationCOMP 322: Fundamentals of Parallel Programming
COMP 322: Fundamentals of Parallel Programming https://wiki.rice.edu/confluence/display/parprog/comp322 Lecture 30: Advanced locking in Java Vivek Sarkar Department of Computer Science Rice University
More informationMulti-threaded Performance And Scalability
1 Multi-threaded Performance And Scalability Dr Heinz M. Kabutz 2012 Heinz Kabutz All Rights Reserved Multi-threaded Performance and Scalability Dr Heinz Kabutz Brief Biography Lives in Chania on the Island
More informationCSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209
CSC209 Software Tools and Systems Programming https://mcs.utm.utoronto.ca/~209 What is this Course About? Software Tools Using them Building them Systems Programming Quirks of C The file system System
More informationCSCI 201L Written Exam #2. 10% of course grade
Name Final Score ID Extra Credit Section (circle one): MW 3:30-6:30 CSCI 201L Written Exam #2 10% of course grade 1. Anonymous Inner Classes In lecture we walked through the following: 1. Having two classes
More informationEECE.4810/EECE.5730: Operating Systems Spring Midterm Exam March 8, Name: Section: EECE.4810 (undergraduate) EECE.
EECE.4810/EECE.5730: Operating Systems Spring 2017 Midterm Exam March 8, 2017 Name: Section: EECE.4810 (undergraduate) EECE.5730 (graduate) For this exam, you may use two 8.5 x 11 double-sided page of
More informationCSE 153 Design of Operating Systems
CSE 153 Design of Operating Systems Winter 19 Lecture 7/8: Synchronization (1) Administrivia How is Lab going? Be prepared with questions for this weeks Lab My impression from TAs is that you are on track
More informationJava SE 8 Programming
Java SE 8 Programming Training Calendar Date Training Time Location 16 September 2019 5 Days Bilginç IT Academy 28 October 2019 5 Days Bilginç IT Academy Training Details Training Time : 5 Days Capacity
More informationMidterm Exam October 15, 2012 CS162 Operating Systems
CS 62 Fall 202 Midterm Exam October 5, 202 University of California, Berkeley College of Engineering Computer Science Division EECS Fall 202 Ion Stoica Midterm Exam October 5, 202 CS62 Operating Systems
More informationConcurrency: State Models & Design Patterns
Concurrency: State Models & Design Patterns Practical Session Week 02 1 / 13 Exercises 01 Discussion Exercise 01 - Task 1 a) Do recent central processing units (CPUs) of desktop PCs support concurrency?
More informationSyllabus CSCI 405 Operating Systems Fall 2018
Syllabus CSCI 405 Operating Systems Fall 2018 1.0 General Information Class Time: Monday/Wednesday/Friday 11:00 AM - 11:50 AM Class Location: 317 Thompson Instructor: Dr. Deepti Joshi; Office: 224 Thompson;
More informationEMBEDDED SYSTEMS PROGRAMMING More About Languages
EMBEDDED SYSTEMS PROGRAMMING 2015-16 More About Languages JAVA: ANNOTATIONS (1/2) Structured comments to source code (=metadata). They provide data about the code, but they are not part of the code itself
More information- Knowledge of basic computer architecture and organization, ECE 445
ECE 446: Device Driver Development Fall 2014 Wednesdays 7:20-10 PM Office hours: Wednesdays 6:15-7:15 PM or by appointment, Adjunct office Engineering Building room 3707/3708 Last updated: 8/24/14 Instructor:
More informationCS370 Operating Systems Midterm Review
CS370 Operating Systems Midterm Review Yashwant K Malaiya Fall 2015 Slides based on Text by Silberschatz, Galvin, Gagne 1 1 What is an Operating System? An OS is a program that acts an intermediary between
More informationProcesses and Threads. Processes: Review
Processes and Threads Processes and their scheduling Threads and scheduling Multiprocessor scheduling Distributed Scheduling/migration Lecture 3, page 1 Processes: Review Multiprogramming versus multiprocessing
More informationAC OB S. Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014
AC OB S Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014 ACOBS ACtive OBject (operating) System Simplified FW System for Multi-Threading on ARM embedded systems ACOBS
More informationCSE 4/521 Introduction to Operating Systems
CSE 4/521 Introduction to Operating Systems Lecture 5 Threads (Overview, Multicore Programming, Multithreading Models, Thread Libraries, Implicit Threading, Operating- System Examples) Summer 2018 Overview
More informationCS140 Operating Systems and Systems Programming Midterm Exam
CS140 Operating Systems and Systems Programming Midterm Exam October 31 st, 2003 (Total time = 50 minutes, Total Points = 50) Name: (please print) In recognition of and in the spirit of the Stanford University
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 informationJava SE 7 Programming
Oracle University Contact Us: +40 21 3678820 Java SE 7 Programming Duration: 5 Days What you will learn This Java Programming training covers the core Application Programming Interfaces (API) you'll use
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 informationOperating Systems, Spring 2015 Course Syllabus
Operating Systems, Spring 2015 Course Syllabus Instructor: Dr. Rafael Ubal Email: ubal@ece.neu.edu Office: 140 The Fenway, 3rd floor (see detailed directions below) Phone: 617-373-3895 Office hours: Wednesday
More informationJava SE 7 Programming
Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 4108 4709 Java SE 7 Programming Duration: 5 Days What you will learn This is the second of two courses that cover the Java Standard Edition
More informationChapter 6 Process Synchronization
Chapter 6 Process Synchronization Cooperating Process process that can affect or be affected by other processes directly share a logical address space (threads) be allowed to share data via files or messages
More informationOperating Systems. Synchronization
Operating Systems Fall 2014 Synchronization Myungjin Lee myungjin.lee@ed.ac.uk 1 Temporal relations Instructions executed by a single thread are totally ordered A < B < C < Absent synchronization, instructions
More informationLab. Lecture 26: Concurrency & Responsiveness. Assignment. Maze Program
Lab Lecture 26: Concurrency & Responsiveness CS 62 Fall 2016 Kim Bruce & Peter Mawhorter Using parallelism to speed up sorting using Threads and ForkJoinFramework Review relevant material. Some slides
More informationCSE 153 Design of Operating Systems Fall 2018
CSE 153 Design of Operating Systems Fall 2018 Lecture 5: Threads/Synchronization Implementing threads l Kernel Level Threads l u u All thread operations are implemented in the kernel The OS schedules all
More informationModule Road Map. 7. Version Control with Subversion Introduction Terminology
Module Road Map 1. Overview 2. Installing and Running 3. Building and Running Java Classes 4. Refactoring 5. Debugging 6. Testing with JUnit 7. Version Control with Subversion Introduction Terminology
More informationCPS 110 Midterm. Out: Wednesday, October 8, 14:50 Due via Hardcopy: 16:05
CPS 110 Midterm Out: Wednesday, October 8, 14:50 Due via Hardcopy: 16:05 This is an in-class exam. Read the entire exam through before you begin working. Read each question carefully, and note all that
More informationNon-blocking Array-based Algorithms for Stacks and Queues. Niloufar Shafiei
Non-blocking Array-based Algorithms for Stacks and Queues Niloufar Shafiei Outline Introduction Concurrent stacks and queues Contributions New algorithms New algorithms using bounded counter values Correctness
More informationSynchronization I. Jo, Heeseung
Synchronization I Jo, Heeseung Today's Topics Synchronization problem Locks 2 Synchronization Threads cooperate in multithreaded programs To share resources, access shared data structures Also, to coordinate
More informationSynchronization Lecture 23 Fall 2017
Synchronization Lecture 23 Fall 2017 Announcements 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
More informationCSC 716 Advanced Operating System Fall 2007 Exam 1. Answer all the questions. The maximum credit for each question is as shown.
CSC 716 Advanced Operating System Fall 2007 Exam 1 Answer all the questions. The maximum credit for each question is as shown. 1. (15) Multiple Choice(3 points for each): 1) Which of the following statement
More informationCS4411 Intro. to Operating Systems Exam 1 Fall points 10 pages
CS4411 Intro. to Operating Systems Exam 1 Fall 2005 (October 6, 2005) 1 CS4411 Intro. to Operating Systems Exam 1 Fall 2005 150 points 10 pages Name: Most of the following questions only require very short
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 informationJava 2 Programmer Exam Cram 2
Java 2 Programmer Exam Cram 2 Copyright 2003 by Que Publishing International Standard Book Number: 0789728613 Warning and Disclaimer Every effort has been made to make this book as complete and as accurate
More informationAtomicity CS 2110 Fall 2017
Atomicity CS 2110 Fall 2017 Parallel Programming Thus Far Parallel programs can be faster and more efficient Problem: race conditions Solution: synchronization Are there more efficient ways to ensure the
More informationProject 1: Syscalls for synchronization 1
Project 1: Syscalls for synchronization 1 Submit a gzipped tarball of your code to CourseWeb. Due: Monday, February 4, 2019 @11:59pm Late: Wednesday, February 6, 2019 @11:59pm with 10% reduction per late
More informationCS 450 Operating System Week 4 Lecture Notes
CS 450 Operating System Week 4 Lecture Notes Reading: Operating System Concepts (7 th Edition) - Silberschatz, Galvin, Gagne Chapter 5 - Pages 129 147 Objectives: 1. Explain the main Objective of Threads
More informationMidterm Exam Solutions Amy Murphy 28 February 2001
University of Rochester Midterm Exam Solutions Amy Murphy 8 February 00 Computer Systems (CSC/56) Read before beginning: Please write clearly. Illegible answers cannot be graded. Be sure to identify all
More informationCSC209H Lecture 1. Dan Zingaro. January 7, 2015
CSC209H Lecture 1 Dan Zingaro January 7, 2015 Welcome! Welcome to CSC209 Comments or questions during class? Let me know! Topics: shell and Unix, pipes and filters, C programming, processes, system calls,
More informationSynchronization
Synchronization 10-28-2013 Synchronization Coming next: Multithreading in JavaFX (javafx.concurrent) Read: Java Tutorial on concurrency JavaFX Tutorial on concurrency Effective Java, Chapter 9 Project#1:
More informationActors in the Small. Making Actors more Useful. Bill La
Actors in the Small Making Actors more Useful Bill La Forge laforge49@gmail.com @laforge49 Actors in the Small I. Introduction II. Making Actors Fast III.Making Actors Easier to Program IV. Tutorial I.
More information