Introduction to Complete VM Systems
This lesson outlines the crux and the content of our last chapter regarding virtualization.
Before we end our study of virtualizing memory, let us take a closer look at how entire virtual memory systems are put together. We’ve seen key elements of such systems, including numerous page-table designs, interactions with the TLB (sometimes, even handled by the OS itself), and strategies for deciding which pages to keep in memory and which to kick out. However, there are many other features that comprise a complete virtual memory system, including numerous features for performance, functionality, and security. And thus, our crux:
THE CRUX: HOW TO BUILD A COMPLETE VM SYSTEM
What features are needed to realize a complete virtual memory system? How do they improve performance, increase security, or otherwise improve the system?
We’ll do this by covering two systems. The first is one of the earliest examples of a “modern” virtual memory manager, that found in
The second is that of Linux, for reasons that should be obvious. Linux is a widely used system, and runs effectively on systems as small and underpowered as phones to the most scalable multicore systems found in modern datacenters. Thus, its VM system must be flexible enough to run successfully in all of those scenarios. We will discuss each system to illustrate how concepts brought forth in earlier chapters come together in a complete memory manager.
Get hands-on with 1400+ tech skills courses.