20
Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Chapter 5: Threads n Overview n Multithreading Models n Threading Issues n Pthreads n Solaris 2 Threads n Windows 2000 Threads n Linux Threads n Java Threads

Chapter 5: Threads - Homepage | Wiley · Operating System Concepts 5.1 Silberschatz, Galvin and Gagne 2002 Chapter 5: Threads n Overview n Multithreading Models n Threading Issues

  • Upload
    hadien

  • View
    284

  • Download
    1

Embed Size (px)

Citation preview

Silberschatz, Galvin and Gagne 20025.1Operating System Concepts

Chapter 5: Threads

n Overview

n Multithreading Models

n Threading Issuesn Pthreads

n Solaris 2 Threads

n Windows 2000 Threads

n Linux Threadsn Java Threads

Silberschatz, Galvin and Gagne 20025.2Operating System Concepts

Single and Multithreaded Processes

Silberschatz, Galvin and Gagne 20025.3Operating System Concepts

Benefits

n Responsiveness

n Resource Sharing

n Economy

n Utilization of MP Architectures

Silberschatz, Galvin and Gagne 20025.4Operating System Concepts

User Threads

n Thread management done by user-level threads library

n Examples- POSIX Pthreads

- Mach C-threads

- Solaris threads

Silberschatz, Galvin and Gagne 20025.5Operating System Concepts

Kernel Threads

n Supported by the Kernel

n Examples- Windows 95/98/NT/2000

- Solaris

- Tru64 UNIX

- BeOS

- Linux

Silberschatz, Galvin and Gagne 20025.6Operating System Concepts

Multithreading Models

n Many-to-One

n One-to-One

n Many-to-Many

Silberschatz, Galvin and Gagne 20025.7Operating System Concepts

Many-to-One

n Many user-level threads mapped to single kernel thread.

n Used on systems that do not support kernel threads.

Silberschatz, Galvin and Gagne 20025.8Operating System Concepts

Many-to-One Model

Silberschatz, Galvin and Gagne 20025.9Operating System Concepts

One-to-One

n Each user-level thread maps to kernel thread.

n Examples- Windows 95/98/NT/2000

- OS/2

Silberschatz, Galvin and Gagne 20025.10Operating System Concepts

One-to-one Model

Silberschatz, Galvin and Gagne 20025.11Operating System Concepts

Many-to-Many Model

n Allows many user level threads to be mapped to manykernel threads.

n Allows the operating system to create a sufficient numberof kernel threads.

n Solaris 2

n Windows NT/2000 with the ThreadFiber package

Silberschatz, Galvin and Gagne 20025.12Operating System Concepts

Many-to-Many Model

Silberschatz, Galvin and Gagne 20025.13Operating System Concepts

Threading Issues

n Semantics of fork() and exec() system calls.

n Thread cancellation.

n Signal handlingn Thread pools

n Thread specific data

Silberschatz, Galvin and Gagne 20025.14Operating System Concepts

Pthreads

n a POSIX standard (IEEE 1003.1c) API for thread creationand synchronization.

n API specifies behavior of the thread library,implementation is up to development of the library.

n Common in UNIX operating systems.

Silberschatz, Galvin and Gagne 20025.15Operating System Concepts

Solaris 2 Threads

Silberschatz, Galvin and Gagne 20025.16Operating System Concepts

Solaris Process

Silberschatz, Galvin and Gagne 20025.17Operating System Concepts

Windows 2000 Threads

n Implements the one-to-one mapping.

n Each thread contains

- a thread id- register set

- separate user and kernel stacks

- private data storage area

Silberschatz, Galvin and Gagne 20025.18Operating System Concepts

Linux Threads

n Linux refers to them as tasks rather than threads.

n Thread creation is done through clone() system call.

n Clone() allows a child task to share the address space ofthe parent task (process)

Silberschatz, Galvin and Gagne 20025.19Operating System Concepts

Java Threads

n Java threads may be created by:

F Extending Thread classF Implementing the Runnable interface

n Java threads are managed by the JVM.

Silberschatz, Galvin and Gagne 20025.20Operating System Concepts

Java Thread States