+ All Categories
Home > Documents > Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview...

Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview...

Date post: 18-Dec-2015
Category:
View: 217 times
Download: 0 times
Share this document with a friend
Popular Tags:
39
Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris 2 Threads Windows 2000 Threads Linux Threads Java Threads
Transcript
Page 1: Silberschatz, Galvin and Gagne  2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.
Page 36: Silberschatz, Galvin and Gagne  2002 5.1 Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris.

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.

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.

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.

Silberschatz, Galvin and Gagne 20025.39Operating System Concepts

Java Thread States


Recommended