Section 12.5: Address spaces and page tables (Frame 2)                     [prev][home][next]

In the old days, an architecture may have had the capacity for a large address space but the particular model that a user bought might have less memory. For example, on the early CDCs, which did not use virtual memory, addresses were 18 bits long, giving a total address space of 262,144 words. However, many smaller models were sold that had fewer words of memory, sometimes only half of this: 131,072 words. Programs written for those smaller models had to take this into account and not have extremely large arrays, for example. If a program ran that tried to access a non-existent memory word, a run-time error would be generated by the hardware and the program would be killed with a nastygram from the OS.

When a computer has virtual memory, the program can generate any address and it is the job of the hardware to translate that virtual address to a physical one. Even when the page containing the virtual address is not currently in a frame, virtual address can be translated into a real address. How does the hardware do this, detect errors, and cause disk reads to bring the page into memory? It does it with the help of that master utility program, the operating system, and a special data structure.