Efficiency is important, because memory is expensive. Sometimes you don't have enough to hold the entirety of all the programs the machine is running, especially if you are using a large program like an X server. To get around this, Unix uses a strategy called virtual memory . It doesn't try to hold all the code and data for a process in memory. As the process runs, Unix tries to anticipate how the working set will change and have only the pieces that are needed in memory.
Memory is far less expensive nowadays and even low-end machines have quite a lot of it.
On modern single-user machines with 64MB of memory and up, it's possible to run X and a typical mix of jobs without ever swapping. Even in this happy situation, the part of the operating system called the memory manager still has important work to do. To do this, it keeps a table of data and code segments. This table is used to pass commands to a specialized part of the underlying hardware called an MMU or memory management unit . Modern processor chips have MMUs built right onto them.