A method for implementing paged, segmented virtual memories on microprogrammable computers

Andrew S. Tanenbaum · ACM SIGOPS Operating Systems Review · 1979

A large, segmented, paged, virtual memory [I-4] makes the programming of certain applications easier.There are several reasons why such a two dimensional address space is helpful.First, the programmer need not waste any effort trying to cram a large program into a small memory.Second, if one procedure is changed, it is only necessary to relink the segment to which it belongs, and not any other segments.Third a protection system such as the MULTICS ring structure [5] can be implemented to increase security and trap certain kinds of errors.In addition to the above reasons, which apply primarily to the program, there are also advantages that accrue from having many large data segments as well.A virtual address on a computer with a segmented virtual memory consists of two parts: the segment number and the address within the segment.If the segments are large, it will be impossible to keep an entire segment in memory at one time, so the segment will have to be divided into pages.Note that paging is an implementation convenience with which the programmer need not be concerned, whereas segmentation is a logical partitioning of the address space that is visible to the programmer.Each virtual address implicitly specifies a segment number, a page number, and an offset within the page.

Read the paper · More papers on PaperTik