An Operating System (OS) is software that acts as an interface between computer hardware components and the user. Every computer system must have at least one operating system to run other programs. Applications like MS Office, Games, Browsers, etc., need some environment to run and perform their tasks.
The OS helps you to communicate with the computer without knowing how to speak the computer’s language. It is not possible for the user to use any computer or mobile device without having an operating system.
There are various types of operating systems available suiting various types of devices and applications. There are 5 basic types of OS for effective functioning of computers.
These are the 5 types of Operating Systems.
Batch Operating System
This type of operating system does not interact with the computer directly. There is an operator which takes similar jobs having the same requirement and group them into batches. It is the responsibility of the operator to sort jobs with similar needs.
Each user prepares their job on an off-line device like punch cards and submits it to the computer operator. To speed up the processing, jobs with similar needs are batched together and run as a group. The programmers exit their programs with the operator and the operator then sorts the programs with similar requirements into batches.
The problems that occur with Batch Operating Systems are as follows −
- There is a lack of interaction between the user and the job.
- CPU is being often idle because the speed of the mechanical I/O devices is slower than the CPU.
- It is difficult to provide the desired priority.
Following are the advantages and disadvantages of the Batch Operating System:
- Duplication of software is less probable
- Each task is given equal importance
- The CPU idle time can be decreased
- Problem of reliability
- Care of security and integrity is to be taken of user data and programs
- There is a problem in data communication
Some of the examples of applications using the batch operating systems are Payroll System, Bank Statement Generation, etc.
Time-Sharing Operating System
Time-sharing is a technique that enables many people, located at various terminals, to use a particular computer system at the same time. Time-sharing or multitasking is a logical extension of multiprogramming. Processor’s time which is shared among multiple users simultaneously is termed time-sharing.
The main difference between Multi programmed Batch Systems and Time-Sharing Systems is that in the case of Multi programmed batch systems, the objective is to maximize processor use, whereas, in Time-Sharing Systems, the objective is to minimize response time.
Multiple jobs are executed by the CPU by switching between them, but the switches occur so frequently. Thus, the user can receive an immediate response. For example, in transaction processing, the processor executes each user program in a short burst or quantum of computation. That is, if n users are present, then each user can get a time quantum. When the user submits the command, the response time is in few seconds at most.
The operating system uses CPU scheduling and multiprogramming to provide each user with a small portion of a time. Computer systems that were designed primarily as batch systems have been modified to time-sharing systems.
Each of the processes passes through the following three states during processing:
- Active State: The user’s program is under the control of the CPU. Only one program is available in this state.
- Ready State: The user program is ready to execute but it is waiting for its turn to get the CPU. More than one user can be in a ready state at a time.
- Waiting State: The user’s program is waiting for some input/output operation. More than one user can be in a waiting state at a time.
Following are the advantages and disadvantages of the Time-Sharing Operating System:
- Provides the advantage of quick response.
- Avoids duplication of software.
- Reduces CPU idle time.
- The problem of reliability.
- Question of security and integrity of user programs and data.
- The problem of data communication.
An example of time-sharing can be as the following scenario: while we are using our smartphone we can listen to songs, search something, view pictures, and various notifications appear side by side. All this is enabled by a time-sharing operating system only. OS does the switching between these tasks time and again so that they all are executed continuously.
Distributed Operating System
These types of the operating system is a recent advancement in the world of computer technology and are being widely accepted all over the world and, that too, with a great pace. Various autonomous interconnected computers communicate with each other using a shared communication network. Independent systems possess their own memory unit and CPU.
These are referred to as loosely coupled systems or distributed systems. These system’s processors differ in size and function. The major benefit of working with these types of the operating system is that it is always possible that one user can access the files or software which are not actually present on his system but some other system connected within this network i.e., remote access is enabled within the devices connected in that network.
Following are the advantages and disadvantages of the Distributed Operating System:
- Failure of one will not affect the other network communication, as all systems are independent of each other
- Electronic mail increases the data exchange speed
- Since resources are being shared, computation is highly fast and durable
- Load on host computer reduces
- These systems are easily scalable as many systems can be easily added to the network
- Delay in data processing reduces
- Failure of the main network will stop the entire communication
- To establish distributed systems the language which is used are not well defined yet
- These types of systems are not readily available as they are very expensive. Not only that the underlying software is highly complex and not understood well yet
Some of the applications using Distributed Operating Systems are
- The very nature of an application may require the use of a communication network that connects several computers: for example, data produced in one physical location and required in another location.
There are many cases in which the use of a single computer would be possible in principle, but the use of a distributed system is beneficial for practical reasons. For example, it may be more cost-efficient to obtain the desired level of performance by using a cluster of several low-end computers, in comparison with a single high-end computer.
A distributed system can provide more reliability than a non-distributed system, as there is no single point of failure. Moreover, a distributed system may be easier to expand and manage than a monolithic uniprocessor system.
Network Operating System
Network Operating System is a computer operating system that facilitates connecting and communicate various autonomous computers over a network. An Autonomous computer is an independent computer that has its own local memory, hardware, and O.S. It is self capable to perform operations and processing for a single user. They can either run the same or different O.S.
The Network Operating System mainly runs on a powerful computer, that runs the server program. It facilitates the security and capability of managing the data, user, group, application, and other network functionalities. The main advantage of using a network operating system is that it facilitates the sharing of resources and memory amongst the autonomous computers in the network.
It can also facilitate the client computers to access the shared memory and resources administered by the Server computer. In other words, the Network Operating System is mainly designed to allow multiple users to share files and resources over the network.
The Network Operating System is not transparent in nature. The workstations connected in the network are aware of the multiplicity of the network devices. The Network Operating Systems can distribute their tasks and functions amongst connected nodes in the network, which enhances the system’s overall performance. It can allow multiple access to the shared resources concurrently, which results in inefficiency. One of the major importance of using a Network Operating System is remote access.
It facilitates one workstation to connect and communicate with another workstation in a secure manner. For providing security, it has authentication and access control functionality. The network operating system implements a lot of protocols over the network, which provides a proper implementation of the network functionalities. One drawback of the Network Operating System is its tightly coupled nature in the network.
Following are the advantages and disadvantages of the Network Operating System:
- Highly stable centralized servers
- Security concerns are handled through servers
- New technologies and hardware up-gradation are easily integrated into the system
- Server access is possible remotely from different locations and types of systems
- Servers are costly
- User has to depend on a central location for most operations
- Maintenance and updates are required regularly
Real-Time Operating System
Real-time operating system is an operating system intended to serve real time application that process data as it comes in, mostly without buffer delay.
In a Real-Time Operating System, processing time requirement are calculated in tenths of seconds increments of time. It is time-bound system that can be defined as fixed time constraints. In this type of system, processing must be done inside the specified constraints. Otherwise, the system will fail.
Here are important reasons for using Real Time Operating System:
- It offers priority-based scheduling, which allows you to separate analytical processing from non-critical processing.
- The Real time Operating System provides API functions that allow cleaner and smaller application code.
- Abstracting timing dependencies and the task-based design results in fewer interdependencies between modules.
- Real Time Operating System offers modular task-based development, which allows modular task-based testing.
- The task-based API encourages modular development as a task, will typically have a clearly defined role. It allows designers/teams to work independently on their parts of the project.
- Real-Time Operating System is event-driven with no time wastage on processing time for the event which is not occur.
Components of Real-Time Operating System
Here, are important component of Real-Time Operating System
The Scheduler: This component of Real-Time Operating System tells that in which order, the tasks can be executed which is generally based on the priority.
Symmetric Multiprocessing (SMP): It is a number of multiple different tasks that can be handled by the Real-Time Operating System so that parallel processing can be done.
Function Library: It is an important element of Real-Time Operating System that acts as an interface that helps you to connect kernel and application code. This application allows you to send the requests to the Kernel using a function library so that the application can give the desired results.
Memory Management: this element is needed in the system to allocate memory to every program, which is the most important element of the Real-Time Operating System.
Fast dispatch latency: It is an interval between the termination of the task that can be identified by the OS and the actual time taken by the thread, which is in the ready queue, that has started processing.
User-defined data objects and classes: Real-Time Operating System makes use of programming languages like C or C++, which should be organized according to their operation.
Following are the advantages and disadvantages of the Network Operating System:
- Maximum consumption: Maximum utilization of devices and system. Thus more output from all the resources.
- Task Shifting: Time assigned for shifting tasks in these systems are very less. For example in older systems it takes about 10 micro seconds. In shifting one task to another and in latest systems it takes 3 micro seconds.
- Focus On Application: Focus on running applications and less importance to applications which are in queue.
- Real Time Operating System In Embedded System: Since size of programs are small, RTOS can also be embedded systems like in transport and others.
- Error Free: These types of systems are error free.
- Memory Allocation: Memory allocation is best managed in these type of systems.
- Limited Tasks: Very few task run at the same time and their concentration is very less on few applications to avoid errors.
- Use Heavy System Resources: Sometimes the system resources are not so good and they are expensive as well.
- Complex Algorithms: The algorithms are very complex and difficult for the designer to write on.
- Device Driver And Interrupt signals: It needs specific device drivers and interrupt signals to response earliest to interrupts.
- Thread Priority: It is not good to set thread priority as these systems are very less pron to switching tasks.
Some of the applications using Real-Time Operating System are:
- Airlines reservation system.
- Air traffic control system.
- Systems that provide immediate updating.
- Used in any system that provides up-to-date and minute information on stock prices.
- Defence application systems like RADAR.
- Networked Multimedia Systems
- Command Control Systems
- Internet Telephony
- Anti-lock Brake Systems
- Heart Pacemaker