What is Operating System? | Computer Fundamentals
Operating System
An operating system is an interface between a user and computer hardware. The operating system's main aim is to provide a suitable environment to a user so that a user can execute a program properly and coherently.
The software which manages the computer hardware is the operating system. The OS gives the advantage to communicate with the computer without knowing the language of the computer. Every computer must have at least one operating system to execute any program. We cannot imagine any computer or mobile without an operating system.
Definition
- An OS is a program that works as an interface between the user and the computer hardware. It controls the execution of all kinds of the program known as the operating system.
- An operating system handles the allocation of resources and services like memory, processors, input and output devices like disk drives and printers.
- An operating system has a program to manage file management, memory management, process management, etc.
The popular operating system is mentioned below:
- Linux Operating System’
- Windows Operating System
- macOS
- Android
- iOS
The function of the Operating System
The following are the main function of the operating system:
- Memory Management
- Processor Management
- File Management
- Device Management
- I/O System Management
- Security
- Job Accounting
- Networking
- Communication Management
Memory Management
The management of primary and secondary memory is known as memory management. The main memory is the large collection of words and bytes, and these words and bytes have their own address.
Main memory provides fast storage. CPU can access main memory directly. The executed program must have been in the main memory. An operating system performs the following task for memory management:
- Operating systems maintain records of primary memory which means which part of the memory is currently in use and by whom and which parts are not in use.
- OS decides which process will get memory at which time and how much will get in the multiprogramming.
- Allocation and De-allocation of the memory, when requested by the process, is performed by the operating system.
Processor Management
OS decides which process will get the processor at which time and for what amount of time in the multiprogramming. This technique is known as process scheduling. Process management helps OS to perform various tasks like creation, scheduling, deletion of the processor. The OS should allocate the resource to such processes, which are used to share and exchange information. The OS is responsible for the management of all the running processes of the system. An operating system performs the following task for process management:
- Allocation and De-allocation of the processor, when requested by the process, is performed by the operating system.
Device Management
Device management maintains all the records of devices. An operating system performs the following task for device management:
- Maintain records of all devices. The program which is responsible for this task is known as the I/O controller.
- Allocation of the device in an effective manner.
- De-allocation of the devices.
File Management
A file system is generally organized in directories that contain files and other locations. With the help of file management, a file can be easily accessed. An operating system performs the following task for file management:
- Maintain all the file system-related activity like information, naming, retrieving, location, sharing, and protection of files.
- Allocation and de-allocation of the resources.
Other Important Function
I/O System Management: One of the main functions of the OS is to abstract the anomaly of the hardware devices from the users.
Security: OS prevents the system from any unauthorized access to programs and data. It also reduces the chance of malware and virus threats.
Job Accounting: Maintaining records of time and resources used by various users and jobs.
Networking: A distributed system doesn't share its own memory, hardware devices, or clocks with any other system. The processor used a network to communicate with one another.
Communication Management: An operating system also performs the coordination and assignment among compilers, interpreters, and other software resources of the various users of the computer systems.
Features of Operating System
We know that every computer should have at least one operating system. A system cannot work without an operating system. The operating system provides an environment to coordinates the uses of the hardware device among the different system programs and application programs for the various user. The operating system provides a suitable condition within which other programs can perform a useful task.
We can also say that the operating system is a collection of a special program that runs on the computer and allow it to work properly. An OS performs some basic tasks like recognizing input from the keyboard, maintaining a record of directories and files, displaying output on the screen, and control the peripheral device.
OS is designed to perform two basic purposes:
- OS allows us to control the allocation and uses of the resources among different users and tasks.
- It provides an interface between the hardware and the programmer that make it easier for the programmer to code, creation and debug application programs.
Some of the features of the operating system are given below:
- It allows us to create and modify the programs and data using any editor.
- It accesses the compiler to translate any high-level language into low-level language.
- It provides memory for the compiler program for execution.
- It handles the I/O operations.
- It allows to detect and handle an error.
- Resource allocation
Advantages of Operating System
An operating system has many advantages. Here are the few advantages of the operating system mentioned below:
- The operating system comes up with a graphical user interface in the way of icons, menus, and buttons.
- The operating system manages the memory management technique like paging, swapping, segmentation, etc.
- The operating system controls all input and output devices.
- The operating system controls the system resources. OS allocates the resource to process in such a way that different processes can utilize resources in an efficient way. It can be anything like files, hardware, or software.
- Operating system transform program into the process.
- The operating system is responsible for the organization of the processes.
- The operating system manages the process by making the process simple using threads.
- The operating system decides which process will be first executed in Central Processing Unit. This technique is known as process scheduling. First-come-first served, round-robin, priority scheduling, shortest job first scheduling are some of the basic process scheduling techniques.
- The operating system makes the computer simple to use.
- The operating system provides security for the system.
- The operating system allows us to share one bit of information with many more clients.
- The operating system can be refreshed time by time, having no problem.
- Some Operating systems are open source like UNIX/LINUX. The system can run effectively free of cost.
- The operating system is financially savvy.
Disadvantages of Operating System
- If an operating system gets corrupt, then we may lose all the content saves inside the operating system.
- The price of some operating systems like windows has very high, which can be difficult for any small organization.
- Some mysterious users can access your framework without your authorization.
Types of Operating System
Some of the various operating systems are mentioned here:
Batch Operating System-
This kind of operating system does not connect directly with the computers. In this kind of operating system, any user takes their job in any offline device like punch cards and processes to the computer operator. The jobs which have the same needs are grouped together, so the speed of the execution will be increased. An operator takes the program and sorts the program according to their similar needs into batches.
Advantages of Batch Operating System:
- The batch operating system can be shared among different users.
- The batch operating system has very less idle time.
- It is very tough to guess the completion time of any job. The batch operating system's processor knows the length of the job would be when it is in the queue.
Disadvantages of Batch Operating System:
- The computer system should have trained already to understand the batch system.
- Less interaction between user and interface.
- Very hard to debug.
- Sometimes the price of the batch operating system is very high.
- If any job does not execute, some other jobs have to wait for unknown times.
Batch operating system’s example: Payroll system, Bank statement.
Time-Sharing Operating System-
Time-sharing is a technique that allows a user at a different terminal to use a particular system at the same time. A Time-sharing operating system is the logical extension of multiprogramming. In this operating system, every task is given some amount of time to execute in an efficient way. In this OS, every user gets some amount of time of processor as they work on a single system.
This operating system provides direct access to various users where processor time is divided among them on a scheduling basis. The OS gives a set of times to a different user. After the end of this time interval, OS switches control to the next user. The time given by OS to each user is very less, and the user is given an impression that the whole CPU is given to them. The time given to the user by OS is called time slice or quantum.
The time-sharing operating system uses CPU scheduling and multi-programming so that various users at least get a small amount of time. This technique allows users to share the resource simultaneously. Each user gets a short time slot to execute their program when the system switches from one user to another.
Advantages of Time-Sharing Operating System:
Here are the few advantages of the time-sharing operating system:
- The chances of the duplication of software are very less.
- Each and every task gets an equal opportunity for execution.
- The idle time of the CPU can be decreased.
Disadvantages of Time-Sharing Operating System:
Here are the few disadvantages of the time-sharing operating system:
- The time-sharing operating system is not much reliable.
- Security of the user and integrity of the data is at stake.
- There is a problem with the transmission of data.
Example of the Time-Sharing Operating System: Multix, Unix
Distributed Operating System:
The latest advancement in computer technology is the distributed operating system. This operating system is accepted by users from all over the world with great results too. In this kind of operating system, different systems that communicate with each other are connected through a different communication network such as high-speed buses or telephone lines. Each and every system have their own memory and CPU. These kinds of systems are known as loosely coupled or distributed systems. The processor of the system may be different in size and function.
One of the major benefits of this type of operating system is that it is always possible that one user can remotely access some files or software which is present at any other system connected with the network.
Advantages of Distributed Operating System:
Here are the few advantages of the distributed operating system:
- The resource can be shared among the various system.
- Exchange of the data among different systems can be increased using electronic mail.
- Failure of one system will not affect the working condition of other systems.
- Excess pressure on the host computer reduces.
- Data processing will be faster.
Disadvantages of Distributed Operating System:
- Failure of the main network will stop the working of an entire system connected to a network.
- These are very expensive.
- The underlying software is very complex and not understood very well yet.
- The language which is used to set up distributed system is not very well known.
Example of the Distributed Operating System: LOCUS, etc.
Network Operating System:
These kinds of operating systems operate on the server. This OS allows the server to control data, users, groups, security, applications, and other networking function. The main use of these kinds of the operating system is that it allows the access of shared files, printers, applications and some other networking function among multiple computers over a small network area like LAN or some other private network. All the users of the network operating system are well aware of the configuration of all other users within the network and their individual connection and etc. This kind of system is called a tightly coupled system.
Advantages of Network Operating System:
Here are the few advantages of the network operating system:
- Very solid centralized server.
- The server controls the security trouble.
- New technology and upgraded hardware can be easily implemented into the system.
- The server can be remotely accessed from different places and types of the computer system.
Disadvantages of Network Operating System:
- The price of the server is very high.
- You have to wait most of the time on the central processor for any operations.
- Continuously required upgradation and maintenance.
Examples of Network Operating System:
- Microsoft Windows Server 2003, Microsoft Windows Server 2008, UNIX, Linux, Mac OS X, Novell NetWare, and BSD, etc.
Real-Time Operating System:
In the real-time system, the time required to process and respond to input is very small. This time interval is known as response time.
Real-Time Operating system is used where response time is very strict like missile system, military force, traffic control system, robots, weapon system, industrial control system, etc. These kinds of systems should have well-defined, fixed time limitations.
We can categorize the Real-Time Operating System into two types:
Hard Real-Time System:
This type of operating system is mainly designed for that kind of application where time limitation is very narrow. It also guarantees that the crucial task will be completed in a given time. There is almost no secondary storage present in a hard real-time operating system. And virtual memory is also rarely found.
Soft Real-Time System:
These types of operating systems are mainly designed for that kind of application where time limitation is a little less narrow. This type of OS has a little less utility than a hard real-time system.
Advantages of Real-Time Operating System:
Here are the few advantages of the real-time operating system:
- High utilization: The system and device get very well utilized and produce more output from all resources.
- Task Shifting: The time given for the shifting of every task is very less, something about 3 microseconds.
- More Focus on Application: More importance is given to the application which is currently running, not to which is a queue.
- This operating system is the embedded system. Due to the size of the program, which is very small, this system can be used in an embedded system like transport and others.
- Error-free: These types of systems are generally error-free.
- Memory Allocation: The allocation of memory is the very best in these kinds of systems.
Disadvantages of Real-Time Operating System:
- Task Limitation: Not many tasks can be run at the same time, and very little focus on some applications to avoid an error.
- The complexity of the Algorithm: The writing of the algorithm is very tough for the designer.
- Device driver and interrupt signal: Required certain device drivers and interrupt signals to respond earliest.
- Thread Priority: Thread priority is not good.
Examples:
- Scientific experiments, medical imaging systems, industrial control systems, weapon systems, robots, air traffic control systems, etc.
Mobile Operating System:
These kinds of operating systems are designed to run the applications on a smartphone, tablet, etc. These kinds of OS are generally lighter than some of the OS like Linux, UNIX, Windows, etc.
Examples of Mobile Operating System:
- IOS, Android, Blackberry, PalmOS, etc.