On the basis of empirical data two topics concerning virtual memory systems are discussed: determining an optimal page size and performance of segmentation as compared to paging. Several production programs have been executed (on a simulator) both in a segmented system and in a paged system with various page sizes; the memory management was based on the working set policy. The memory usage and the fault rates were recorded, and the lifetime functions and space-time integrals were evaluated. The observations are explained using a new model of program behaviour which is a refinement of the phase-transition model. The results show that there is no globally optimal page size. Two characteristic types of programs are observed: the first requires a small page size and a large window size, the second requires a large page size and a small window size. Segmentation and paging are compared with respect to their usage of various resources. In the sense of the space-time integral, segmentation usually outperforms paging; if the mean segment size is large, the difference is remarkable. Several commonly used assumptions about the effects of page size on program behaviour are validated; some of them are found inaccurate or even wrong.
Read full abstract