110 likes | 300 Views
Processes. Chapter 3. Processes in Distributed Systems. Processes and threads Introduction to threads Distinction between threads and processes Threads in distributed systems Clients/servers Code migration Motivation and models Migration in heterogeneous systems. Processes.
E N D
Processes Chapter 3
Processes in Distributed Systems • Processes and threads • Introduction to threads • Distinction between threads and processes • Threads in distributed systems • Clients/servers • Code migration • Motivation and models • Migration in heterogeneous systems
Processes • Virtual processors • Created by OS to execute a program • Process table to keep track of virtual processors • Process is a program in execution • Executed on one of the virtual processors • Operating systems ensure that processes are independent and transparent • Do not affect each other’s correctness • Resource sharing is transparent • Address space
Costs of Processes • Processes are costly • Creating a process requires creation of an entire new address space • Initializing memory segment, copying instructions to text segment, initializing stack • Switching b/w processes is costly as well • Saving CPU context, modify registers of the memory management unit, TLBs, swapping processes (if number of processors are larger than what can fit in main memory)
Threads • Similar to a process • Perceived as execution of (a part of) program • Information maintained for sharing CPU is minimal • Context of threads is captured by CPU context • May be a little more information is needed for management (like locks) • Very little overheads • Thread switching is easy • Can provide performance gains
Threads in Non-Distributed Systems • With processes a blocking system call blocks the entire process • Interactive programs like spreadsheets • Computations cannot proceed while waiting on user inputs or vice-versa • Having two threads can solve problems • Parallel programs • Multiple threads, single address space • Cooperating programs need to communicate • IPCs are costly
Drawbacks of IPCs • Needs kernel intervention (due to separate address spaces) • Multiple context switches • Context switches are costly (changing MMU, flushing TLB)
Implementing Threads • Implemented as package • Creation, destruction, synchronization • Simpler approach – User level thread library • All thread management is done at user level • Kernel not even that there are multiple threads • Thread creation, destruction and context switching are cheap • Creating stack • Saving registers • Drawback – Blocking system call blocks entire process
Lightweight Process • A hybrid approach • Lightweight process runs in context of single process • Reside in kernel • System also offers user-level threads • All operations occur in user mode • Thread package can be shared by multiple LWPs • LWP is created by kernel and given its own stack
LWPs Continued • LWP has a scheduling routine and searches for a thread to execute • Thread pool • Context switching to a thread if found • On mutex, context switching happens if a runnable thread is found • LWP need not be informed • LWP context switching happens on a blocking system call • Several advantages • Cheap, will not block entire process, extends to multiprocessing environment