Memory a program does not have
A subject the papers are about. The loosest grouping, and the one to reach for last.
Virtual memory as an idea about program behaviour: what a process will need next, and what it costs to guess wrong.
Two 1968 papers and a retrospective, and the pairing of the two is the point. Daley and Dennis describe how MULTICS actually did it -- segmentation, sharing, the mechanism. Denning's working set model, the same year, is the other half: not how to page but what to page, defined in terms of what the program has recently touched rather than what the hardware finds convenient. Mechanism and policy, stated independently within a year, and the second is what made the first tractable.
The working set is the durable idea here. It says a program's memory demand is a property of the program's behaviour over a window of time, which is why thrashing is predictable rather than mysterious and why the replacement policy has something to aim at. Denning's 1996 *Virtual memory* is his own account of what became of it across thirty years.
The set is small and complete in the sense that matters: it holds the mechanism, the theory, and the assessment, without the intervening literature. A reader who wants the argument rather than the field can read all three in an afternoon.
Read against `verified-memory`, which asks whether an implementation of this idea can be proved correct, and `performance-against-isolation`, where the sharing Daley and Dennis describe becomes the channel.