Multiprocessing: Breaking up a single process into a number of pieces that run on different CPUs. As a general rule, the total number of CPU cycles required to do a job increases when it is multiprocessed because of communications overhead, but the wall-clock time decreases because of parallelism. Neither outcome is guaranteed.
Multiprogramming: Running multiple processes simultaneously on one CPU. Virtually all PC OSes support some multiprogramming either explicitly or via some contrivance like the MSDOS TSR (Terminate, Stay Resident) or "Device Driver" mechanisms.
Multiuser: Supporting multiple users simultaneously on the same CPU. Classically, this is the operating mode for many, probably most, mainframes. Some PC Operating systems such as Linux are designed to support multiple users. Others, such as MSDOS, are not. See Timesharing.
Process: A single string of operations seen by the Operating system as an entity. OSes can start, stop, or suspend, a process. A Process is pretty much the same thing as a Task although specific individuals or OSes may see some differences to the two terms.
Task: Pretty much the same thing as a process although a specific author or OS may draw distinctions. See Process.
Thread: A logical subset of a Process. Like a Process, it is a chain of logic understood by the OS that can be started, stopped, suspended, etc while leaving other parts running. Threads are designed to share (some) data and can be switched with much less overhead than Processes can. Temporary stalling of an individual thread causes (or should cause) the CPU to suspend the thread and move on to another.
Timesharing: An extreme case of Multiuser wherein users at consoles interact with a single computer as if they were the only user. This term was widespread in the 1970s when the concept was new. It is less used since the advent of the Personal computer has put dedicated CPUs on the individual desktop.
Return To Index Copyright 1994-2008 by Donald Kenney.