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):
- Logical I/O: provides open, close, read, write
- Device I/O: converts operations & data into I/O instructions
- Scheduling & control: queuing and scheduling of operations
There are also these that are on top for secondary storage I/O
- Directory management: organizes files, symbolic file names are converted
- File system: open, close, read, write
- 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