Lecture 3 Threads Erick Pranata © Sekolah Tinggi Teknik Surabaya 1.

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.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Lecture 6: Threads Chapter 4.
Modified from Silberschatz, Galvin and Gagne ©2009 Lecture 7 Chapter 4: Threads (cont)
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: 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.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 4: Threads CS 170 TY, Sept 2011.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Chapter 4: Threads Overview Multithreading.
4.1 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Chapter 4 Multithreaded Programming Objectives Objectives To introduce a notion of.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
Based on Silberschatz, Galvin and Gagne  2009 Threads Definition and motivation Multithreading Models Threading Issues Examples.
Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 4: Threads.
A. Frank - P. Weisberg Operating Systems Threads Implementation.
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: 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.
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.
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.
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.
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.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 4: Multithreaded Programming.
OPERATING SYSTEM CONCEPT AND PRACTISE
Chapter 4: Threads.
Chapter 4: Multithreaded Programming
Nadeem MajeedChoudhary.
Chapter 4: Threads.
Chapter 4: Threads.
Chapter 4: Threads.
Chapter 4: Threads.
Chapter 4: Threads.
Chapter 4: Threads.
OPERATING SYSTEMS Threads
Modified by H. Schulzrinne 02/15/10 Chapter 4: Threads.
Chapter 4: Threads.
Chapter 4: Threads.
CHAPTER 4:THreads Bashair Al-harthi OPERATING SYSTEM
Chapter 4: Threads.
Chapter 4: Threads.
Chapter 4: Threads.
Chapter 4: Threads.
Presentation transcript:

Lecture 3 Threads Erick Pranata © Sekolah Tinggi Teknik Surabaya 1

» Overview » Multithreading Models » Thread Libraries » Threading Issues » Operating System Examples » Windows XP Threads » Linux Threads 2 © Sekolah Tinggi Teknik Surabaya

» To introduce the notion of a thread — a fundamental unit of CPU utilization that forms the basis of multithreaded computer systems » To discuss the APIs for the Pthreads, Win32, and Java thread libraries » To examine issues related to multithreaded programming 3 © Sekolah Tinggi Teknik Surabaya

» Threads run within application » Multiple tasks with the application can be implemented by separate threads ˃Update display ˃Fetch data ˃Spell checking ˃Answer a network request » Process creation is heavy-weight while thread creation is light-weight » Can simplify code, increase efficiency » Kernels are generally multithreaded 4 © Sekolah Tinggi Teknik Surabaya

5

6

» Responsiveness » Resource Sharing » Economy » Scalability 7 © Sekolah Tinggi Teknik Surabaya

» Multicore systems putting pressure on programmers, challenges include: ˃Dividing activities ˃Balance ˃Data splitting ˃Data dependency ˃Testing and debugging 8 © Sekolah Tinggi Teknik Surabaya

» Thread management done by user-level threads library » Three primary thread libraries: ˃ POSIX Pthreads ˃ Win32 threads ˃ Java threads 9 © Sekolah Tinggi Teknik Surabaya

» Supported by the Kernel » Examples ˃Windows XP/2000 ˃Solaris ˃Linux ˃Tru64 UNIX ˃Mac OS X 10 © Sekolah Tinggi Teknik Surabaya

» Many-to-One » One-to-One » Many-to-Many 11 © Sekolah Tinggi Teknik Surabaya

» Many user-level threads mapped to single kernel thread » Examples: ˃Solaris Green Threads ˃GNU Portable Threads 12 © Sekolah Tinggi Teknik Surabaya

13 © Sekolah Tinggi Teknik Surabaya

» Each user-level thread maps to kernel thread » Examples ˃Windows NT/XP/2000 ˃Linux ˃Solaris 9 and later 14 © Sekolah Tinggi Teknik Surabaya

15 © Sekolah Tinggi Teknik Surabaya

» Allows many user level threads to be mapped to many kernel threads » Allows the operating system to create a sufficient number of kernel threads » Solaris prior to version 9 » Windows NT/2000 with the ThreadFiber package 16 © Sekolah Tinggi Teknik Surabaya

17 © Sekolah Tinggi Teknik Surabaya

» Similar to M:M, except that it allows a user thread to be bound to kernel thread » Examples ˃IRIX ˃HP-UX ˃Tru64 UNIX ˃Solaris 8 and earlier 18 © Sekolah Tinggi Teknik Surabaya

19 © Sekolah Tinggi Teknik Surabaya

20

» Thread library provides programmer with API for creating and managing threads » Two primary ways of implementing ˃Library entirely in user space ˃Kernel-level library supported by the OS » Tiga library populer: ˃POSIX Pthreads ˃Win32 Threads ˃Java Threads 21 © Sekolah Tinggi Teknik Surabaya

» 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 22 © Sekolah Tinggi Teknik Surabaya

23 © Sekolah Tinggi Teknik Surabaya

24 © Sekolah Tinggi Teknik Surabaya

25

» Semantics of fork() and exec() system calls » Thread cancellation of target thread ˃Asynchronous or deferred » Signal handling ˃Synchronous and asynchronous 26 © Sekolah Tinggi Teknik Surabaya

» Thread pools » Thread-specific data n Create Facility needed for data private to thread » Scheduler activations 27 © Sekolah Tinggi Teknik Surabaya

» Does fork() duplicate only the calling thread or all threads? 28 © Sekolah Tinggi Teknik Surabaya

» Terminating a thread before it has finished » Two general approaches: ˃Asynchronous cancellation terminates the target thread immediately. ˃Deferred cancellation allows the target thread to periodically check if it should be cancelled. 29 © Sekolah Tinggi Teknik Surabaya

» Signals are used in UNIX systems to notify a process that a particular event has occurred. » A signal handler is used to process signals 1.Signal is generated by particular event 2.Signal is delivered to a process 3.Signal is handled » Options: ˃Deliver the 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 30 © Sekolah Tinggi Teknik Surabaya

» 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 31 © Sekolah Tinggi Teknik Surabaya

» Allows each thread to have its own copy of data » Useful when you do not have control over the thread creation process (i.e., when using a thread pool) 32 © Sekolah Tinggi Teknik Surabaya

» Both M:M and Two-level models require communication to maintain the appropriate number of kernel threads allocated to the application » Scheduler activations provide upcalls - a communication mechanism from the kernel to the thread library » This communication allows an application to maintain the correct number kernel threads 33 © Sekolah Tinggi Teknik Surabaya

34 © Sekolah Tinggi Teknik Surabaya

35

» Windows XP Threads » Linux Thread 36 © Sekolah Tinggi Teknik Surabaya

37 © Sekolah Tinggi Teknik Surabaya

» 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) 38 © Sekolah Tinggi Teknik Surabaya

» Linux refers to them as tasks rather than threads » Thread creation is done through clone() system call » clone() allows a child task to share the address space of the parent task (process) » struct task_struct points to process data structures (shared or unique) 39 © Sekolah Tinggi Teknik Surabaya

» fork() and clone() system calls » Doesn’t distinguish between process and thread ˃Uses term task rather than thread » clone() takes options to determine sharing on process create » struct task_struct points to process data structures (shared or unique) 40 © Sekolah Tinggi Teknik Surabaya

41