Chapter 5 threads
This presentation is the property of its rightful owner.
Sponsored Links
1 / 28

Chapter 5: Threads PowerPoint PPT Presentation


  • 34 Views
  • Uploaded on
  • Presentation posted in: General

Chapter 5: Threads. Overview Multithreading Models Threading Issues Pthreads Solaris 2 Threads Windows 2000 Threads Linux Threads Java Threads. Thread vs. Process. A thread – lightweight process (LWP) is a basic unit of CPU utilization.

Download Presentation

Chapter 5: Threads

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Chapter 5 threads

Chapter 5: Threads

  • Overview

  • Multithreading Models

  • Threading Issues

  • Pthreads

  • Solaris 2 Threads

  • Windows 2000 Threads

  • Linux Threads

  • Java Threads

Operating System Concepts


Thread vs process

Thread vs. Process

  • A thread – lightweight process (LWP) is a basic unit of CPU utilization.

  • It comprises a thread ID, a program counter, a register set, and a stack.

  • A traditional (heavyweight) process has a single thread of control.

  • If the process has multiple threads of control, it can do more than one task at a time.

Operating System Concepts


Single and multithreaded processes

Single and Multithreaded Processes

Operating System Concepts


Motivation

Motivation

  • An application typically is implemented as a separate process with several threads of control.

  • For example, a web browser might have one thread display images or text while another thread retrieves data from the network.

  • It is more efficient for a process that contains multiple threads to serve the same purpose.

  • This approach would multithread the web-server process.

Operating System Concepts


Benefits

Benefits

  • Responsiveness: Multithreading an interactive application may allow a program to continue running even if part of it is blocked or is performing a lengthy operation, thereby increasing responsiveness to the user.

  • Resource Sharing: Threads share the memory and the resources of the process to which they belong.

  • Economy: Allocating memory and resources for process creation is costly.

  • Utilization of MP (multiprocessor) Architectures: Each thread may be running in parallel on a different processor.

Operating System Concepts


User threads

User Threads

  • Thread management done by user-level threads library

  • User-level threads are fast to create and manage.

  • If the kernel is single-threaded, then any user-level thread performing a blocking system call will cause the entire process to block.

  • Examples

    - POSIX Pthreads

    - Mach C-threads

    - Solaris UI-threads

Operating System Concepts


Kernel threads

Kernel Threads

  • Supported by the Kernel: The kernel performs thread creation, scheduling, and management in kernel space.

  • Examples

    - Windows 95/98/NT/2000

    - Solaris

    - Tru64 UNIX

    - BeOS

    - OpenBSD

    - FreeBSD

    - Linux

Operating System Concepts


Multithreading models

Multithreading Models

  • Many-to-One: The many-to-one model maps many user-level threads to one kernel thread.

  • One-to-One: The one-to-one model maps each user thread to a kernel thread.

  • Many-to-Many: The many-to-many multiplexes many user-level threads to a smaller or equal number of kernel threads.

Operating System Concepts


Many to one

Many-to-One

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

  • Used on systems that do not support kernel threads.

Operating System Concepts


Many to one model

Many-to-One Model

Operating System Concepts


One to one

One-to-One

  • Each user-level thread maps to kernel thread.

  • Examples

    - Windows 95/98/NT/2000

    - OS/2

Operating System Concepts


One to one model

One-to-one Model

Operating System Concepts


Many to many model

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

Operating System Concepts


Many to many model1

Many-to-Many Model

Operating System Concepts


Multithreading models conclusion

Multithreading Models - Conclusion

  • Whereas the many-to-one model allows the developer to create as many user threads as she wishes, true concurrency is not gained because the kernel can schedule only one thread at a time.

  • The one-to-one model allows for greater concurrency, but the developer has to be careful not to create too many threads within an application.

  • The many-to-many model suffers from neither of these shortcomings: Developer can create as many user threads as necessary, and the corresponding kernel threads can run in parallel on a multiprocessor. Also, when a thread performs a blocking system call, the kernel can schedule another thread for execution.

Operating System Concepts


Threading issues

Threading Issues

  • Semantics of fork() and exec() system calls: Two versions of fork are one that duplicates all threads and another that duplicates only the thread that invoked the fork system call.

  • Thread cancellation is the task of terminating a thread before it has completed.

    • Two different scenarios are asynchronous cancellation and deferred cancellation.

    • A thread checks if it should be cancelled at a point referred as cancellation point.

  • Signal handling

  • Thread pools

  • Thread specific data is a copy of data owned by a thread.

Operating System Concepts


Signal handling

Signal Handling

  • A signal is used in UNIX systems to notify a process that a particular event has occurred.

  • All signals follow the same pattern:

    • A signal is generated by the occurrence of a particular event.

    • A generated signal is delivered to a process.

    • Once delivered, the signal must be handled.

  • A signal can be synchronous or asynchronous:

    • Synchronous signals are delivered to the same process.

    • Asynchronous signal is generated by an external event.

Operating System Concepts


Signal handling1

Signal Handling

  • Every signal may be handled by one of two possible handlers:

    • A default signal handler

    • A user-defined signal handler

  • The options exist for delivering signals to a multithreaded program:

    • Deliver the signal to the thread to which the signal applies.

    • Deliver the signal to every thread in the process.

    • Deliver the signal to certain threads in the process.

    • Assign a specific thread to receive all signals for the process.

  • Windows 2000 uses asynchronous procedure calls (APCs) to emulate signals.

Operating System Concepts


Thread pools

Thread Pools

  • A multithread server has potential problems:

    • The time required includes thread creating and discarding.

    • Unlimited threads could exhaust system resources.

  • One solution to this issue is to use thread pools.

  • A thread pool has a number of threads being created at process startup, where they sit and wait for work.

  • The benefits of thread pools are:

    • It is usually faster to service a request with an existing thread.

    • A thread pool limits the number of threads at any one point.

Operating System Concepts


Thread specific data

Thread-Specific Data

  • A multithread server has potential problems:

    • The time required includes thread creating and discarding.

    • Unlimited threads could exhaust system resources.

  • One solution to this issue is to use thread pools.

  • A thread pool has a number of threads being created at process startup, where they sit and wait for work.

  • The benefits of thread pools are:

    • It is usually faster to service a request with an existing thread.

    • A thread pool limits the number of threads at any one point.

Operating System Concepts


Pthreads

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.

  • Refer to the program shown in Figure 5.5.

Operating System Concepts


Solaris 2 threads

Solaris 2 Threads

  • Solaris 2 is a version of UNIX with support for threads at the kernel and user levels, SMP, and real-time scheduling.

  • Solaris 2 implements the Pthread API and UI threads.

  • Between user- and kernel-level threads are ligthweight processes (LWPs).

  • Threads in a process multiplex to connect an LWP. An LWP corresponds a kernel thread.

  • A (un)bound user-level thread is (not) permanently attached to an LWP.

Operating System Concepts


Solaris 2 threads1

Solaris 2 Threads

Operating System Concepts


Solaris process

Solaris Process

Operating System Concepts


Windows 2000 threads

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

Operating System Concepts


Linux threads

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)

Operating System Concepts


Java threads

Java Threads

  • Java threads may be created by:

    • Extending Thread class

    • Implementing the Runnable interface

  • Calling the start method for the new object does two things:

    • It allocates memory and initializes a new thread in the JVM.

    • It calls the run method, making the thread eligible to be run by JVM.

  • Java threads are managed by the JVM.

Operating System Concepts


Java thread states

Java Thread States

Operating System Concepts


  • Login