BEFORE MEMORY WAS VIRTUAL

Peter J. Denning · 1997

Virtual memory, long a standard feature of nearly every operating system and computer chip, is now invading the Internet through the World Wide Web. Once the subject of intense controversy, virtual memory is now so ordinary that few people think much about it. That this has happened is one of the engineering triumphs of the computer age. Virtual memory is the simulation of a storage space so large that programmers do not need to rewrite programs, and authors do not need to rewrite documents, when the content of a program module, the capacity of a local memory, or the configuration of a network changes. The name, borrowed from optics, recalls the virtual images formed in mirrors and lenses-- images that are not there but behave is if they are. The story of virtual memory, from the Atlas Computer at the University of Manchester in the 1950s to the multicomputers and World Wide Web on the 1990s, is not simply a story of automatic storage allocation, it is a story of machines helping programmers with protection of information, reuse and sharing of objects, and linking of program components. In what follows, I will give an account of the history of virtual memory, including personal recollections of the events I witnessed and experienced. These recollections will make up a kind of photo album of technical snapshots of virtual memory from birth, through adolescence, to maturity. From these snapshots you will see that the real driver was the quest for a good programming environment; automatic storage allocation was actually a secondary concern. You will see that virtual memory’s designers had deep insights about modularity, sharing, resuse, and objects a long time ago, a fact that may surprise some younger members of the field. Without those insights, virtual memory would never have passed its adolescence. I was a graduate student at MIT Project MAC during 1964-68, a time of intense debate on the principles to be incorporated into Multics, principles that would make a permanent imprint on operating systems. Automatic storage allocation and management of multiprogramming were high on the agenda. I contributed the working set model for program behavior. The working set model generated a practical theory for measuring a program’s dynamic memory demand and building an automatic control system that would schedule processor and

Read the paper · More papers on PaperTik