Types of Operating System - Batch operating system, Time-sharing systems, Distributed OS, Network OS, Real Time OS
Operating System Concepts ( Multi tasking, multi programming, multi-user, Multi-threading )
WHAT IS AN OPERATING SYSTEM ?
An operating system, in simple words, is a SYSTEM SOFTWARE which is present inside the system. This operating system acts as an INTERFACE between the user and the system’s hardware. The hardware normally consists of the CPU (also known as the brain of the computer), the input/output devices (which consist of the keyboard, mouse, scanner, printers etc…), the RAM (the Random Access Memory which is also the main memory of the system) and the hard disk (which is known as the secondary memory of the system).
WHY IS IT NECESSARY ?
We all might think a common thing which is that “What makes the operating system so essential for a system to work”? The answer to this question is very simple. Let’s consider an example where there is no operating system and there is a direct contact between the user and the hardware. In this situation, the user cannot give a direct demand of performing some action to the hardware. Instead some program should be written in order to instruct the hardware about what is the next step to be done. Hence, for every single command of a user, a separate program should be devised in order to make the hardware understand and make it perform the task given to it. This is a difficult task for the user to keep devising the programs every single time they want to use the hardware. This is the place where the operating system acts as the master. It reduces the work load of the user and makes the access to the hardware as easier task.
Secondly, this operating system provides convenience to the uses and a throughput which makes it an essential component of the system.
FUNCTIONALITY OF AN OPERATING SYSTEM :
The following points describe the functionality of an operating system. That means these points tell us the functions which are essentially done by the operating system:
The operating system acts as a Resource Manager. This means that it prevents the system from being overloaded or from a less load. It manages the amount of hardware being used especially when there are a number of uses trying to access the different components of hardware at the same interval of time.
It also does the work of Process Management. This means that when a user is trying to perform various tasks on a given system at the same time, (like using word document along with playing music), the execution of all those processes is handled by the operating system using the concept of CPU Scheduling. It is useful when a user wants to do multitasking works on the system.
Along with the above mentioned functions, the operating system also performs the function of Storage Management. The data which we want to store permanently in our system is guided by the operating system for the storage. Hence the management of the storage of data in the secondary memory is taken care by this operating system using File system.
As and when computer architecture evolves, operating systems also need to be evolved and vice-versa. We know well that customer’s requirements are always dynamic in nature and prevalent technologies are also never the same. So, various kinds of operating systems have evolved and are evolving too
Broadly there are 5 types of operating system :
There are many types of operating systems that can be listed to study the types the operating systems. These types of operating systems are important as they explain us the evolution of the operating system with time. This evolution took place due to the customer’s demands and due to the enhancement in technology. The very essential ones out of those numerous types are mentioned below:
- Batch Operating Systems
- Time Sharing Systems
- Distributed Operating Systems
- Network Operating Systems
- Real Time Operating Systems
Batch Operating Systems
The very basic and ancient type of operating system which was first introduced was this batch operating system. These types of operating systems, as the name suggests, were used to perform a single task at a given interval of time. According to the concept of the batch operating systems, it states that until a JOB (or process) has been completely processed and has been successfully executed, we cannot perform another job or process at the same time.
The very first concept which denoted the task to be performed by the operating system was the concept of Job. A job is defined as a piece of work done on a computer. It generally consists of the program along with the data.
Let’s consider a scenario where , and are different jobs that are supposed to be assigned to the batch operating system. All the three jobs cannot be run, processed and executed at the same time as per the concept of this kind of a system. Hence firstly, the job is taken by the main memory (CPU) and is further checked for input/output is requirements. If the input/output is required, the gets transferred from the main memory to fulfill the requirements of the same. At this time the main memory remains empty. The job gets successfully executed after the requirements of the input and output are fulfilled. Therefore there is no user interaction involved in such systems. Such jobs that run without the end user interaction are called BATCH JOBS. Example for a batch job can be the program that reads a large file and gives out a report.
Batch processing is basically done for those frequently used programs that could be run with minimal human interaction. The users prepared a program (i.e. the Job) manually and coded the same upon an input magnetic tape which was submitted to the computer. After this, the user could no longer interact with the job. As soon as the processing was done, the output was obtained using the output magnetic tape.
There were a lot of drawbacks of using this type of operating systems. Consider an example where two jobs used are in different programming languages. One is in C-language and the other is in JAVA and both these languages work in different environment for execution. In that situation, the I/O magnetic tapes are supposed to be loaded and unloaded a number of times. And if the number of jobs increases along the increase in the number of users, the process becomes TIME CONSUMING. Most of the time gets consumed for the I/O processing where the CPU remains idle for long hours.
WORKING OF A BATCH OS:
The jobs are prepared individually by the users using the off-line devices known as the PUNCH CARDS and are given to the computer operators. Jobs with similar needs are batched together and are run as a group in order to increase the processing speed. The program written is then handed over to the operator which further analysis the program and divides them into batches.
ADVANTAGES OF A BATCH OPERATING SYSTEM :
The following are the advantages of using a batch operator:
Reduction of manual work.
Fast and well managed execution.
Reduction in the repetitive usage of the punch cards and magnetic tapes.
Reduction in CPU’s idle time.
DISADVANTAGES A BATCH OPERATING SYSTEM :
The following are the disadvantages of the batch operating systems:
SEQUENTIAL EXECUTION : Jobs in a batch system are always executed sequentially.
STARVATION : Different jobs might take different amount of time for execution which leads to the starvation of some of the jobs.
NO INTERACTION BETWEEN THE USER AND THE JOB : The user can no longer get an access to the job once it is submitted to the computer.
These operating systems are not very common today but were popular mainly in the second computer generation. In those days, the user had to do to a lot of manual work. Firstly, he prepared his job using punch cards and then submitted the same to the computer operator. But after this, the user could no longer interact with the job. But the computer needed to be used by many users and the jobs were quite variable in nature.
For example, if a user submits 5 jobs in the following order
- C program
- Visual Basics Program
- C program
- Visual Basics Program
- Java code
Now each time whenever a different language program is submitted, the computer operator needs to change the processing environment accordingly. And hence arises the need of Batch Operating System where jobs requiring similar work conditions are put together in a batch and are executed together. This saves the time which used to be wasted in switching from one environment to another.
Time-sharing operating systems
These types of systems are also known by many other names such as multitasking operating systems, fair share operating system, multi-programming (Round Robin Technique) etc…
The main idea behind a time sharing operating system can be explained with an example. Consider an example where a processor is undergoing some process for execution. During the process of execution, if the processor wants to wait for an I/O or for any other event, then at that time why should the CPU remain idle? In such situation, the CPU switches over to some other and starts running it. In case, if again the processor waits, the CPU again switches over to some other process and the process goes on. The main idea which could be understood from this context is that, the CPU should not remain idle and should remain busy in performing one or more number of tasks at the same interval of time.
One important thing to be noted here is that when the process volunteers to wait for some event, the CPU switches over to some other task. We do not force the CPU to leave the existing task and switch over to the other one. The process itself wants to perform some task which is not related to the CPU and hence it switches over to some other process. It maintains the working of all the systems simultaneously. As the name suggests, the time is being equally shared for all the processes. Hence, multi-tasking is multi-programming with time sharing. The various tasks are scheduled to access the CPU for a fixed time limit known as the time quantum. The switching of CPU among various processes is so rapid that it gives us an illusion of all processes working at the same time.
ADVANTAGES OF TIME SHARING OPERATING SYSTEMS :
The following are the advantages of using the time sharing operating systems:
Reduced response time.
Reduced CPU’s idle time.
It avoids the duplication of the software.
DISADVANTAGES OF TIME SHARING OPERATING SYSTEMS :
The following are the disadvantages of the time sharing operating systems:
The integrity and security of a user’s program is a doubt.
Problem of reliability.
Problem of data communication.
Distributed operating System
A distributed operating system is a kind of system which uses MULTIPLE CENTRAL PROCESSORS. This is done in a motive of serving multiple real- time applications and multiple users. These processors get the distributed amount of data processing jobs accordingly.
Consider an example in which a company has a lot of systems but has only one printer. All the members of the company want to take the printouts at the same time. This distributed operating system provides the users the access to that printer using different systems. This is possible only when all the systems of the company are linked together by a single communication network. Linking the systems does not mean that the data of each system is being shared with each other, it rather means that when a task is to be performed, it could be performed using any of the given systems in order to enhance the pace of work.
ADVANTAGES OF DISTRIBUTED OPERATING SYSTEM :
The following are the advantages of using the distributed operating systems:
A user at one site could get an access to the resource which is available at another site using this resource sharing facility.
The speed of data exchange with one another could be enhanced by using email.
Also even if one site of work encounters a failure, the remaining sites still potentially remain operating.
It also helps in reduction of the load on the host computer.
Data exchange process within the network is fast and reliable.
DISADVANTAGES OF DISTRIBUTED OPERATING SYSTEM :
The following are the disadvantages of the distributed operating systems:
The entire communication relies upon a single network and hence failure in this network will result in the failure of the entire communication.
The language used to establish the distributed systems are not well defined yet.
This kind of a system is very expensive and it is not readily available as the underlying software of this system is highly complex.
Network operating System
The network operating system is similar to distributed operating system when their architecture is concerned. This type of a system is a system that runs upon a server and provides the server the ability to manage the applications, security, users, data and other networking functions. The main motive of this kind of a system is to allow shared file and printer access to multiple computers in a network. The multiplicity of computers is known in such types of systems whereas in distributed type of operating systems, the multiplicity is unknown. All the works to be accessed are dependent upon the server and hence the work is done manually through the server. The drawback of these kinds of systems is that if any part of the server’s hardware encounters a problem, then all the systems will get affected whereas this is not the case in a distributed operating system.
EXAMPLES OF NETWORK OPERATING SYSTEM:
The following operating systems are the examples of the network operating system:
WINDOWS SERVER 2003
MICROSOFT WINDOWS SERVER 2008
MAC OS X ETC…
ADVANTAGES OF NETWORK OPERATING SYSTEM :
The following are the advantages of using a network operating system:
The security of the system is managed by the server.
The servers are centralized servers and are highly stable.
The upgrades to new technologies and hardware can be easily integrated into the system.
The elements can be replaced when the need increases.
DISADVANTAGES OF NETWORK OPERATING SYSTEMS :
The following are the disadvantages of the network operating systems:
These systems are quite expensive.
The malfunctioning of the server affects the whole communication and hence the entire network gets affected.
NOTE: The major difference between Distributed OS and Network OS is that in the former environment users are not aware of the multiplicity of the machines, the underlying configuration and other details while all the users are aware of all such details within the later.
Real Time operating System
These types of operating systems are the types of operating systems which do not perform buffering delays. These operating systems are intended to serve the real time applications. The deadline of a work is already fixed and hence the chances of delays in such systems are negligible. The real time operating system fails if it is not well defined or it does not have a fixed time constraint.
The following are the places where the real time operating systems are used:
They are used in the scientific experiments.
Medical imaging systems
Industrial control systems
Air traffic control systems
Thermal power plants etc…
The applications of such systems can easily help us to figure out the reasons of having no buffering delays in real time operating systems.
CLASSIFICATION OF REAL TIME OPERATING SYSTEM :
Based upon the strictness of the time constraints, the real time operating systems can be classified as follows:
HARD REAL TIME SYSTEMS
SOFT REAL TIME SYSTEMS
HARD REAL TIME SYSTEMS :
These types of real type systems are the systems which strictly follows the definition of a real time system. The time constraints are strictly followed here and hence no delays are accepted.
The following are places where the time constraints are strictly followed:
Air traffic control systems
Delays in the signaling of such systems are proved to lead hazardous accidents.
SOFT REAL TIME SYSTEMS :
These types of systems are the systems which are less strict when compared to the hard time real systems and hence a little bit delay could be accepted.
The following are the examples of the soft real time systems:
Video conferencing etc…
In such type of systems, even if a little bit delay has occurred, there will not be any hazardous incidents taking place.
There are so many other types of operating systems which are available and which are in applications at present. Also in the upcoming future, with the increasing demands of the consumers and development in technology, various other types of operating systems will be produced which will not only overcome the drawbacks of the present operating systems, but also will lead to the invention of better functioning operating systems.
For example, multimedia, virtual reality, Video Conferencing etc. Even if some delay is there, nothing malicious is going to happen.