OS Input/Output Software Layers

Basically, input/output software organized in the following four layers:

  • Interrupt handlers
  • Device drivers
  • Device-independent input/output software
  • User-space input/output software

In every input/output software, each of the above given four layer 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 hardware of the input/output software system.

input output software layers

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

operating system io software layers

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

Interrupt Handlers

Whenever the interrupt occurs, then the interrupt procedure does whatever it has to in order to handle the interrupt.

Device Drivers

Basically, device drivers is a device-specific code just for controlling the input/output device that are attached to the computer system.

Device-Independent Input/Output Software

In 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, just because of that some functions that could be done in a device-independent way sometime be done in the drivers, for efficiency or any other reasons.

Here are the 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 Online Test

« Previous Tutorial Next Tutorial »

Like/Share Us on Facebook 😋