|
|
|
|
|
|
|
Interest in reliable disk operation is a natural consequence of the importance of data integrity. The problem with many of the approaches to higher levels of redundancy is that, like array configurations themselves, they are not necessarily robust with respect to varying file distributions. If a file with a particular distribution is best organized as a striped file or multiple independent files, and another file is best organized by access through a synchronized disk array, we have a significant dilemma in arranging not only the array hardware but also the redundant support mechanism to support the ensemble of disks. |
|
|
|
|
|
|
|
|
There are many aspects of computer input/output. The I/O process represents the myriad functions: moving data in and out of a computer system, presenting it to a human user, and recognizing voice and images as well as representing the primary method for the bulk storage of large files. The primary objective of this chapter is to deal with the storage subsystem. The media and communications aspects of I/O are varied and quite important. In fact, they are of growing importance in the industry. However, each system must have a storage archive that represents all of the files accessible to a particular user. The rapid access to these files determines in large measure the performance of the system. |
|
|
|
|
|
|
|
|
Despite the increasing gap between disk access time and processor performance, techniques have been developed to create systems that for many applications are not I/O bound. |
|
|
|
|
|
|
|
|
Queueing models have been developed that describe I/O system response, at least asymptotically, within the obvious limitations of the assumed statistical behavior, of requests and responses. These models provide a good deal of insight into the behavior of complex processor-memory-I/O systems. The closed asymptotic M/G/1 model is particularly useful in describing overall systems behavior. |
|
|
|
|
|
|
|
|
In order to improve I/O performance, several important techniques have been developed. The earliest and most obvious is simple processor multiprogramminghaving the computer do something else (engage in another process) while the current process is waiting for I/O. This is effective enough as long as it does not significantly increase the paging rate and hence the I/O traffic required of the system. If a process has a smaller available memory because of multiprogramming, this can increase the paging rate and hence the I/O request rate. |
|
|
|
|
|
|
|
|
Another approach to decreasing the I/O request rate and increasing overall performance is the use of disk cache buffers. These buffers can be effective, although they are not as robust as the use of cache memory (discussed in chapter 5). Indeed, relatively large disk cache buffers centralized at the processor (actually a part of processor/main memory) may be limited to a miss rate of 1030%, even when as much as 16 megabytes of memory are devoted to this function. |
|
|
|
|
|
|
|
|
Finally, arrays of smaller disks can be concurrently accessed to improve overall systems response. This can be most effective when the file accessing distribution is well known and represents a stable statistic. If the system must respond regularly to the access pattern coming from two different |
|
|
|
|
|