CISC2200 Threads Fall 09. Process  We learn the concept of process  A program in execution  A process owns some resources  A process executes a program.

Slides:



Advertisements
Similar presentations
OPERATING SYSTEMS Threads
Advertisements

Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 AE4B33OSS Chapter 4: Threads Overview Multithreading Models Threading Issues Pthreads Windows.
Chap 4 Multithreaded Programming. Thread A thread is a basic unit of CPU utilization It comprises a thread ID, a program counter, a register set and a.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Multithreaded Programming.
Threads. Objectives To introduce the notion of a thread — a fundamental unit of CPU utilization that forms the basis of multithreaded computer systems.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
國立台灣大學 資訊工程學系 Chapter 4: Threads. 資工系網媒所 NEWS 實驗室 Objectives To introduce the notion of a thread — a fundamental unit of CPU utilization that forms the.
Threads.
5.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Lecture 6: Threads Chapter 4.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 4: Threads Overview Multithreading Models Threading Issues.
Chapter 4: Multithreaded Programming
Modified from Silberschatz, Galvin and Gagne ©2009 Lecture 7 Chapter 4: Threads (cont)
Chapter 4: Multithreaded Programming
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Chapter 4: Threads Overview Multithreading.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Chapter 4: Threads Overview Multithreading.
Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 4: Threads.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Objectives Thread definitions and relationship to process Multithreading.
02/02/2004CSCI 315 Operating Systems Design1 Threads Notice: The slides for this lecture have been largely based on those accompanying the textbook Operating.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Chapter 4: Threads READ 4.1 & 4.2 NOT RESPONSIBLE FOR 4.3 &
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Multithreaded Programming.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 4: Threads Overview Multithreading Models Threading Issues.
Chapter 4: Threads Adapted to COP4610 by Robert van Engelen.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 4: Threads.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
國立台灣大學 資訊工程學系 Chapter 4: Threads. 資工系網媒所 NEWS 實驗室 Objectives To introduce the notion of a thread — a fundamental unit of CPU utilization that forms the.
Chapter 4: Multithreaded Programming. 4.2 Multithreaded Programming n Overview n Multithreading Models n Thread Libraries n Threading Issues n Operating.
Chapter 4: Threads. From Processes to Threads 4.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Threads.
Thread. A basic unit of CPU utilization. It comprises a thread ID, a program counter, a register set, and a stack. It is a single sequential flow of control.
Chapter 4: Threads. 4.2CSCI 380 Operating Systems Chapter 4: Threads Overview Multithreading Models Threading Issues Pthreads Windows XP Threads Linux.
Chapter 4: Multithreaded Programming. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 4: Multithreaded Programming Overview.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Lecture 4 Operating Systems.
Chapter 4: Threads. 4.2 Chapter 4: Threads Overview Multithreading Models Threading Issues Pthreads Windows XP Threads Linux Threads Java Threads.
Cosc 4740 Chapter 4 & 5 Threads & Scheduling. Motivation Threads run within application (process) Multiple tasks with the application can be implemented.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 4: Threads.
Silberschatz, Galvin and Gagne ©2011Operating System Concepts Essentials – 8 th Edition Chapter 4: Threads.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Threads A thread (or lightweight process) is a basic unit of CPU.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Chapter 4: Threads.
Source: Operating System Concepts by Silberschatz, Galvin and Gagne.
Shan Gao Fall 2007 Department of Computer Science Georgia State University.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 4: Threads Modified from the slides of the text book. TY, Sept 2010.
Chapter 4: Threads.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 14 Threads 2 Read Ch.
Chapter 4: Multithreaded Programming. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts What is Thread “Thread is a part of a program.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Chapter 4: Threads Overview Multithreading.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Outline n Overview n Multithreading.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
Lecture 3 Threads Erick Pranata © Sekolah Tinggi Teknik Surabaya 1.
CS307 Operating Systems Threads Fan Wu Department of Computer Science and Engineering Shanghai Jiao Tong University Spring 2011.
Saurav Karmakar. Chapter 4: Threads  Overview  Multithreading Models  Thread Libraries  Threading Issues  Operating System Examples  Windows XP.
Chapter 4: Threads 羅習五. Chapter 4: Threads Motivation and Overview Multithreading Models Threading Issues Examples – Pthreads – Windows XP Threads – Linux.
Lecturer 3: Processes multithreaded Operating System Concepts Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
CMSC 421 Spring 2004 Section 0202 Part II: Process Management Chapter 5 Threads.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
OPERATING SYSTEM CONCEPT AND PRACTISE
Chapter 4: Threads.
Nadeem MajeedChoudhary.
Chapter 4: Threads.
Chapter 4: Threads.
Modified by H. Schulzrinne 02/15/10 Chapter 4: Threads.
Chapter 4: Threads.
Chapter 4: Threads.
Chapter 4: Threads.
Chapter 4: Threads.
Chapter 4: Threads.
Chapter 4: Threads.
Presentation transcript:

