Hardware Reference
In-Depth Information
Chapter 12
I/O Libraries: Past, Present and
Future
Mike Folk
The HDF Group
12.1
Motivation :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 151
12.2
A Recent History of I/O Libraries, by Example ::::::::::::::::: 152
12.3
What Is the Future of I/O Libraries? :::::::::::::::::::::::::::: 153
12.1 Motivation
Why do we need an I/O stack? What is the importance of various layers
in the stack? Why do we need I/O libraries?
There was a time when computers mostly exported data to magnetic tape
or punch cards. I/O was pretty simple in those days, but there were still
important principles a programmer needed to think about in order to read,
write and store data eciently. Instead of writing a byte of time, programs
would aggregate data into fields, records, or collections of records. By exploit-
ing redundance, programmers used data compression in order to write it more
quickly and store it more eciently.
Computer users also discovered that a little extra information, like an
index or tree structure, could enable users to find things more quickly, and
to add and delete items from a collection of records more quickly. They also
found that a data file could itself be broken into chunks, subfiles, and other
organizations to provide faster I/O, including easier search and retrieval of
information, and partial access.
Because there were enormous differences between the time it took to move
data within memory and to move data from memory to secondary storage,
experts allocated space in memory to serve as buffers, allowing computation
to continue at the same time that the slower I/O process completed.
Special commands and subroutines were added to programming languages
that could hide the details of writing data and reading data, so that pro-
grammers didn't have to bother with those details. And when spinning disks
arrived, those commands and subroutines were modified to take advantage of
151
 
Search WWH ::




Custom Search