A computer system consists of three main components, namely, the hardware, the software, and the user.
Software can be further divided into mainly two parts: Application software and System Software.
Application software are the end-user programs or merely the applications meant to help the user with various tasks, such as creating documents, spreadsheets, etc., whereas system software is responsible for running the computer hardware and applications to administer system resources. The operating system is a system software.
What is an Operating System?
Every computer, tablet, or smartphone has an operating system that is responsible for providing the basic functionalities for that device. An Operating System (OS) is a software which controls the execution of various programs and acts as an interface between the user and the computer hardware. It is basically a piece of software which manages the allocation of computer hardware in such a way that a user can execute programs in a convenient and efficient manner.
The earliest computers did not come with an OS, rather, the first operating system was introduced in the early 1950’s known as GMOS which was created by General Motors for IBM’s machine, the 701. Some examples of popular operating systems today are Windows OS, Linux, macOS and mobile operating systems like Android and iOS.
Functions of an Operating System
The operating system is responsible for performing all the basic functions such as file management, memory management, process management, handling input and output management and controlling peripheral devices.
A process is a program which is being executed. The Central Processing Unit (CPU) or the processor of a computer executes a large number of programs. Therefore, in such cases, the operating system is in charge of process scheduling, that is, it manages which process will get the processor when and for how long. In other words, the OS will either assign the processor to a program or remove it, suspend or resume the process as required
There are many ways in which the processes can be scheduled such as Shortest Job First, in which processes with the shortest CPU time requirements are scheduled first; Round Robin Scheduling, where each process will be assigned a fixed CPU execution time in a cyclic way; and Priority Based Scheduling, where the process with the highest priority will be scheduled first.
Primary memory or main memory is a large array of words or bytes, each with its own address. It provides a quick storage system for the CPU to store or fetch directly from, due to which, the programs which are to be executed are kept in main memory.
The OS is responsible for keeping track of which parts of memory are currently being used and by which process and also decides when and which process will be loaded into memory. It also manages the allocation and deallocation of memory space to processes as needed.
Two common memory management techniques used by the OS are
(i)Partitioning, where the total memory space is partitioned into same or different sizes and (ii)Virtual Memory, which is a technique that allows the user to load the programs which are larger than the main memory of the computer.
A file system is organised into directories which further contains files and other directories for easy navigation. The OS, in this case, handles the creation as well as deletion of files and directories; maps the files onto disk storage; allocates and de-allocates the resources; oversees the protection of the files.
I/O or Device Management
The Operating system also makes sure that the user is able to use all kinds of peripheral or I/O devices on the computer easily, hiding the complexities of using hardware devices. The program responsible for this task is known as the I/O controller, which allocates the devices. It is responsible for activating a general device driver code and running the driver software for specific
hardware devices as and when required.
In order to prevent a process to be affected by the activities of another process, the OS employs a mechanism to ensure that the files, memory or processor can be operated on by only those processes and users that have gained proper authorisation from the operating system. This provides some means of authentication and authorisation that will consequently help in detecting errors. It also uses password protection to protect the user data.
The OS is also in charge or setting up a network connection and maintaining its security as well as managing networking protocols.
Services provided by an Operating System
The operating system also provides the following services:
- Program Execution: The Operating System is responsible for loading all types of programs into memory and executing them, whether it be user programs or system programs.
- Handling Input/Output Operations: The Operating System is responsible for handling all sort of I/O devices and their drivers (instructs the OS on how to communicate with the hardware so that it can function properly).
- Manipulation of File System: The Operating System is responsible for making of decisions regarding the storage of all types of data or files, such as how the data should be manipulated and stored. It also allows users to create or delete files and directories.
- Error Detection and Handling: The OS constantly checks for possible errors and takes appropriate action to mitigate or handle such errors.
- Resource Allocation: The Operating System makes sure that all the resources available are put to proper use by deciding which resources should be used by whom and for how long.
- Protection: The OS ensures all access to system resources are in a controlled manner and authenticated by means of a user id and password.