chapter 5: threads · java threads n java threads may be created by: f extending thread class f...

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

Upload: others

Post on 16-Oct-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

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

Page 2: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

Silberschatz, Galvin and Gagne 20025.2Operating System Concepts

Single and Multithreaded Processes

Page 3: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

Silberschatz, Galvin and Gagne 20025.3Operating System Concepts

Benefits

n Responsiveness

n Resource Sharing

n Economy

n Utilization of MP Architectures

Page 4: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

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

Page 5: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

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

Page 6: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

Silberschatz, Galvin and Gagne 20025.6Operating System Concepts

Multithreading Models

n Many-to-One

n One-to-One

n Many-to-Many

Page 7: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

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.

Page 8: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

Silberschatz, Galvin and Gagne 20025.8Operating System Concepts

Many-to-One Model

Page 9: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

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

Page 10: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

Silberschatz, Galvin and Gagne 20025.10Operating System Concepts

One-to-one Model

Page 11: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

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

Page 12: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

Silberschatz, Galvin and Gagne 20025.12Operating System Concepts

Many-to-Many Model

Page 13: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

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

Page 14: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

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.

Page 15: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

Silberschatz, Galvin and Gagne 20025.15Operating System Concepts

Solaris 2 Threads

Page 16: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

Silberschatz, Galvin and Gagne 20025.16Operating System Concepts

Solaris Process

Page 17: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

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

Page 18: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

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)

Page 19: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

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.

Page 20: Chapter 5: Threads · Java Threads n Java threads may be created by: F Extending Thread class F Implementing the Runnable interface n Java threads are managed by the JVM. Operating

Silberschatz, Galvin and Gagne 20025.20Operating System Concepts

Java Thread States