Input/Output Software Layers in Operating System

This post was written and made public with the intention of educating readers about the input/output software layers that are present in operating systems.

In its most fundamental form, input/output software can be broken down into the following four layers:

In every input/output software system, each of the four layers has a well-defined function to perform and a well-defined interface to the adjacent layers.

The figure given below shows all the layers, along with the hardware, of the input/output software system.

input output software layers

Here is another figure that shows all the layers of the input/output software system along with their principal functions.

operating system io software layers

Now let's briefly describe allĀ  four input/output software layers that are listed above.

Interrupt Handlers

The interrupt procedure will perform whatever actions are necessary in order to deal with an interrupt whenever one of those events takes place.

Device Drivers

Device drivers, in their most basic form, are device-specific codes that are used solely for the purpose of controlling the input/output devices that are connected to a computer system.

The term "device drivers" is likely the most familiar to you out of the four layers described in this post; in fact, you have probably come across it at some point. It is not possible to use a device that is connected to a computer without the appropriate device driver. To give you an example, let's say that in order to use our computer to browse the internet, we need to connect a MODEM to it first. As a result, in order for our MODEM to work, the device driver that corresponds to our MODEM needs to be installed on our computer. It is possible that the MODEM will not work if its device driver is not installed.

Device-Independent Input/Output Software

Some of the input/output software is device-specific, and other parts of that input/output software are device-independent.

The exact boundary between the device-independent software and drivers is device-dependent, and just because of that, some functions that could be done in a device-independent way sometimes are done in the drivers, for efficiency or any other reason.

Here is a list of some functions that are done in the device-independent software:

  • Uniform interfacing for device drivers
  • Buffering
  • Error reporting
  • Allocating and releasing dedicated devices
  • Providing a device-independent block size

User-Space Input/Output Software

Generally, most of the input/output software is within the operating system (OS), and some small part of that input/output software consists of libraries that are linked with the user programs and even whole programs running outside the kernel.

Operating System Quiz

« Previous Topic Next Topic »

Follow/Like Us on Facebook

Subscribe Us on YouTube