On dynamic program relocation

William C. Mcgee · IBM Systems Journal · 1965

In this survey we have limited ourselves to a general statement of the problem of dynamic relocation, and used this statement to describe a number of representative dynamic relocation techniques. This approach was used mainly to simplify the exposition. The problem statement is probably no more “general” than the composite of the techniques presented, and will undoubtedly require amending as experience with dynamic relocation is gained. For example, the two-level program structure may prove so useful in handling unwieldy arrays that it may be desirable to generalize it to n levels. The SYSTEM/~~O relocation technique described earlier has an obvious generalization for handling such structures, viz., partition the effective address into n parts, provide n types of tables, etc. All of the techniques described here share one important feature: they enable the user to work with an abstraction of the real computer which is operationally much simpler than the real computer. For example, the ATLAS main memory appears to the user to consist entirely of word-addressable, random-access storage, whereas in actuality it need consist of such storage only in part. Similarly, the main memory of the B5000 may be viewed as a “two-dimensional” memory whose addresses have two independent components) whereas in fact this memory is achieved with a conventional “one-dimensional” memory and an appropriate addressing technique. Such abstractions are coming to be known as virtual machines. The idea behind virtual machines is not new, being the essence of all programming systems which tend to mask the real computer from the programmer. As computer operation becomes more complex, the virtual machine concept will become increasingly important.

Read the paper · More papers on PaperTik