Lab. 2 (April 15th) Modify the multithreaded JAVA code we practiced in Lab. 1 to C code with pthread library. Pthread library works in UNIX environment.

Slides:



Advertisements
Similar presentations
METHOD OVERRIDING Sub class can override the methods defined by the super class. Overridden Methods in the sub classes should have same name, same signature.
Advertisements

02/05/2008CSCI 315 Operating Systems Design1 Java Threads Notice: The slides for this lecture have been largely based on those accompanying an earlier.
PTHREADS These notes are from LLNL Pthreads Tutorial
Threads By Dr. Yingwu Zhu. Review Multithreading Models Many-to-one One-to-one Many-to-many.
Computer Architecture II 1 Computer architecture II Programming: POSIX Threads OpenMP.
Unix Continuum of Tools Do something once: use the command line Do something many times: –Use an alias –Use a shell script Do something that is complex.
Unit 171 Algorithms and Problem Solving - II Algorithm Efficiency Primality Testing Improved Primality Testing Sieve of Eratosthenes Primality Testing.
Outline Unix Architecture Vi Fork Pthread. UNIX Architecture.
Multithreading.
Lab. 2 (April 27th) Modify the multithreaded JAVA code we practiced in Lab. 1 to C code with pthread library. Pthread library works in UNIX environment.
Project 2 Data Communication Spring 2010, ICE Stephen Kim, Ph.D.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts Essentials – 9 th Edition Chapter 4: Threads.
1 Apr 5, 2012 ForkJoin New in Java 7. Incrementor I package helloWorld; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.RecursiveTask;
PRINCIPLES OF OPERATING SYSTEMS Lecture 6: Processes CPSC 457, Spring 2015 May 21, 2015 M. Reza Zakerinasab Department of Computer Science, University.
Object Oriented Programming Lecture 8: Introduction to laboratorial exercise – part II, Introduction to GUI frames in Netbeans, Introduction to threads.
By Nicholas Policelli An Introduction to Java. Basic Program Structure public class ClassName { public static void main(String[] args) { program statements.
POSIX Threads Nezer J. Zaidenberg. References  Advanced programming for the UNIX environment (2nd edition chapter This material does not exist.
CS333 Intro to Operating Systems Jonathan Walpole.
Exercise 1 : ex1.java class C extends Thread { int i; C(int i) { this.i = i; } public void run() { System.out.println("Thread " + i + " says hi"); System.out.println("Thread.
Chapter 4: Threads. 2 Overview Multithreading Models Threading Issues Pthreads Windows XP Threads Linux Threads.
BEGINNING PROGRAMMING.  Literally – giving instructions to a computer so that it does what you want  Practically – using a programming language (such.
POSIX Threads HUJI Spring 2011.
Lecture 7: POSIX Threads - Pthreads. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
Multithreaded programming  Java provides built-in support for multithreaded programming. A multithreaded program contains two or more parts that can run.
Now that you know the pthread API…  How do you create threads?  How do you pass different values to them?  How do you return values from threads? 
Copyright ©: Nahrstedt, Angrave, Abdelzaher
Computer Science 320 A First Program in Parallel Java.
POSIX Threads Loren Stroup EEL 6897 Software Development for R-T Engineering Systems.
Computer Science A 1. Course plan Introduction to programming Basic concepts of typical programming languages. Tools: compiler, editor, integrated editor,
1 Lecture # 2. * Introducing Programming with an Example * Identifiers, Variables, and Constants * Primitive Data Types * Byte, short, int, long, float,
Programming in Java Transitioning from Alice. Becomes not myFirstMethod but …. public static void main (String[] arg) { // code for testing classes goes.
CMSC 421 Spring 2004 Section 0202 Part II: Process Management Chapter 5 Threads.
A thread is a basic unit of CPU utilization within a process Each thread has its own – thread ID – program counter – register set – stack It shares the.
Threads Some of these slides were originally made by Dr. Roger deBry. They include text, figures, and information from this class’s textbook, Operating.
Instructor: Lilian de Greef Quarter: Summer 2017
Threads in C Caryl Rahn.
CS399 New Beginnings Jonathan Walpole.
Chapter 4: Threads.
PTHREADS These notes are from LLNL Pthreads Tutorial
Lab. 3 (May 6st) You may use either cygwin or visual studio for using OpenMP Compiling in cygwin “> gcc –fopenmp ex1.c” will generate a.exe Execute : “>
Lab. 2 Modify the multithreaded JAVA code we practiced in Lab. 1 to C code with pthread library. Pthread library works in UNIX environment. Use cygwin.
Operating Systems Lecture 13.
Lab. 2 (May 12th) Modify the multithreaded JAVA code we practiced in Lab. 1 to C code with pthread library. Pthread library works in UNIX environment.
ForkJoin New in Java 7 Apr 5, 2012.
CSE373: Data Structures & Algorithms Lecture 26: Introduction to Multithreading & Fork-Join Parallelism Catie Baker Spring 2015.
null, true, and false are also reserved.
Jonathan Walpole Computer Science Portland State University
An Introduction to Java – Part I, language basics
Operating Systems Lecture 14.
Lab. 3 (May 11th) You may use either cygwin or visual studio for using OpenMP Compiling in cygwin “> gcc –fopenmp ex1.c” will generate a.exe Execute :
ForkJoin New in Java 7 Apr 5, 2012.
CS510 Operating System Foundations
Jonathan Walpole Computer Science Portland State University
Operating System Concepts
Parallelism for summation
class PrintOnetoTen { public static void main(String args[]) {
Lab. 2 (May 2nd) Modify the multithreaded JAVA code we practiced in Lab. 1 to C code with pthread library. Pthread library works in UNIX environment. Use.
Lecture Notes – Week 4 Chapter 5 (Loops).
Programming with Shared Memory
Jonathan Walpole Computer Science Portland State University
Programming with Shared Memory
Lab. 3 (May 1st) You may use either cygwin or visual studio for using OpenMP Compiling in cygwin “> gcc –fopenmp ex1.c” will generate a.exe Execute : “>
Programming with Shared Memory - 2 Issues with sharing data
Exercise 1 : ex1.java Thread Creation and Execution
Exercise 1 : ex1.java Thread Creation and Execution (sleep() and join()) class C extends Thread {   int i;   C(int i) { this.i = i; }   public void run()
Chapter 4 Threads “Most modern applications are multithreaded”
Methods/Functions.
Computer Architecture Multi-threaded Matrix Multiply
Introduction to java Part I By Shenglan Zhang.
Shared Memory Programming with Pthreads
Presentation transcript:

Lab. 2 (April 15th) Modify the multithreaded JAVA code we practiced in Lab. 1 to C code with pthread library. Pthread library works in UNIX environment. Use cygwin for programming You may use Text editor : nano or vim Compiling “> gcc ex1.c” will generate a.exe Execute : “> ./a.exe”

Exercise 1 : ex1.java Modify following JAVA code ex1.java to C code with pthread library for Thread Creation and Execution class C extends Thread { int i; C(int i) { this.i = i; } public void run() { System.out.println("Thread " + i + " says hi"); System.out.println("Thread " + i + " says bye"); } class ex1 { public static void main(String[] args) { System.out.println("main thread start!"); for(int i=1; i <= 5; ++i) { C c = new C(i); c.start(); System.out.println("main thread end!");

Exercise 1 : lab2_ex1.c Sample C code with pthread library #include <pthread.h> #include <stdio.h> void *c(void* i) { printf("Thread %d says hi\n",i); printf("Thread %d says bye\n",i); } int main (int argc, char *argv[]) { pthread_t threads[20]; int rc, t; printf("main thread start\n"); for(t=1; t<=20; t++){ rc = pthread_create(&threads[t], NULL, c, (void *)t); if (rc) { printf("ERROR code is %d\n", rc); exit(-1); printf("main thread end\n"); pthread_exit(NULL);

Exercise 2 : parallel summation Modify following multithreaded JAVA code ex2.java to C code with pthread library class SumThread extends Thread { int lo, hi; // fields for communicating inputs int[] arr; int ans = 0; // for communicating result SumThread(int[] a, int l, int h) { lo=l; hi=h; arr=a; } public void run() { // insert your code here class ex2 { private static final int NUM_END = 10000; private static final int NUM_THREAD = 4; // assume NUM_END is divisible by NUM_THREAD public static void main(String[] args) { int[] int_arr = new int [NUM_END]; int i,s; for (i=0;i<NUM_END;i++) int_arr[i]=i+1; s=sum(int_arr); System.out.println("sum=" + s) ; static int sum(int[] arr) {

Exercise 3 : parallel integration Modify your multithreaded JAVA code ex3.java to C code with pthread library

Exercise 4 : Prime numbers Modify your multithreaded JAVA code ex4.java to C code with pthread library class ex4_serial { private static final int NUM_END = 100000; public static void main(String[] args) { int counter=0; int i; long startTime = System.currentTimeMillis(); for (i=0;i<NUM_END;i++) { if (isPrime(i)) counter++; } long endTime = System.currentTimeMillis(); long timeDiff = endTime - startTime; System.out.println("Execution Time : "+timeDiff+"ms"); System.out.println("1..."+(NUM_END-1)+" prime# counter=" + counter +"\n"); private static boolean isPrime(int x) { if (x<=1) return false; for (i=2;i<x;i++) { if ((x%i == 0) && (i!=x)) return false; return true;