- a process contains computational resources
- why not include the cpu
- multi-process architectures can be expensive
- processes are expensive - big and complex
- inter-process communication can be slow and limited - protection
boundaries
- competition for resources - multiple process copies
- window managers - one process manager per window
- threads - abstracting the cpu
- minimal execution state - save registers space, stack space;
lightweight processes
- minimal state, minimal context switch time
- all other resources come from the host process
- hiding and exploiting multi-cpu architectures - cpu-thread mapping
- multi-threaded processes
- once abstracted, the cpu can be easily multiplied via threads
- assigning several threads to the same process
- inter-thread communication is cheap - same address space
- common resources are shared, not duplicated
- thread scheduling is simple and flexible
- minimal state - fast and simple
- uniform and known environment (the process) - better decisions
- greater control over scheduling - intra-process scheduling
- another two-level scheduler - process and thread
- a window manager with one thread per window
- implementing threads
- thread control block - simple, small state
- thread scheduler - parameterized, coordination with processes scheduler
- concurrency control - threads are necessarily concurrent
- system calls - how much gets blocked
- the cobbler's children - threaded kernels
This page last modified on 7 October 2002.