Click here to load reader

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

  • View
    258

  • Download
    1

Embed Size (px)

Text of Chapter 5: Threads - Homepage | · PDF fileOperating System Concepts 5.1 Silberschatz, Galvin...

  • Silberschatz, Galvin and Gagne 20025.1Operating System Concepts

    Chapter 5: Threads

    n Overviewn Multithreading Modelsn Threading Issuesn Pthreadsn Solaris 2 Threadsn Windows 2000 Threadsn 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 2n 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 poolsn 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 of

    the 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

Search related