What is the exact relation between the concepts of multi-user, multi-tasking, multi-programming, multi-processing, time-sharing etc?
Multi-user means the ability to support more than one user at the same time (contrast with single-user). Multi-tasking means the ability to perform more than one user level task at the same time. By “at the same time”, we refer to the impression got by the user. Of course, if you have a single CPU, at any given point in time, it can be executing only one instruction. (Actually, this is not strictly true for modern pipelined CPUs, but even those typically handle two or more instructions of the same process at any given time).Multi-programming means the ability to have more than one program in memory simultaneously, and time-sharing is a method of scheduling multiple processes by allowing each of them to run for a very short time on the CPU. To be multi-user, the system has to be multi-tasking. To be multi-tasking in an effective manner, it has to be multi-programmed. A system meant for interactive use (as opposed to running only batch jobs) is typically time-shared.Multi-processing usua