An operating system is a software component of a computer system that is responsible for the management of various activities of the computer and the sharing of computer resources. It hosts several applications that run on a computer and handles the operations of computer hardware. Users and application programs access the services offered by the operating systems, by means of system calls and application programming interfaces. Users interact with a computer operating system through Command Line Interfaces (CLIs) or Graphical User Interfaces known as GUIs. In short, an operating system enables user interaction with computer systems by acting as an interface between users or application programs and the computer hardware. Here is an overview of the different types of operating systems.
Real-time Operating System: It is a multitasking operating system that aims at executing real-time applications. Real-time operating systems often use specialized scheduling algorithms so that they can achieve a deterministic nature of behavior. The main object of real-time operating systems is their quick and predictable response to events. They either have an event-driven design or a time-sharing one. An event-driven system switches between tasks based of their priorities while time-sharing operating systems switch tasks based on clock interrupts.
Windows CE, OS-9, Symbian and LynxOS are some of the commonly known real-time operating systems.
Multi-user and Single-user Operating Systems: Computer operating systems of this type allow multiple users to access a computer system simultaneously. Time-sharing systems can be classified as multi-user systems as they enable a multiple user access to a computer through time sharing. Single-user operating systems, as opposed to a multi-user operating system, are usable by only one user at a time. Being able to have multiple accounts on a Windows operating system does not make it a multi-user system. Rather, only the network administrator is the real user. But for a Unix-like operating system, it is possible for two users to log in at a time and this capability of the OS makes it a multi-user operating system.
Windows 95, Windows 2000, Mac OS and Palm OS are examples of single-user operating systems. Unix and OpenVMS are examples of multi-user operating systems.
Multi-tasking and Single-tasking Operating Systems: When a single program is allowed to run at a time, the system is grouped under the single-tasking system category, while in case the operating system allows for execution of multiple tasks at a time, it is classified as a multi-tasking operating system. Multi-tasking can be of two types namely, pre-emptive or co-operative. In pre-emptive multitasking, the operating system slices the CPU time and dedicates one slot to each of the programs. Unix-like operating systems such as Solaris and Linux support pre-emptive multitasking. If you are aware of the multi-threading terminology, you can consider this type of multi-tasking as similar to interleaved multi-threading. Cooperative multitasking is achieved by relying on each process to give time to the other processes in a defined manner. This kind of multi-tasking is similar to the idea of block multi-threading in which one thread runs till it is blocked by some other event. MS Windows prior to Windows 95 used to support cooperative multitasking.
Palm OS for Palm handheld is a single-task operating system. Windows 9x support multi-tasking. DOS Plus is a relatively less-known multi-tasking operating system. It can support the multi-tasking of a maximum of four CP/M-86 programs.
Distributed Operating System: An operating system that manages a group of independent computers and makes them appear to be a single computer is known as a distributed operating system. The development of networked computers that could be linked and made to communicate with each other, gave rise to distributed computing. Distributed computations are carried out on more than one machine. When computers in a group work in cooperation, they make a distributed system.
Amoeba, Plan9 and LOCUS (developed during the 1980s) are some examples of distributed operating systems.
Embedded System: The operating systems designed for being used in embedded computer systems are known as embedded operating systems. They are designed to operate on small machines like PDAs with less autonomy. They are able to operate with a limited number of resources. They are very compact and extremely efficient by design.
Windows CE, FreeBSD and Minix 3 are some examples of embedded operating systems. The use of Linux in embedded computer systems is referred to as Embedded Linux.
Mobile Operating System: Though not a functionally distinct kind of operating system, mobile OS is definitely an important mention in the list of operating system types. A mobile OS controls a mobile device and its design supports wireless communication and mobile applications. It has built-in support for mobile multimedia formats. Tablet PCs and smartphones run on mobile operating systems.
Blackberry OS, Google's Android and Apple's iOS are some of the most known names of mobile operating systems.
Batch Processing and Interactive Systems: Batch processing refers to execution of computer programs in 'batches' without manual intervention. In batch processing systems, programs are collected, grouped and processed on a later date. There is no prompting the user for inputs as input data are collected in advance for future processing. Input data are collected and processed in batches, hence the name batch processing. IBM's z/OS has batch processing capabilities. As against this, interactive operating requires user intervention. The process cannot be executed in the user's absence.
Online and Offline Processing: In online processing of data, the user remains in contact with the computer and processes are executed under control of the computer's central processing unit. When processes are not executed under direct control of the CPU, the processing is referred to as offline. Let's take the example of batch processing. Here, the batching or grouping of data can be done without user and CPU intervention; it can be done offline. But the actual process execution may happen under direct control of the processor, that is online.
Operating systems contribute to simplifying human interaction with the computer hardware. They are responsible for linking application programs with the hardware, thus achieving easy user access to computers. Ever imagined a computer without an OS? It wouldn't be so user-friendly then!