silberschatz, galvin and gagne 2002 5.1 operating system concepts chapter 5: threads overview...
Post on 18-Dec-2015
224 views
TRANSCRIPT
![Page 1: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/1.jpg)
Silberschatz, Galvin and Gagne 20025.1Operating System Concepts
Chapter 5: Threads
Overview Multithreading Models Threading Issues Pthreads Solaris 2 Threads Windows 2000 Threads Linux Threads Java Threads
![Page 2: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/2.jpg)
Silberschatz, Galvin and Gagne 20025.2Operating System Concepts
PROCESS
![Page 3: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/3.jpg)
Silberschatz, Galvin and Gagne 20025.3Operating System Concepts
Single and Multithreaded Processes
![Page 4: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/4.jpg)
Silberschatz, Galvin and Gagne 20025.4Operating System Concepts
![Page 5: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/5.jpg)
Silberschatz, Galvin and Gagne 20025.5Operating System Concepts
BENEFITS
![Page 6: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/6.jpg)
Silberschatz, Galvin and Gagne 20025.6Operating System Concepts
![Page 7: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/7.jpg)
Silberschatz, Galvin and Gagne 20025.7Operating System Concepts
Remote Procedure Call Using Threads
![Page 8: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/8.jpg)
Silberschatz, Galvin and Gagne 20025.8Operating System Concepts
Remote Procedure Call Using Threads
![Page 9: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/9.jpg)
Silberschatz, Galvin and Gagne 20025.9Operating System Concepts
PROCESS VERSUS TREAD CONTEXT SWITCHING
PER PROCESS ITEMS PER THREAD ITEMSAddress space Program counterGlobal variables RegistersOpen files StackChild processes StatePending alarmsSignals, signal handlersAccounting info
![Page 10: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/10.jpg)
Silberschatz, Galvin and Gagne 20025.10Operating System Concepts
THREAD STATES
Spawn: New thread created
Running, Ready: As before
Block: Waiting for event. Do the mini-context switchi.e. save and restore registers, PC and SP
Unblock: Change state to Ready
Finish: Finish the thread within the process
![Page 11: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/11.jpg)
Silberschatz, Galvin and Gagne 20025.11Operating System Concepts
![Page 12: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/12.jpg)
Silberschatz, Galvin and Gagne 20025.12Operating System Concepts
Relationship Between Threads and Processes
Threads:Process Description Example Systems
1:1 Each thread of execution is aunique process with its ownaddress space and resources.
Traditional UNIX implementations
M:1 A process defines an addressspace and dynamic resourceownership. Multiple threadsmay be created and executedwithin that process.
Windows NT, Solaris, OS/2,OS/390, MACH
![Page 13: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/13.jpg)
Silberschatz, Galvin and Gagne 20025.13Operating System Concepts
Relationship Between Threads and Processes
Threads:Process Description Example Systems
1:M A thread may migrate from oneprocess environment toanother. This allows a threadto be easily moved amongdistinct systems.
Ra (Clouds), Emerald
M:M Combines attributes of M:1and 1:M cases
TRIX
![Page 14: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/14.jpg)
Silberschatz, Galvin and Gagne 20025.14Operating System Concepts
![Page 15: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/15.jpg)
Silberschatz, Galvin and Gagne 20025.15Operating System Concepts
USER – LEVEL THREADS
![Page 16: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/16.jpg)
Silberschatz, Galvin and Gagne 20025.16Operating System Concepts
KERNEL – LEVEL THREADS
![Page 17: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/17.jpg)
Silberschatz, Galvin and Gagne 20025.17Operating System Concepts
User Threads
Thread management done by user-level threads library
Examples
- POSIX Pthreads
- Mach C-threads
- Solaris threads
![Page 18: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/18.jpg)
Silberschatz, Galvin and Gagne 20025.18Operating System Concepts
Kernel Threads
Supported by the Kernel
Examples
- Windows 95/98/NT/2000
- Solaris
- Tru64 UNIX
- BeOS
- Linux
![Page 19: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/19.jpg)
Silberschatz, Galvin and Gagne 20025.19Operating System Concepts
Multithreading Models
Many-to-One
One-to-One
Many-to-Many
![Page 20: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/20.jpg)
Silberschatz, Galvin and Gagne 20025.20Operating System Concepts
Many-to-One
Many user-level threads mapped to single kernel thread.
Used on systems that do not support kernel threads.
![Page 21: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/21.jpg)
Silberschatz, Galvin and Gagne 20025.21Operating System Concepts
Many-to-One Model
![Page 22: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/22.jpg)
Silberschatz, Galvin and Gagne 20025.22Operating System Concepts
One-to-One
Each user-level thread maps to kernel thread.
Examples
- Windows 95/98/NT/2000
- OS/2
![Page 23: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/23.jpg)
Silberschatz, Galvin and Gagne 20025.23Operating System Concepts
One-to-one Model
![Page 24: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/24.jpg)
Silberschatz, Galvin and Gagne 20025.24Operating System Concepts
Many-to-Many Model
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 2 Windows NT/2000 with the ThreadFiber package
![Page 25: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/25.jpg)
Silberschatz, Galvin and Gagne 20025.25Operating System Concepts
Many-to-Many Model
![Page 26: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/26.jpg)
Silberschatz, Galvin and Gagne 20025.26Operating System Concepts
Threading Issues
Semantics of fork() and exec() system calls. Thread cancellation. Signal handling Thread pools Thread specific data
![Page 27: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/27.jpg)
Silberschatz, Galvin and Gagne 20025.27Operating System Concepts
Pthreads
a POSIX standard (IEEE 1003.1c) API for thread creation and synchronization.
API specifies behavior of the thread library, implementation is up to development of the library.
Common in UNIX operating systems.
![Page 28: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/28.jpg)
Silberschatz, Galvin and Gagne 20025.28Operating System Concepts
![Page 29: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/29.jpg)
Silberschatz, Galvin and Gagne 20025.29Operating System Concepts
/* example – cont. */
![Page 30: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/30.jpg)
Silberschatz, Galvin and Gagne 20025.30Operating System Concepts
Solaris 2 Threads
![Page 31: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/31.jpg)
Silberschatz, Galvin and Gagne 20025.31Operating System Concepts
![Page 32: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/32.jpg)
Silberschatz, Galvin and Gagne 20025.32Operating System Concepts
Solaris Process
![Page 33: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/33.jpg)
Silberschatz, Galvin and Gagne 20025.33Operating System Concepts
![Page 34: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/34.jpg)
Silberschatz, Galvin and Gagne 20025.34Operating System Concepts
Solaris Thread Execution
Synchronization Suspension Preemption Yielding
![Page 35: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/35.jpg)
![Page 36: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/36.jpg)
Silberschatz, Galvin and Gagne 20025.36Operating System Concepts
Windows 2000 Threads
Implements the one-to-one mapping. Each thread contains
- a thread id
- register set
- separate user and kernel stacks
- private data storage area
![Page 37: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/37.jpg)
Silberschatz, Galvin and Gagne 20025.37Operating System Concepts
Linux Threads
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)
![Page 38: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/38.jpg)
Silberschatz, Galvin and Gagne 20025.38Operating System Concepts
Java Threads
Java threads may be created by:
Extending Thread class Implementing the Runnable interface
Java threads are managed by the JVM.
![Page 39: Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris](https://reader030.vdocuments.net/reader030/viewer/2022032703/56649d245503460f949fb1d1/html5/thumbnails/39.jpg)
Silberschatz, Galvin and Gagne 20025.39Operating System Concepts
Java Thread States