Various types of operating systems are :
- Single User OS : There is only one user and only his/her programs in the system memory. So there are not security issues too. This type of OS is called a ‘single user mono programming‘. e.g. DOS (Disk operating system)
- Multi-User OS : System is one but it is connected with multiple terminals from where user can use the system. Every user can submit one task at a time. Since there are multiple programs residing in main memory the CPU does not remains idle while I/O or completion of one task. The residency of multiple programs in main memory is called multiprogramming and OS that supports multiprogramming is called ‘multiprogramming OS’. Later when computers become powerful, a user was allowed to submit more than one task and this ability is called multitasking.
- Single user multitasking OS : PCs comes under this category. e.g. DOS, windows NT, Mac etc. DOS 7 offered cooperative multitasking (When process itself surrenders the CPU) and Windows NT and Mac OS X supports preemptive multitasking (When OS frees the CPU forcefully).
- Batch Processing Systems : A batch is a collection of jobs which requires similar types of resources. In batch processing, a small portion of the operating system called the ‘monitor’ is made resident in the main memory. The rest of the operating system resides on the hard-disk. This resident monitor takes control of the machine. It has four major components :
- JCL interpreter : It interprets the job control language (JCL) instructions and accordingly manages the resources for the job at hand.
- Job sequencer : It sequences the job pool, i.e., the sequence in which the jobs are to be submitted to the processor.
- Device drivers : These are the basic device drivers needed to interact with the supporting I/O devices.
- Interrupt handler : To recognize the I/O devices’ interrupts and handle them.
- Multiprocessor OS : These systems are non-Von Neumann computer architecture. The activity of concurrent execution of multiple programs on multiple CPUs is called multiprocessing. Multiprocessing can be divided into two types :
- Asymmetric multiprocessing : OS sits on one CPU and the other processors run user programs.
- Symmetric Multiprocessing : OS runs on any available processor or on all processors simultaneously, along with user programs.
The ability of an operating system to execute different parallel parts of the same program on multiple processors is called parallel processing.
The operating system that can handle multiple threads of a program is called a multi threading OS.
- Networking OS : OS that manges resources distributed over a computer network and enables communication across the network as well.
- Distributed OS (DOS): A distributed OS also runs on a network of computers.It manages the resources on the network in such a manner that the network appears, to the user of the system, as a single computer. The main design challenge of DOS is that the distributed system is a collection of processors that do not share memory or a clock. Therefore, synchronization among processes and nodes is achieved through logical and virtual clocks working on message passing mechanisms.
- Real time OS (RTOS) : An OS that can service time sensitive jobs (real-time jobs) in real time is called a real-time OS. The most important activity in RTOS is job scheduling. Real time OS have two types :
- Hard real-time OS : When the time frame fixed for an event is met by the operating system on or before the allowed deadline. A delay in this case can result in irreparable damage or loss.
- Soft real-time OS : When the delay in meeting the dealing of an event leads to degradation of the performance of the system and does result in damage e.g. media streaming.