03/02/10 Process - a program in execution - note the creation time Multiprocessing - multiple processes - each with own code, data and PCB - context switch (has a cost) Multithreading - thread of control is a path of execution through a program - in multithreading, a process has multiple points of execution - threads have a "shared address space" Process-only servers - each request handled by a separate process - two alternative approaches 1. create a new process to handle a new request (i.e. a parent process forks child processes); delete the process when you've done 2. on startup, create a pool of processes (preforking) new requests are assigned to an idle process; when you've done, don't delete the process; (might kill them after they've handled a certain number of requests, to avoid probs with, e.g., memory leaks) Thread-only servers - each request handled by a separate thread within a single process Hybrid servers - several processes each with several threads