Effects of Copy-on-Write Memory Management on the Response Time of UNIX Fork Operations.
Jonathan M. Smith, Gerald Q. Maguire · 1988
We present techniques for analyzing the effect of ‘‘copy-on-write’ ’ page management strategies on the performance of UNIX � fork() operations. The analysis techniques are applied on two workstations, the AT&T 3B2/310 TM and the Hewlett-Packard HP9000/350 TM in order to determine the relationships between the amount of memory in the parent’s data segment, the fraction of this memory which is written by the child, and the improvement in execution time due to ‘‘copy-on-write’’. Since the implementation of ‘‘copy-on-write’ ’ is straightforward with modern MMUs, our results for these workstations are readily generalized to other workstations. The results show that the size of the parent’s allocated memory has little direct effect on performance, due to the fact that only page table entries are copied during the fork() operations. The execution time is most influenced by the amount of memory that must be copied, which can be determined from the product of memory allocated and the fraction of memory written. Thus, the worst case occurs when large address space programs update much of their memory. In order to observe what occurs in practice, we measured two programs that have what are currently considered large address spaces. These programs, which we believe to be representative of the sorts of programs