CISC2200 Threads Fall 09

Process  We learn the concept of process  A program in execution  A process owns some resources  A process executes a program => execution state, PC, …  We learn that bash creates processes to run user’s command  We practice with process creation in assignment  Create a child process  Parent process 2

OS: Protection 3  Protection: mechanism for controlling access of processes or users to resources (Files, memory segment, CPU and other)  Systems generally first distinguish among users to determine who can do what  User identities (user IDs): a unique name and number  User ID then associated with all files, processes of that user to determine access control  Group identifier (group ID) allows set of users to be defined, then also associated with each process, file

Hardware Support for protection 4  Dual-mode allows OS to protect itself and other system components  A mode bit provided by processor hardware  Kernel mode for running kernel code  User mode for running user code  Privileged instructions only executable in kernel mode  System call: changes mode to kernel, return from call resets it to user mode “ps” command: reports user time, system time

Single-threaded Processes 5

Multithreading 6  Separate two characteristics of process  Unit of dispatching => thread, lightweight process  Unit of resource ownership => process, task  Multi-threading: ability of OS to support multiple, concurrent paths of execution with a single process

Multithreading (cont’d) 7  Process: unit of resource allocation/protection  An address space for its image  Protected access to resources  Inter-process communication  Thread:  A thread execution state  Saved context,  Execution stack  Access to memory/resource of its process, shared with other threads in the process

Why Multithreading ?  Many applications require a set of related units of execution  Web Server example:  listening on port for client connection request  serving a client: read client request, serve the file  Can create multiple processes for them  Mainly performance consideration. Threads are  Faster to create a new thread, terminate a thread  Faster to switch between two threads within a process  More efficient communication between threads (without invoking kernel) 8

Multithreaded Server Architecture 9

Benefits of Threads 10  Responsiveness  Resource Sharing  Economy  Scalability  Increase parallelism, allow application to take advantage of multiprocessor architecture

Concurrent Execution 11 Parallel Execution (Multicore System)

User Threads vs Kernel Threads 12  Support for threads: provided at user level or kernel level  User thread: Thread management done by user-level threads library  Three primary thread libraries: POSIX Pthreads, Win32 threads, Java threads  Kernel thread: threads supported and managed by the Kernel  Examples: Windows XP/2000, Solaris, Linux, Tru64 UNIX, Mac OS X

Multithreading Models 13  Relationship between user threads and kernel threads  Many-to-One  One-to-One  Many-to-Many  Two-level model

Many-to-One, User-level threads 14  Advantage:  Thread switching requires no kernel mode (save time)  Application specific scheduling  Run on any OS  Disadvantage:  One thread blocking blocks all threads in process  A multithread app. cannot take advantage of multiprocessing  Examples: Solaris Green Threads. GNU Portable Threads Thread library  Multiple user-level threads mapped to a single kernel thread; user-level thread library implements all threading functionalities

One-to-One 15  Each user-level thread maps to kernel thread  Advantage? Disadvantage?  Examples  Windows NT/XP/2000, Linux, Solaris 9 and later

Many-to-Many Model 16  User-level thread library:  thread creation, scheduling, synchronization  Multiple user level threads mapped to some (smaller of equal) number of kernel threads  Programmer can adjust # of kernel threads  Ex:  Solaris prior to version 9, Windows NT/2000 with the ThreadFiber package Thread library

