Single-User Operating System:
Single user operating’ system allows a single user to access the computer at a time. This type of operating system is mostly used on computers having single processor such as PCs. In single user operating system, the CPU remains idle during an I/O operation. So the CPU utilization is reduced. Single user operating system is further divided into two classes.
i. Single-User Single Tasking Operating System:
The single-user single tasking operating system allows a single user to execute one program at a time. MS-DOS is an example of this kind of operating system.
ii. Single-User Multitasking Operating System:
In multitasking, more than one program can be executed at a time on a single computer. Single-user multitasking operating system allows a single user to execute multiple programs at the same time. The Windows and Mac-OS are examples of single-user multitasking operating systems. For example, in Windows you can load multiple programs at a time such as Ms-Excel, Ms-Word, Ms-Access as well as you can listen the music.
Multi-Programmed Batch System:
In multiprogramming, multiple programs (or jobs) of different users can be executed simultaneously (i.e. at the same time). The multiple jobs that have to be run simultaneously must be kept in main memory and the operating system must manage them properly. If these jobs are ready to run, the processor must decide which one to run.
In multi-programmed batch system, the operating system keeps multiple jobs in main memory at a time. There may be many jobs that enter the system. Since in general, the main memory is too small to accommodate all jobs. So the jobs that enter the system to be executed are kept initially on the disk in the job pool. In other words, you can say that a job pool consists of all jobs residing on the disk awaiting allocation of main memory. When the operating system selects a job from a job pool, it loads that job into memory for execution.
Normally, the jobs in main memory are smaller than the jobs in job pool. The jobs in job pool are awaiting allocation of main memory. If several jobs are ready to be brought into memory, and if there is not enough room for all of them, then the system must require memory management. Similarly, if many jobs are ready to run at the same time, the system must schedule these jobs.
The processor picks and begins to execute one of the jobs in main memory. Some jobs may have to wait for certain tasks (such as I/O operation), to complete. In a simple batch system or non-multi-programmed system, the processor would sit idle. In multi-programmed system, the CPU switches to second job and begins to execute it. Similarly, when second job needs to wait, the processor is switched to third job, and so on. The processor also checks the status of previous jobs, whether they are completed or not.
The multi-programmed system takes less time to complete the same jobs than the simple batch system. The multi-programmed systems do not allow interaction between the processes (or jobs) when they are running on the computer.
Multiprogramming increases the CPU’s utilization. Multi-programmed system provides an environment in which various computer resources are utilized effectively. The CPU always remains busy to run one of the jobs until all jobs complete their execution.
In multi-programmed system, the hardware must have the facilities to support multiprogramming.