Open In App

Goals of I/O software

Last Updated : 17 Jun, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will try to understand as well as cover all the Goals of Input/output (I/O) software.

I/O Software is used for interaction with I/O devices like mouse, keyboards, USB devices, printers, etc. Several commands are made via external available devices which makes the OS function upon each of them one by one. 

I/O software is organized in the following ways: 

User Level Libraries– Provides a simple interface to program for input-output functions. 

Kernel Level Modules– Provides device driver to interact with the device-independent I/O modules and device controller.

Hardware-A layer including hardware controller and actual hardware which interact with device drivers.

Let us now see all the goals of I/O software in the below illustrated section one after the another:

Goals Of I/O Software

In this section, we will talk about all the goals of I/O software one after the another which are illustrated below: 

1. Uniform naming: For example naming of file systems in Operating Systems is done in a way that the user does not have to be aware of the underlying hardware name. 

2. Synchronous versus Asynchronous: When the CPU is working on some process it goes into the block state when the interrupt occurs. Therefore most of the devices are asynchronous. And if the I/O operation is in a blocking state it is much easier to write the I/O operation. It is always the operating system’s responsibility to create such an interrupt-driven user program. 

3. Device Independence: The most important part of I/O software is device independence. It is always preferable to write a program that can open all other I/O devices. For example, it is not necessary to write the input-taking program again and again for taking input from various files and devices. As this creates much work to do and also much space to store the different programs. 

4. Buffering: Data that we enter into a system cannot be stored directly in memory. For example, the data is converted into smaller groups and then transferred to the outer buffer for examination. Buffer has a major impact on I/O software as it is the one that ultimately helps store the data and copy data. Many devices have constraints and just to avoid it some data is always put into the buffer in advance so the buffer rate of getting filled with data and getting empty remains balanced.

5. Error handling: Errors and mostly generated by the controller and also they are mostly handled by the controller itself. When the lower level solves the problem it does not reach the upper level. 

6. Shareable and Non-Shareable Devices: Devices like Hard Disk can be shared among multiple processes while devices like Printers cannot be shared. The goal of I/O software is to handle both types of devices.

7. Caching: Caching is the process in which all the most accessible and most used data is kept in a separate memory (known as Cache memory) for access by creating a copy of the originally available data. The reason for implementing this Caching process is just to increase the speed of accessing the data since accessing the Cached copy of data is more efficient as compared to accessing the original data. 


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads