Silberschatz, Galvin and Gagne 20025.1Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.1
1 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
O P E R A T I N G S Y S T E M S
Module 4b : Thread
• Overview
• Multithreading Models
• Threading Issues
• Pthreads
• Solaris 2 Threads
• Windows 2000 Threads
• Linux Threads
• Java Threads
Silberschatz, Galvin and Gagne 20025.2Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.2
2 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Module 4: Threads
 Overview
 Multithreading Models
 Threading Issues
 Pthreads
 Solaris 2 Threads
 Windows 2000 Threads
 Linux Threads
 Java Threads
Silberschatz, Galvin and Gagne 20025.3Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.3
3 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Single and Multithreaded Processes
Silberschatz, Galvin and Gagne 20025.4Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.4
4 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Benefits
 Responsiveness
 Resource Sharing
 Economy
 Utilization of MP Architectures
Silberschatz, Galvin and Gagne 20025.5Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.5
5 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
User Threads
 Thread management done by user-level threads library
 Examples
- POSIX Pthreads
- Mach C-threads
- Solaris threads
Silberschatz, Galvin and Gagne 20025.6Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.6
6 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Kernel Threads
 Supported by the Kernel
 Examples
- Windows 95/98/NT/2000
- Solaris
- Tru64 UNIX
- BeOS
- Linux
Silberschatz, Galvin and Gagne 20025.7Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.7
7 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Multithreading Models
 Many-to-One
 One-to-One
 Many-to-Many
Silberschatz, Galvin and Gagne 20025.8Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.8
8 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Many-to-One
 Many user-level threads mapped to single kernel thread.
 Used on systems that do not support kernel threads.
Silberschatz, Galvin and Gagne 20025.9Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.9
9 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Many-to-One Model
Silberschatz, Galvin and Gagne 20025.10Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.10
10 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
One-to-One
 Each user-level thread maps to kernel thread.
 Examples
- Windows 95/98/NT/2000
- OS/2
Silberschatz, Galvin and Gagne 20025.11Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.11
11 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
One-to-one Model
Silberschatz, Galvin and Gagne 20025.12Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.12
12 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
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
Silberschatz, Galvin and Gagne 20025.13Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.13
13 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Many-to-Many Model
Silberschatz, Galvin and Gagne 20025.14Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.14
14 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Threading Issues
 Semantics of fork() and exec() system calls.
 Thread cancellation.
 Signal handling
 Thread pools
 Thread specific data
Silberschatz, Galvin and Gagne 20025.15Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.15
15 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
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.
Silberschatz, Galvin and Gagne 20025.16Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.16
16 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Solaris 2 Threads
Silberschatz, Galvin and Gagne 20025.17Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.17
17 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Solaris Process
Silberschatz, Galvin and Gagne 20025.18Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.18
18 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
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
Silberschatz, Galvin and Gagne 20025.19Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.19
19 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
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)
Silberschatz, Galvin and Gagne 20025.20Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.20
20 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Java Threads
 Java threads may be created by:
 Extending Thread class
 Implementing the Runnable interface
 Java threads are managed by the JVM.
Silberschatz, Galvin and Gagne 20025.21Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.21
21 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21
Java Thread States

Operating System : Ch4 b threads

  • 1.
    Silberschatz, Galvin andGagne 20025.1Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.1 1 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 O P E R A T I N G S Y S T E M S Module 4b : Thread • Overview • Multithreading Models • Threading Issues • Pthreads • Solaris 2 Threads • Windows 2000 Threads • Linux Threads • Java Threads
  • 2.
    Silberschatz, Galvin andGagne 20025.2Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.2 2 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Module 4: Threads  Overview  Multithreading Models  Threading Issues  Pthreads  Solaris 2 Threads  Windows 2000 Threads  Linux Threads  Java Threads
  • 3.
    Silberschatz, Galvin andGagne 20025.3Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.3 3 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Single and Multithreaded Processes
  • 4.
    Silberschatz, Galvin andGagne 20025.4Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.4 4 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Benefits  Responsiveness  Resource Sharing  Economy  Utilization of MP Architectures
  • 5.
    Silberschatz, Galvin andGagne 20025.5Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.5 5 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 User Threads  Thread management done by user-level threads library  Examples - POSIX Pthreads - Mach C-threads - Solaris threads
  • 6.
    Silberschatz, Galvin andGagne 20025.6Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.6 6 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Kernel Threads  Supported by the Kernel  Examples - Windows 95/98/NT/2000 - Solaris - Tru64 UNIX - BeOS - Linux
  • 7.
    Silberschatz, Galvin andGagne 20025.7Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.7 7 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Multithreading Models  Many-to-One  One-to-One  Many-to-Many
  • 8.
    Silberschatz, Galvin andGagne 20025.8Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.8 8 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Many-to-One  Many user-level threads mapped to single kernel thread.  Used on systems that do not support kernel threads.
  • 9.
    Silberschatz, Galvin andGagne 20025.9Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.9 9 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Many-to-One Model
  • 10.
    Silberschatz, Galvin andGagne 20025.10Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.10 10 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 One-to-One  Each user-level thread maps to kernel thread.  Examples - Windows 95/98/NT/2000 - OS/2
  • 11.
    Silberschatz, Galvin andGagne 20025.11Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.11 11 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 One-to-one Model
  • 12.
    Silberschatz, Galvin andGagne 20025.12Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.12 12 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 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
  • 13.
    Silberschatz, Galvin andGagne 20025.13Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.13 13 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Many-to-Many Model
  • 14.
    Silberschatz, Galvin andGagne 20025.14Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.14 14 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Threading Issues  Semantics of fork() and exec() system calls.  Thread cancellation.  Signal handling  Thread pools  Thread specific data
  • 15.
    Silberschatz, Galvin andGagne 20025.15Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.15 15 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 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.
  • 16.
    Silberschatz, Galvin andGagne 20025.16Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.16 16 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Solaris 2 Threads
  • 17.
    Silberschatz, Galvin andGagne 20025.17Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.17 17 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Solaris Process
  • 18.
    Silberschatz, Galvin andGagne 20025.18Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.18 18 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 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
  • 19.
    Silberschatz, Galvin andGagne 20025.19Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.19 19 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 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)
  • 20.
    Silberschatz, Galvin andGagne 20025.20Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.20 20 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Java Threads  Java threads may be created by:  Extending Thread class  Implementing the Runnable interface  Java threads are managed by the JVM.
  • 21.
    Silberschatz, Galvin andGagne 20025.21Operating System ConceptsOperating System Concepts Silberschatz and Galvin 19994.21 21 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 21 Java Thread States