260 likes | 502 Views
Chapter 5: Threads. Overview Multithreading Models Threading Issues Pthreads Solaris 2 Threads Windows 2000 Threads Linux Threads Java Threads. Single and Multithreaded Processes. Benefits. Responsiveness Resource Sharing Economy Utilization of MP Architectures. User Threads.
E N D
Chapter 5: Threads • Overview • Multithreading Models • Threading Issues • Pthreads • Solaris 2 Threads • Windows 2000 Threads • Linux Threads • Java Threads Operating System Concepts
Single and Multithreaded Processes Operating System Concepts
Benefits • Responsiveness • Resource Sharing • Economy • Utilization of MP Architectures Operating System Concepts
User Threads • Thread management done by user-level threads library • Examples - POSIX Pthreads - Mach C-threads - Solaris threads Operating System Concepts
Kernel Threads • Supported by the Kernel • Examples - Windows 95/98/NT/2000 - Solaris - Tru64 UNIX - BeOS - Linux Operating System Concepts
Multithreading Models • Many-to-One • One-to-One • Many-to-Many Operating System Concepts
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 Operating System Concepts
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 Operating System Concepts
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 Model Operating System Concepts
Threading Issues • Semantics of fork() and exec() system calls. • Thread cancellation. • Signal handling • Thread pools • Thread specific data Operating System Concepts
The fork and exec system calls • Two versions of fork() • Duplicates all threads: not necessary if exec is called immediately • Duplicates only the thread that invoked the fork system call Operating System Concepts
Thread cancellation • Task of terminating a thread before is has completed • Two different scenarios: • Asynchronous cancellation • Deferred cancellation • Difficulty occurs when: • Resources have been allocated to a cancelled thread • While the cancelled thread is updating shared data • Problems can be alleviated with deferred cancellation at cancellation point Operating System Concepts
Signal Handling • A signal is used to notify a process that a particular event has occurred. e.g. divide by zero, illegal memory access • A signal can be received: • Synchronously: delivered to the process causing the signal • Asynchronously: generated by an external event • Signal 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 • Handler: • Default signal handler • User-defined handler Operating System Concepts
Signal Handling • Where should a signal be delivered: (depend on signal type) • Thread to which the signal applies • Every thread in the process • Certain thread in the process • A specific thread assigned (APC) Operating System Concepts
Thread Pools • Creating a separate thread is superior than creating a separate process when a server receiving a request: • Less time for creating thread • However, unlimited threads could exhaust system resources • Thread Pools: to create a number of threads at process startup and place them into a pool • If the pool contains no available thread, the server waits until one becomes free Operating System Concepts
Thread-Specific Data • Each thread needs its own copy of certain data in some circumstances Operating System Concepts
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. Operating System Concepts
Solaris 2 Threads Operating System Concepts
Solaris Process Operating System Concepts
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 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 may be created by: • Extending Thread class • Implementing the Runnable interface • Java threads are managed by the JVM. Operating System Concepts
Java Thread States Operating System Concepts