Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
1K views

Thread Vs Processes in Distributed Systems

This document discusses distributed systems concepts including processes, threads, and code migration. It defines processes as units of allocation with their own resources and privileges, while threads are units of execution that share a process's resources. The document compares processes and threads, explaining that inter-process communication is more expensive than inter-thread communication within a process. It also describes user-level and kernel-level threads as well as a combined implementation using lightweight processes and user-level threads.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views

Thread Vs Processes in Distributed Systems

This document discusses distributed systems concepts including processes, threads, and code migration. It defines processes as units of allocation with their own resources and privileges, while threads are units of execution that share a process's resources. The document compares processes and threads, explaining that inter-process communication is more expensive than inter-thread communication within a process. It also describes user-level and kernel-level threads as well as a combined implementation using lightweight processes and user-level threads.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 13

CS 194:

Distributed Systems
Processes, Threads, Code Migration

Computer Science Division


Department of Electrical Engineering and Computer Sciences
University of California, Berkeley
Berkeley, CA 94720-1776

(Based on- textbook


EECS122 UCB slides) 1
Problem
• Escape the curse of blocking!
• A spreadsheet should be able to recompute the
values while waiting for user input
• A file server should be able to serve other clients
while waiting a disk read to complete
• …
Solutions
• Multi-processing
• Multi-threading
What is a Process?
• Execution context
– Program counter (PC) Stack
SP
– Stack pointer (SP)
– Data registers
• Code
• Data Heap
Static Data
• Stack PC
Code

Process
What is a Thread?
• Execution context
– Program counter (PC) Stack (T1)
SP (T1)
– Stack pointer (SP) Stack (T2)
– Data registers SP (T2)

Heap
Static Data
PC (T1)
PC (T2) Code

Process
Process vs. Thread (1)
• Process: unit of allocation
– Resources, privileges, etc
• Thread: unit of execution
– PC, SP, registers
• Each process has one or more threads
• Each thread belong to one process
Process vs. Thread (2)
• Processes
– Inter-process communication is expensive: need to
context switch
– Secure: one process cannot corrupt another process
Process vs. Thread (3)
• Threads
– Inter-thread communication cheap: can use process
memory and may not need to context switch
– Not secure: a thread can write the memory used by
another thread
User Level vs. Kernel Level Threads
• User level: use user-level thread package; totally
transparent to OS
– Light-weight
– If a thread blocks, all threads in the process block
• Kernel level: threads are scheduled by OS
– A thread blocking won’t affect other threads in the same
process
– Can take advantage of multi-processors
– Still requires context switch, but cheaper than process
context switching
Thread Implementation
• Combining kernel-level lightweight processes and user-level threads
– LWPs are transparent to applications
– A thread package can be shared by multiple LWPs
– A LWP looks constantly after runnable threads
User-level, Kernel-level and Combined

(Operating Systems, Stallings)


Example of Combined Threads

(Operating Systems, Stallings)


Multithreaded Servers
• A multithreaded server organized in a dispatcher/worker model

You might also like