When many of us learn about the idea of virtual memory, our first impression is often that it must be terribly
inefficient. Given the large miss penalties, we worry that paging will destroy program performance. In
practice, virtual memory works well, mainly because of our old friend locality.