As the authors note, I/O behavior modeling has received much less attention than memory reference modeling, although it is also important for performance modeling. One of the difficulties in developing such models is finding an appropriate definition of an I/O request. Unlike memory references, I/O behavior is very dependent on buffering strategies, file organizations (sequential, direct, etc.), and operating system specifics. This study makes a reasonable compromise, using requests to fill and empty I/O buffers as the events to model. This does tie one to some specifics of the implementation, and it would have been interesting to compare results with a model of intrinsic I/O behavior at the program level.
Perhaps the most disappointing aspect of the study is the limited amount of data that was used to build the models. An instruction level trace of a PASCAL compiler for a PDP-11 running RSX-11/M was used. Four PASCAL programs were translated using the instrumented compiler, and the resulting data were used to build the analytic models. Given the generally sequential nature of a compiler’s access to files, it is doubtful that this suffices to obtain any reasonable intuition about the distribution of I/O requests.
Finally, the authors observe the existence of some phases in file references behavior, but not of the importance seen in memory reference patterns. They also claim that it is unlikely that general rules of I/O behavior (similar to locality for page references) exist. Additional study is needed to prove or disprove these claims.
In summary, this paper presents an interesting attempt to develop statistical models of program I/O behavior. The statistical methodology seems sound, but more data is needed to substantiate all claims.