I/O Organization

Operating Systems are hierarchical in nature. There are different layers of abstractions.

The functions of the OS should be separated according to their complexity, their characteristic time scale, and their levels of abstraction.

Same idea to organize I/O.

We have the following hierarchal organization (top to bottom):

  1. Logical I/O: provides open, close, read, write
  2. Device I/O: converts operations & data into I/O instructions
  3. Scheduling & control: queuing and scheduling of operations

There are also these that are on top for secondary storage I/O

  1. Directory management: organizes files, symbolic file names are converted
  2. File system: open, close, read, write
  3. Physical org: convert file addresses into locations in the disc

For a local peripheral device that communicates

Logical I/O

  • treats device as logical resource with no concerns of details of control
  • manages I/O functions on behalf of user process

Device I/O

  • convert requested operations into sequences of I/O instructions, channel commands, and controller orders

Scheduling and Control

  • queuing and scheduling of I/O operations
  • Handles interrupts, checks I/O status
  • actually interacts with the I/O module and hence the device hardware.

For secondary storage devices with a file system

The logical I/O can be further divided in 3 parts:

Directory Management

  • convert symbolic file names to identifiers that reference directly/indirectly the file
  • manage user add, delete, reorganize operations

File System

  • logical structure of files and operations that can be specified by user

Physical Organization

  • convert logical references to files/records to physical storage addresses