What is the difference between multiuser multitasking and multiprogramming?

Multiuser multitasking is what many mainframe computers were set up to do after about 1965, when it was realized that a computer was sitting idle for most of the time, waiting for the next input to arrive. By setting up a number of different terminals, each with its own address, and its own interrupt number, several different users could be working with a computer at the same time, running different programs, which required the computer to perform different tasks, such as creating data tables, calculating values based upon variables that were input, reading records and assigning each different record a value based upon a calculation which used variables included in the records, and so forth. Multiprograming is what an operating system such as Windows, or the Apple OS for Macintosh does, as well as many Linux operating systems. Several different programs are loaded into a desktop computer, such as a web browser, mail program, games, image editor, etcetera, and they are all opened up and running at the same time. Of course, most desktop computers were not powerful enough until recently to be able to actually manipulate an image while browsing the internet while running a game. However, the newest generation of processors, which are clocking over 2 gigaHertz, can easily perform all of these functions without appearing to hesitate at all.