Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
THREADS
WHAT IS A THREAD?
Processes and
Threads
= instruction trace
RPC RPC
Time Request Request
Process 1
RPC RPC
Request Request
Server Server
Process 1
(a) RPC Using Single Thread
Server Server
Server
RPC and (a) RPC Using Single Thread RPC
Request
Thread B (Process 1)
Request
RPC
Thread A (Process 1) Request Server
Thread B (Process 1)
(b) RPC Using One Thread per Server (on a uniprocessor)
RPC
Request Server
Blocked, waiting for response to RPC
(b) RPC Using One Thread per Server (on a uniprocessor) Blocked, waiting for processor, which is in use by Thread B
Running
Blocked, waiting for response to RPC
Thread A (Process 1)
Thread B (Process 1)
Multithreading Thread C (Process 2) Time quantum
expires
Process
created
model P
Multiple threads
P cannot
P
P make concurrent systems
(a) Pure user-level (b) Pure kernel-level calls (c) Combined
P
No possibility of exploiting
User-level thread Kernel-level thread P Process
multicore architectures
(a) Pure user-level (b) Pure kernel-level
Process B Process B
Ready Running Ready Running
Thread states Ready Running Ready Running Ready Running Ready Running
Process B Process B
Ready Running Ready Running
Blocked Blocked
Colored state
is current state
Figure 4.6 Examples of the Relationships Between User-Level Thread States and Process States
KLT Kernel
Space
Kernel
Space
P
User-level thread Kernel-level thread P Process
P P P
Giorgio Giacinto 2019 Operating Systems Figure 4.5 User-Level and Kernel-Level
19 T
user thread
KLT
Many-to-
many model
k k k kernel thread
Combined Kernel
Space
Kernel
Space P
Kernel
Space
model
P
ULTP and KLT
P (a) Pure user-level
P P (b) Pure kernel-level
signal signal
Running
Linux creation
State
termination
Ready scheduling Executing Zombie
Process/Thread
model signal
event
or
event
Uninterruptible
Interruptible
Preempted
Ready Running
Windows
Thread States
Resource Unblock/Resume Terminate
Resource Available Block/
Available
Suspend
Transition Unblock
Waiting Terminated
Resource Not Available
Not Runnable