Two-level Model 17  Similar to Many-to-Many model, except that it allows a user thread to be bound to kernel thread  Examples  IRIX  HP-UX  Tru64 UNIX  Solaris 8 and earlier Thread library

Thread Libraries 18  Thread library provides programmer with API for creating and managing threads  Two primary ways of implementation  User-level library: library entirely in user space  Kernel-level library supported by the OS

Pthreads 19  A POSIX standard (IEEE c) API for thread creation and synchronization  API specifies behavior of the thread library, implementation is up to developer of the library  May be provided either as user-level or kernel-level  Common in UNIX operating systems (Solaris, Linux, Mac OS X)

 #include #include int sum; /* this data is shared by the thread(s) */ void *runner(void *param); /* the thread */ int main(int argc, char *argv[]) { pthread_t tid; /* the thread identifier */ pthread_attr_t attr; /* set of attributes for the thread */ if (argc != 2) { fprintf(stderr,"usage: a.out \n"); return -1; } if (atoi(argv[1]) < 0) { fprintf(stderr,"Argument %d must be non-negative\n",atoi(argv[1])); return -1; } pthread_attr_init(&attr); /* get the default attributes */

 /* create the thread */ pthread_create(&tid,&attr,runner,argv[1]); pthread_join(tid,NULL); /* now wait for the thread to exit */ printf("sum = %d\n",sum); } /** * The thread will begin control in this function */ void *runner(void *param) { int i, upper = atoi(param); sum = 0; if (upper > 0) { for (i = 1; i <= upper; i++) sum += i; } pthread_exit(0); } 21 To compile: gcc –pthread main.c

Java Threads 22  Java threads are managed by the JVM  Typically implemented using the threads model provided by underlying OS  Java threads may be created by:  Extending Thread class  Implementing the Runnable interface

Threading Issues 23  Semantics of fork() and exec() system calls  Thread cancellation of target thread  Asynchronous or deferred  Signal handling  Thread pools

Semantics of fork() and exec() 24  Does fork() duplicate only the calling thread or all threads?  Some Unix provides two version of fork(), one duplicate all threads and another duplicates only the thread making fork() calls  exec() replace the entire process with the new program, including all threads

Thread Cancellation 25  Terminating a thread (referred to as target thread) before it finishes  Two general approaches:  Asynchronous cancellation terminates target thread immediately  Problematic if target thread is updating shared data, or has allocated some resource  Deferred cancellation allows target thread to periodically check (at cancellation points) if it should be cancelled

Signal Handling 26 Signals are used in UNIX systems to notify a process that a particular event has occurred 1. Signal is generated by particular event: segmentation fault, division by error, ctrl-c, kill …. 2. Signal is delivered to a process 3. Signal is handled by the process A signal handler is used to process signals Default signal handler, user-defined signal handler

Signal Handling & multi-threading 27 Deliver signal to all threads within the process, or just one particular thread ? Options: – Deliver signal to the thread to which the signal applies – Deliver the signal to every thread in the process – Deliver the signal to certain threads in the process – Assign a specific thread to receive all signals for the process and process the signals

Thread Pools 28  Create a number of threads in a pool where they await work  Advantages:  Usually slightly faster to service a request with an existing thread than create a new thread  Allows the number of threads in the application(s) to be bound to the size of the pool

Windows XP Threads 29  Implements the one-to-one mapping, kernel-level  Each thread contains  A thread id  Register set  Separate user and kernel stacks  Private data storage area  The register set, stacks, and private storage area are known as the context of the threads  The primary data structures of a thread include:  ETHREAD (executive thread block)  KTHREAD (kernel thread block)  TEB (thread environment block)

Linux Threads 30  Linux does not distinguish between processes and threads  Linux refers to them as tasks rather than threads  A flow of control within a program  System call clone(): create a new task, with flags specify the level of sharing between parent and child task  CLONE_FS: file system info is shared  CLONE_VM: memory space is shared  CLOSE_SIGHAND: signal handlers are shared  CLONE_FILES: the set of open files is shared  How to create a task with similar sharing of threads as described in this class ?  How to create a task with similar sharing as process ?