UNIX I/O Characterization

HDF_title.gif (21122 bytes)To initiate I/O activity, an application programmer typically employs high-level I/O commands that are provided by her programming language. Depending upon the version of the UNIX operating system she uses, the language she writes in, and the I/O subsystem specific to the computing platform upon which the program is run, a given I/O call will generate a different sequence of operations. But the programmer need not concern herself with the fine points of file system interaction, disk access, interprocessor communication, and other I/O operational details. Rather, UNIX I/O provides a protocol for managing these low-level operations, transparently culling and translating the distinct commands, generated by various implementations of the operating system and programming languages, into a standard set of I/O calls. This not only simplifies the task of the programmer, it also enhances application portability among differently configured UNIX platforms. Of course, for fine grained control of I/O, programmers can opt to circumvent the operating system's I/O management capabilities and directly control low-level I/O operations.

The UNIX I/O extension to the Pablo Trace Library is a set of programs that can be used as replacements for the standard UNIX, C, and FORTRAN I/O calls. The trace library calls are exactly the same as the standard I/O calls except they have been augmented by instrumentation software, attached before and after the call itself, to capture and record internal data. So, rather than using the standard I/O calls, users call UNIX I/O extensions to Pablo Trace Library routines from within their source code and then compile this instrumented code, linking it with the Pablo library and its extensions. As the application executes, the perfomance data captured by the instrumentation is recorded in SDDF files.  Then performance analysts can use these SDDF files with Pablo analysis tools to profile and analyze UNIX I/O behavior and interaction with other system components.