0% found this document useful (0 votes)
166 views15 pages

Threads: Multithreading Models Threading Issues Pthreads

A thread is the basic unit of CPU utilization and comprises a thread ID, program counter, register set, and stack. There are three multithreading models: many-to-one maps many user threads to a single kernel thread, one-to-one maps each user thread to a kernel thread, and many-to-many allows mapping of many user threads to many kernel threads. Issues with multithreading include semantics of system calls, thread cancellation, signal handling, and thread-specific data.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
166 views15 pages

Threads: Multithreading Models Threading Issues Pthreads

A thread is the basic unit of CPU utilization and comprises a thread ID, program counter, register set, and stack. There are three multithreading models: many-to-one maps many user threads to a single kernel thread, one-to-one maps each user thread to a kernel thread, and many-to-many allows mapping of many user threads to many kernel threads. Issues with multithreading include semantics of system calls, thread cancellation, signal handling, and thread-specific data.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 15

Threads

 Overview
 Multithreading Models
 Threading Issues
 Pthreads
Thread
 A thread
 sometimes called a lightweight
process(LWP)
 is a basic unit of CPU utilization
 it comprises a thread ID, a
program counter , a register set
and a stack.

Operating System Concepts


Single and Multithreaded Processes
Benefits

 Responsiveness

 Resource Sharing

 Economy

 Utilization of MP Architectures
User Threads

 Thread management done by user-level threads library

 Examples
- POSIX Pthreads
- Mach C-threads
- Solaris threads
Kernel Threads

 Supported by the Kernel

 Examples
- Windows 95/98/NT/2000
- Solaris
- Tru64 UNIX
- BeOS
- Linux
Multithreading Models

 Many-to-One

 One-to-One

 Many-to-Many
Many-to-One

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

 Used on systems that do not support kernel threads.


Many-to-One Model
One-to-One

 Each user-level thread maps to kernel thread.

 Examples
- Windows 95/98/NT/2000
- OS/2
One-to-one 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
Many-to-Many Model
Threading Issues

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


 Thread cancellation.
 Signal handling
 Thread pools
 Thread specific data
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.

You might also like