Professional Documents
Culture Documents
xUNIT-2(ch-2)
xUNIT-2(ch-2)
xUNIT-2(ch-2)
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Chapter 4: Threads
● Overview
● Multithreading Models
● Threading Issues
Operating System Concepts – 9th Edition 4.2 Silberschatz, Galvin and Gagne ©2013
overview
Operating System Concepts – 9th Edition 4.3 Silberschatz, Galvin and Gagne ©2013
Single and Multithreaded Processes
Operating System Concepts – 9th Edition 4.4 Silberschatz, Galvin and Gagne ©2013
Benefits
Operating System Concepts – 9th Edition 4.5 Silberschatz, Galvin and Gagne ©2013
Multithreading Models
● Many-to-One
● One-to-One
● Many-to-Many
Operating System Concepts – 9th Edition 4.6 Silberschatz, Galvin and Gagne ©2013
Many-to-One
Operating System Concepts – 9th Edition 4.7 Silberschatz, Galvin and Gagne ©2013
One-to-One
● Each user-level thread maps to kernel thread
● Creating a user-level thread creates a kernel thread
● More concurrency than many-to-one
● Number of threads per process sometimes restricted
due to overhead
● Examples
● Windows
● Linux
● Solaris 9 and later
Operating System Concepts – 9th Edition 4.8 Silberschatz, Galvin and Gagne ©2013
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 prior to version 9
● Windows with the ThreadFiber
package
Operating System Concepts – 9th Edition 4.9 Silberschatz, Galvin and Gagne ©2013
Two-level Model
● Similar to M:M, except that it allows a user thread to be
bound to kernel thread
● Examples
● IRIX
● HP-UX
● Tru64 UNIX
● Solaris 8 and earlier
Operating System Concepts – 9th Edition 4.10 Silberschatz, Galvin and Gagne ©2013
Threading Issues
● Semantics of fork() and exec() system calls
● Signal handling
● Synchronous and asynchronous
● Thread cancellation of target thread
● Asynchronous or deferred
● Thread-local storage
● Scheduler Activations
Operating System Concepts – 9th Edition 4.11 Silberschatz, Galvin and Gagne ©2013
Semantics of fork() and exec()
Operating System Concepts – 9th Edition 4.12 Silberschatz, Galvin and Gagne ©2013
Signal Handling
● Signals are used in UNIX systems to notify a process that a
particular event has occurred.
● A signal handler is used to process signals,all signals follows
same pattern:
1. Signal is generated by particular event
2. Signal is delivered to a process
3. Signal is handled by one of two signal handlers:
1. default
2. user-defined
● Every signal has default handler that kernel runs when
handling signal
● User-defined signal handler can override default
Operating System Concepts – 9th Edition 4.13 Silberschatz, Galvin and Gagne ©2013
Synchronous & asynchronous signal
A signal may be received synchronously or asynchronously.
Ex; synchronous signal include illegal memory access , dividing by zero
synchronous signals are delivered to the same process that performed the
operation that caused the signal.
Operating System Concepts – 9th Edition 4.14 Silberschatz, Galvin and Gagne ©2013
Signal Handling (Cont.)
Operating System Concepts – 9th Edition 4.15 Silberschatz, Galvin and Gagne ©2013
Thread Cancellation
● Terminating a thread before it has finished
● ex: user presses a button on web browser to stop and all the threads
loading the image should be cancelled.
● Thread to be canceled is target thread
● Two general approaches:
● Asynchronous cancellation terminates the target thread
immediately
● Deferred cancellation allows the target thread to periodically
check if it should be cancelled
asynchronous cancellation becomes troublesome, in situations where
resources have been allocated to the cancelled threads or in the middle
of updating data which is shared by other threads.
This could be overcomed by deferred thread cancellation approach
where cancellation occurs only when the flag s checked to
determined whether or not it should be cancelled.
Operating System Concepts – 9th Edition 4.16 Silberschatz, Galvin and Gagne ©2013
Thread Cancellation (Cont.)
● Invoking thread cancellation requests cancellation, but actual
cancellation depends on thread state
Operating System Concepts – 9th Edition 4.18 Silberschatz, Galvin and Gagne ©2013
Scheduler Activations
● Both M:M and Two-level models require
communication to maintain the appropriate
number of kernel threads allocated to the
application
● Typically these models use an intermediate data
structure between user and kernel threads –
lightweight process (LWP)
● Appears to be a virtual processor on which
process can schedule user thread to run
● Each LWP attached to kernel thread
● How many LWPs to create?
one scheme for communication b/w user thread
library and kernel is known as scheduler activation
Operating System Concepts – 9th Edition 4.19 Silberschatz, Galvin and Gagne ©2013
scheduler activations
Operating System Concepts – 9th Edition 4.20 Silberschatz, Galvin and Gagne ©2013
End of Chapter 4
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013