OS Input/Output Software Goals

Device independency is the main goal to design input/output software.

Here, device independency means that it should be possible to write computer programs that an access any input/output device without having to specify the device in advance.

Here are the list of some important issues for input/output software:

  • Error handling
  • Synchronous versus asynchronous transfers
  • Buffering

Here synchronous versus asynchronous transfers can also be called as blocking versus interrupt driven transfers.

The table given below describes the above listed three issues for input/output software:

Input/Output Software Issue Description
Error Handling Generally, errors should be handled as close as possible to the computer hardware. It should try to correct the error itself if it can in case if the controller discovers a read error. And in case if it can't then the device driver should handle it.
Synchronous Vs. Asynchronous Most physical input/output is asynchronous. The central processing unit starts the transfer and goes off to do something other until the interrupt arrives. In case if input/output operations are blocking the user programs are much easier to write. After a read system call the program is automatically suspended until the data are available in buffer.
Basically, it is up to the OS to make the operation that are really asynchronous look blocking to the user programs.
Buffering Sometime data that come off a device can't be stored directly in its final destination.
Buffering sometime has a major impact on the system's input/output performance because it involves considerable copying.

Operating System Online Test

« Previous Tutorial Next Tutorial »

Follow/Like Us on Facebook

Subscribe Us on YouTube