The Importance of an Operating System
By Shritam Bhowmick
Web Application Penetration Tester
Before I get to the importance of the operating system, I must define what an Operating system is, the standard definition of an operating system and then deduce it’s importance respectively. In order to define operating system, one must understand that there is a distinction between software components and hardware components of a computer. The computer itself cannot accomplish everything, it needs support from the hardware as well as support fro the hardware in order to accomplish the task it has been assigned to do. This applies both to super computers, personal computers, Macs and any devices which fall in the realm of being called as a computer, including basic calculators, watches, mobile devices and any other gadget which use hardware components as well as pre-made integrated software components. Different files which are inter-related and accomplish a certain set of task makes up the operating system. These files are system level files which does scheduling, interrupting, data transferring and managing the flow of data and is low level software component of the computer itself. And hence he standard definition of an operating system would be:
An operating system is a set of program files which controls the resources of the computer system and allows the communication of hardware components of a computer to the software components of the computer system. Operating systems provides access to computer services which is possible only via working of both the hardware components and the software components.
The operating system is like a resource manager. It handles decision making and interruption. It manages the time for tasks to occur. So, what are the resources of the computer system?
- CPU – Central Processing Unit of the computer system – performs execution of a program operation. The complied program or the executable program has to be executed by the CPU to give the users the desired result. The program is taken from the secondary storage drive to the main memory. The CPU cannot access directly the secondary storage memory. The program must be brought from the secondary memory to the main memory for execution. Even the data to be processed has to be brought from the secondary memory to the main memory. The data which is to be executed must reside in the main memory for execution and hence cannot reside in the secondary memory for execution. Therefore first resource for the computer system is the CPU, the central processing unit.
- The Main Memory – When a piece of program has to be executed by the CPU, this data or program must reside in the main memory, hence if there is a multi-user system where more than one user program has to be executed simultaneously. To manage these programs for more than one user is a required responsibility of the operating system.
- Secondary Storage – This consists of the hard disks, magnetic tapes, floppy disks, CD-ROM drives and USB storage devices. The way the main memory is accessed and the way in which the secondary storage are accessed are different. There are different types of secondary storage as discussed above and hence the characteristics of these storage are different and never uniform. Accordingly, the different secondary storage devices are to be accessed are different. Main memory is accessed directly by the CPU, but secondary storage are not accessed directly by the CPU. For the CPU to access the secondary memory in case required data has to be fetched into the the main memory for execution of a certain program, the CPU has to consult or instruct the device driver. The device driver would look for the required files, data or programs which the CPU needs for execution, fetch it and bring them back to the CPU for such an execution to occur. Hence the way main memory is accessed and the way the secondary storage is accessed are different.
- Input/Output Devices (I/O devices) – These are the devices through which the user would feed the data, write a data and will interact physically such as keyboard, mouse, etc. These devices are the input devices. When the user wants to get the data as a output in visual form, such as video terminal, a printer, etc. All of them are output devices. The secondary storage could also be considered as a I/O device because a data file processed normally resides in the secondary storage, when a program is executed, the program opens the data file which is stored in the secondary storage device, reads the data file, and after reading it closes the file which means it also inputs the data but not through the keyboard but through the hard-disk or the secondary storage. Similarly when processing data, the output is stored in the secondary storage. So considering this, the secondary storage has to be considered as a special type of input/output devices.
So, there are majorly four types of resources which the computer system has. These are as discussed above, namely, the CPU, the main memory, the secondary storage and the input/output devices. The main memory and the secondary storage are types of memory modules and could be termed as ‘memory devices’ which the computer system has the responsibility to manage as ‘memory management’. Similarly, the computer system has to manage the secondary storage and the input/output devices and the secondary storage is treated as special kind of input/output components. The computer system requires to efficiently manage all these resources for providing time to multiple users or clients. These resources are confined in a single system but in modern operating system this isn’t the case. The advancement of information distribution. When a multiple computers are considered with interconnection with the help of networking can hence accomplish distributed working in order to give relevant information to the users. Even if the network fails, the isolated computers would still work. Information could be transferred from one computer to a different computer at a different geographical location through networking and hence distribution of information, the concept of distributed computing system comes.
Advantages of distributed computer systems:
- The information storage required is minimal because all the information is not required to be in single computer system. It could be distributed among different computers. The information is broken to number of pieces and stored on different isolated computers which are inter-networked.
- Having such a distributed computer environment prevents duplication of information. It prevents multiple files (data duplication) which isn’t desired. This increases the efficiency. Hence efficient utilization of resources. The modern operating systems caters this efficiency management.
Hence the responsibilities of the operating system includes controlling the hardware components, the resources which are provided to the computer system, to routinely schedule the tasks carried out by the computer system and hence along with merging the functions of hardware and software provide computer based services to the users of the computer system. Now, that we are aware of certain responsibilities of the operating system, we must enlist some of the important aspects of an operating system. They are as follows:
1. It moderates the relationship between the computer and its peripherals.
2. It helps in the management of files,- copying, deleting, moving of files from one storage location to the other.
3. It encourages the memory for its efficient usage and thus adding the speed of the computer.
4. It manages the activities of the processor in terms of job execution according to the priority of arrival ,of jobs.
5. It informs the user of nay hardware or software error.
6. It makes communication between the computer and the user or the operator possible.
In order to understand this perspective more deeper, consider reading the next concurrent posts about operating system. The posts would include process management, cache memory, deadlocks and the coverage I had put in the previous post. I shall take a leave and the next post would be on CPU management.