|
|
|
|
|
|
|
ory to support program execution. |
|
|
|
|
|
|
|
|
2. The log linear region. In this region (from 0.1 to 0.9 of required program memory) the fault rate declines exponentially (by about a factor of 104) as a function of F, the fraction of total required memory currently available. Another way of describing this region is: |
|
|
|
 |
|
|
|
|
Page miss rate = K10-4F, |
|
|
|
 |
|
|
|
|
where K is a constant determined by the program. For example, suppose a certain program has half of its required working set available, F = 0.5, and its page miss rate is K10-2. Now, if the memory available increases by one-tenth of its working set size, its miss rate falls to K10-2.4. The relative miss rate improves by the ratio K10-2.4/K10-2, or K10-.4; it is decreased by about a factor of 3. |
|
|
|
|
|
|
|
|
3. The third region is the capture region (0.9 to 1.0 of the required memory being available). In this region, the program is completely contained in memory, and beyond this there is no virtual paging traffic. |
|
|
|
|
|
|
|
|
These regions are quite variable across applications. Some applications, such as large matrices, have an almost flat region interrupted only by step functions. Apparently, there is rather little working set short of the entire program. |
|
|
|
|
|
|
|
|
Figures 9.229.24 indicate the great difficulty in making generalizations about I/O behavior. There is a significant difference across programs, even taken from a common (scientific) application environment. Still, the systems designer is obliged to consider both the mean expected behaviors and the possible variance, and to try to create a system robust enough to handle most of the applications traffic that may present itself. |
|
|
|
|
|
|
|
|
An alternative approach without the obvious risks inherent in high degrees of multiprogramming is the use of a disk cache buffer. As we have seen in Chapter 5, caches work well for main memories. The same concept can be successfully used for disks, significantly reducing the required disk traffic. The disk cache has a similar role to the cache in a cache-memory system. It is a buffer that captures a significant fraction of the required I/O transfers, thus reducing the effective access time and the required number of disk accesses. Disk caches may be associated with a device or a storage controller or with a processor. (See Figure 9.25.) |
|
|
|
|
|
|
|
|
A disk cache is a memory buffer that stores recently used portions of the disk address space. The caching unit may be anything from a sector to one or more tracks. Figure 9.26 indicates some typical miss ratios for disk caches when the buffer is in the processor memory, at the storage controller, or at the device. The system under measurement had about 5060 disk drives and about 1218 storage controllers with a single shared-memory CPU complex. The miss rate is best when the disk cache is in the processor memory. This comes at the expense of consistency in the backing store as, unless some further action is taken, writes made to the disk will be intercepted by the cache and not returned to provide a consistent copy |
|
|
|
|
|