Define Multiprogramming.
Multiprogramming: A multiprogramming operating system is system which allows extra than one active user program or part of user program to be stored into main memory simultaneously. These operating systems are fairly sophisticated. Each job which enters the system is kept in the job pool. Its pool contains all processes residing upon mass storage awaiting allocation of main memory. If some jobs are about to be brought in memory, and there is not sufficient room for all of them, so the system should choose between them. A time-sharing system is a type of multi-programming system.