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.
Here is another figure shows all the layers of the input/output software system along with their principal functions.
Now let's describe briefly, all the four input/output software layers that are listed above.
Whenever the interrupt occurs, then the interrupt procedure does whatever it has to in order to handle the interrupt.
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
- 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.
« Previous Tutorial Next Tutorial »
Like/Share Us on Facebook 😋