Click here to load reader

Chapter 4: Threads - rizal.blog.undip.ac. fileChapter 4: Threads Overview ... 2005 4.18 Silberschatz, Galvin and Gagne ©2005 Thread Cancellation ... 2005 4.20 Silberschatz, Galvin

  • View
    243

  • Download
    5

Embed Size (px)

Text of Chapter 4: Threads - rizal.blog.undip.ac. fileChapter 4: Threads Overview ... 2005 4.18...

  • Chapter 4: ThreadsChapter 4: Threads

  • 4.2 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Chapter 4: ThreadsChapter 4: Threads

    OverviewMultithreading ModelsThreading IssuesPthreadsWindows XP ThreadsLinux ThreadsJava Threads

  • 4.3 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Single and Multithreaded ProcessesSingle and Multithreaded Processes

  • 4.4 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    BenefitsBenefits

    Responsiveness

    Resource Sharing

    Economy

    Utilization of MP Architectures

  • 4.5 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    User ThreadsUser Threads

    Thread management done by user-level threads library

    Three primary thread libraries:POSIX PthreadsWin32 threadsJava threads

  • 4.6 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Kernel ThreadsKernel Threads

    Supported by the Kernel

    ExamplesWindows XP/2000SolarisLinuxTru64 UNIXMac OS X

  • 4.7 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Multithreading ModelsMultithreading Models

    Many-to-One

    One-to-One

    Many-to-Many

  • 4.8 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    ManyMany--toto--OneOne

    Many user-level threads mapped to single kernel threadExamples:

    Solaris Green ThreadsGNU Portable Threads

  • 4.9 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    ManyMany--toto--One ModelOne Model

  • 4.10 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    OneOne--toto--OneOne

    Each user-level thread maps to kernel threadExamples

    Windows NT/XP/2000LinuxSolaris 9 and later

  • 4.11 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    OneOne--toto--one Modelone Model

  • 4.12 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    ManyMany--toto--Many ModelMany Model

    Allows many user level threads to be mapped to many kernel threadsAllows the operating system to create a sufficient number of kernel threadsSolaris prior to version 9Windows NT/2000 with the ThreadFiber package

  • 4.13 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    ManyMany--toto--Many ModelMany Model

  • 4.14 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    TwoTwo--level Modellevel Model

    Similar to M:M, except that it allows a user thread to be bound to kernel threadExamples

    IRIXHP-UXTru64 UNIXSolaris 8 and earlier

  • 4.15 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    TwoTwo--level Modellevel Model

  • 4.16 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Threading IssuesThreading Issues

    Semantics of fork() and exec() system callsThread cancellationSignal handlingThread poolsThread specific dataScheduler activations

  • 4.17 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Semantics of fork() and exec()Semantics of fork() and exec()

    Does fork() duplicate only the calling thread or all threads?

  • 4.18 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Thread CancellationThread Cancellation

    Terminating a thread before it has finishedTwo general approaches:

    Asynchronous cancellation terminates the target thread immediatelyDeferred cancellation allows the target thread to periodically check if it should be cancelled

  • 4.19 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Signal HandlingSignal Handling

    Signals are used in UNIX systems to notify a process that a particular event has occurredA signal handler is used to process signals1. Signal is generated by particular event2. Signal is delivered to a process3. Signal is handled

    Options:Deliver the signal to the thread to which the signal appliesDeliver the signal to every thread in the processDeliver the signal to certain threads in the processAssign a specific threa to receive all signals for the process

  • 4.20 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Thread PoolsThread Pools

    Create a number of threads in a pool where they await workAdvantages:

    Usually slightly faster to service a request with an existing thread than create a new threadAllows the number of threads in the application(s) to be bound to the size of the pool

  • 4.21 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Thread Specific DataThread Specific Data

    Allows each thread to have its own copy of dataUseful when you do not have control over the thread creation process (i.e., when using a thread pool)

  • 4.22 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Scheduler ActivationsScheduler Activations

    Both M:M and Two-level models require communication to maintain the appropriate number of kernel threads allocated to the applicationScheduler activations provide upcalls - a communication mechanism from the kernel to the thread libraryThis communication allows an application to maintain the correct number kernel threads

  • 4.23 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    PthreadsPthreads

    A POSIX standard (IEEE 1003.1c) API for thread creation and synchronizationAPI specifies behavior of the thread library, implementation is up to development of the libraryCommon in UNIX operating systems (Solaris, Linux, Mac OS X)

  • 4.24 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Windows XP ThreadsWindows XP Threads

    Implements the one-to-one mappingEach thread contains

    A thread idRegister setSeparate user and kernel stacksPrivate data storage area

    The register set, stacks, and private storage area are known as the context of the threadsThe primary data structures of a thread include:

    ETHREAD (executive thread block)KTHREAD (kernel thread block)TEB (thread environment block)

  • 4.25 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Linux ThreadsLinux Threads

    Linux refers to them as tasks rather than threadsThread creation is done through clone() system callclone() allows a child task to share the address space of the parent task (process)

  • 4.26 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Java ThreadsJava Threads

    Java threads are managed by the JVM

    Java threads may be created by:

    Extending Thread classImplementing the Runnable interface

  • 4.27 Silberschatz, Galvin and Gagne 2005Operating System Concepts 7th edition, Jan 23, 2005

    Java Thread States Java Thread States

  • End of Chapter 4End of Chapter 4

    Chapter 4: ThreadsChapter 4: ThreadsSingle and Multithreaded ProcessesBenefitsUser ThreadsKernel ThreadsMultithreading ModelsMany-to-OneMany-to-One ModelOne-to-OneOne-to-one ModelMany-to-Many ModelMany-to-Many ModelTwo-level ModelTwo-level ModelThreading IssuesSemantics of fork() and exec()Thread CancellationSignal HandlingThread PoolsThread Specific DataScheduler ActivationsPthreadsWindows XP ThreadsLinux ThreadsJava ThreadsJava Thread States End of Chapter 4

Search related