Computers which can appear to run more than one program even with only one CPU. Computer scientists solve the problem that a CPU can only do one thing at a time by programming it so that it switches rapidly between tasks. This happens so rapidly that it appears that the computer is running more than one program at once. This is called "multiprogramming". This action is often controlled by the operating system (OS) controlling the hardware of the system.