As the name suggests, an operating system is a type of software without which you cannot operate or run a computer. It acts as an intermediary or translation system between computer hardware and application programs installed on the computer. In other words, you cannot directly use computer programs with computer hardware without having a medium to establish a connection between them.
Besides this, it is also an intermediary between the computer user and the computer hardware as it provides a standard user interface that you see on your computer screen after you switch on your computer. For example, the Windows and the Mac OS are also operating systems that provide a graphical interface with icons and pictures to enable users to access multiple files and applications simultaneously.
So, although the operating system is itself a program or software, it allows users to run other programs or applications on the system. We can say that is works behind the scenes to run your computer.
Major Functions of Operating System:
Types of Operating System:
1) Batch Processing Operating System:
The interaction between a user and the computer does not occur in this system. The user is required to prepare jobs on punch cards in the form of batches and submit them to the computer operator. The computer operator sorts the jobs or programs and keeps similar programs or jobs in the same batch and run as a group to speed up processing. It is designed to execute one job at a time. Jobs are processed on a first-come, first-serve basis, i.e., in the order of their submission without any human intervention.
For example, the credit card bill generated by banks is an example of batch processing. A separate bill is not generated for each credit card purchase, rather a single bill that includes all purchases in a month is generated through batch processing. The bill details are collected and held as a batch, and then it is processed to generate the bill at the end of the billing cycle. Similarly, in a payroll system, the salaries of employees of the company are calculated and generated through the batch processing system at the end of each month.
Advantages of Batch processing operating system:
Disadvantages of batch processing operating systems:
2) Time Sharing Operating System:
As the name suggests, it enables multiple users located at different terminals to use a computer system and to share the processor's time simultaneously. In other words, each task gets time to get executed, and thus all tasks are executed smoothly.
Each user gets the processor's time as they get while using a single system. The duration of time allocated to a task is called quantum or time slice; when this duration is over, OS starts the next task.
Advantages of time sharing operating system:
Disadvantages of time sharing operating system:
3) Distributed Operating System:
It uses or runs on multiple independent processors (CPUs) to serve multiple users and multiple real-time applications. The communication between processors is established through many communication lines such as telephone lines and high-speed buses. The processors may differ from each other in terms of size and function.
The availability of powerful microprocessor and advanced communication technology have made it possible to design, develop, and use the distributed operating system. Besides this, it is an extension of a network operating system that supports a high level of communication and integration of machines on the network.
Advantages of distributed operating system:
Disadvantages of distributed operating system:
4)Network Operating System:
As the name suggests, this OS connects computers and devices to a local area network and manages network resources. The software in a NOS enables the devices of the network to share resources and communicate with each other. It runs on a server and allows shared access to printers, files, applications, files, and other networking resources and functions over a LAN. Besides this, all users in the network are aware of each other's underlying configuration and individual connections. Examples: Ms Windows Server 2003 and 2008, Linux, UNIX, Novell NetWare, Mac OS X, etc.
Advantages of network operating system:
Disadvantages of network operating system:
5) Real-Time Operating System:
It is developed for real-time applications where data should be processed in a fixed, small duration of time. It is used in an environment where multiple processes are supposed to be accepted and processed in a short time. RTOS requires quick input and immediate response, e.g., in a petroleum refinery, if the temperate gets too high and crosses the threshold value, there should be an immediate response to this situation to avoid the explosion. Similarly, this system is used to control scientific instruments, missile launch systems, traffic lights control systems, air traffic control systems, etc.
This system is further divided into two types based on the time constraints:
Hard Real-Time Systems:
These are used for the applications where timing is critical or response time is a major factor; even a delay of a fraction of the second can result in a disaster. For example, airbags and automatic parachutes that open instantly in case of an accident. Besides this, these systems lack virtual memory.
Soft Real-Time Systems:
These are used for application where timing or response time is less critical. Here, the failure to meet the deadline may result in a degraded performance instead of a disaster. For example, video surveillance (cctv), video player, virtual reality, etc. Here, the deadlines are not critical for every task every time.
Advantages of real-time operating system:
Disadvantages of real-time operating system:
Generations of Operating System:
The first generation (1945 to 1955):
It was the time before the Second World War when the digital computer was not developed, and there were calculating engines with mechanical relays at this point in time. Later mechanical relays were replaced by vacuum tubes as they were very slow. But, the performance issue was not resolved even with vacuum tubes, besides these machines were too bulky and large as there were made of tens of thousands of vacuum tubes.
Furthermore, each of the machines was designed, programmed, and maintained by a single group of people. The programming languages and operating systems were not known, and absolute machine language was being used for programming.
These systems were designed for numerical calculations. The programmer was required to sign up for a block of time and then insert his plug board into the computer. In the 1950s, punch cards were introduced, which improved the computer performance. It allowed programmers to write programs on punch cards and read them into the system; the rest of the procedure was the same.
The second generation (1955 to 1965):
This generation started with the introduction of transistors in the mid-1950s. The use of transistors made the computers more reliable, and they began to be sold to customers. These machines were called mainframes. Only the big organization and government corporations could afford it. In this machine, the programmer was required to write the program on a paper then punch it on cards. The card would be taken to the input room and handed over to an operator to get the output. The printer provides the output which was taken to the output room. These steps made it a time-consuming task. So, the batch system was adopted to address this issue.
In a batch system, the tasks were collected in a tray in the form of batches in the input room and read onto a magnetic tape, which was taken to the machine room, where it was mounted on a tape drive. Then using a special program, the operator was to read the first task or job from the tape and run it, and the output was generated onto a second tape. OS automatically read the next job from the tape, and Jobs were completed one by one. After the completion of the batch, the input and output tapes were taken off, and the next batch was started. The printouts were taken from the output tape. It was mainly used for engineering and scientific calculations. The first OS was used in this generation in computers was called FMS (Fortran Monitor System), and IBMSYS, and FORTRAN were used as a high-level language.
The third generation (1965 to 1979):
This generation began with the introduction of 360 family of computers of IBM in 1964. In this generation, transistors were replaced by silicon chips, and the operating system was developed for multiprogramming, some of them even supported batch processing, time sharing, real-time processing, at the same time.
The fourth generation operating system (1979 to Present):
This generation of OS started with the introduction of personal computers and workstations. Chips that contain thousands of transistors were introduced in this generation that made possible the development of personal computers that supported the growth of networks and thus the development of network operating systems and distributed operating systems. DOS, Linux, and window operation systems were are few examples of OS of this generation.