Virtual Memory: Bibliographical Notes
Virtual Memory: Bibliographical Notes
Virtual Memory: Bibliographical Notes
10
CHAPTER
Memory
Bibliographical Notes
Demand paging was first used in the Atlas system, implemented on the Manch-
ester University MUSE computer around 1960 ([Kilburn et al. (1961)]). Another
early demand-paging system was MULTICS, implemented on the GE 645 system
([Organick (1972)]). Virtual memory was added to Unix in 1979 [Babaoglu and
Joy (1981)]
[Belady et al. (1969)] were the first researchers to observe that the FIFO
replacement strategy may produce the anomaly that bears Belady’s name.
[Mattson et al. (1970)] demonstrated that stack algorithms are not subject to
Belady’s anomaly.
The optimal replacement algorithm was presented by [Belady (1966)] and
was proved to be optimal by [Mattson et al. (1970)]. Belady’s optimal algo-
rithm is for a fixed allocation; [Prieve and Fabry (1976)] presented an optimal
algorithm for situations in which the allocation can vary.
179
180 Chapter 10 Virtual Memory
Bibliography
[Denning (1968)] P. J. Denning, “The Working Set Model for Program Behavior”,
Communications of the ACM, Volume 11, Number 5 (1968), pages 323–333.
[Denning (1980)] P. J. Denning, “Working Sets Past and Present”, IEEE Transac-
tions on Software Engineering, Volume SE-6, Number 1 (1980), pages 64–84.
[Ganapathy and Schimmel (1998)] N. Ganapathy and C. Schimmel, “General
Purpose Operating System Support for Multiple Page Sizes”, Proceedings of the
USENIX Technical Conference (1998).
[Kilburn et al. (1961)] T. Kilburn, D. J. Howarth, R. B. Payne, and F. H. Sumner,
“The Manchester University Atlas Operating System, Part I: Internal Organiza-
tion”, Computer Journal, Volume 4, Number 3 (1961), pages 222–225.
[Knowlton (1965)] K. C. Knowlton, “A Fast Storage Allocator”, Communications
of the ACM, Volume 8, Number 10 (1965), pages 623–624.
[Love (2010)] R. Love, Linux Kernel Development, Third Edition, Developer’s
Library (2010).
[Mattson et al. (1970)] R. L. Mattson, J. Gecsei, D. R. Slutz, and I. L. Traiger,
“Evaluation Techniques for Storage Hierarchies”, IBM Systems Journal, Volume
9, Number 2 (1970), pages 78–117.
[McDougall and Mauro (2007)] R. McDougall and J. Mauro, Solaris Internals,
Second Edition, Prentice Hall (2007).
[McKusick et al. (2015)] M. K. McKusick, G. V. Neville-Neil, and R. N. M. Wat-
son, The Design and Implementation of the FreeBSD UNIX Operating System – Second
Edition, Pearson (2015).
[Navarro et al. (2002)] J. Navarro, S. Lyer, P. Druschel, and A. Cox, “Practi-
cal, Transparent Operating System Support for Superpages”, Proceedings of the
USENIX Symposium on Operating Systems Design and Implementation (2002).
[Organick (1972)] E. I. Organick, The Multics System: An Examination of Its Struc-
ture, MIT Press (1972).
[Peterson and Norman (1977)] J. L. Peterson and T. A. Norman, “Buddy Sys-
tems”, Communications of the ACM, Volume 20, Number 6 (1977), pages 421–431.
[Prieve and Fabry (1976)] B. G. Prieve and R. S. Fabry, “VMIN — An Optimal
Variable Space Page-Replacement Algorithm”, Communications of the ACM, Vol-
ume 19, Number 5 (1976), pages 295–297.
[Purdom, Jr. and Stigler (1970)] P. W. Purdom, Jr. and S. M. Stigler, “Statistical
Properties of the Buddy System”, J. ACM, Volume 17, Number 4 (1970), pages
683–697.
[Russinovich et al. (2017)] M. Russinovich, D. A. Solomon, and A. Ionescu, Win-
dows Internals – Part 1, Seventh Edition, Microsoft Press (2017).
[Solomon and Russinovich (2000)] D. A. Solomon and M. E. Russinovich,
Inside Microsoft Windows 2000, Third Edition, Microsoft Press (2000).
[Stephenson (1983)] C. J. Stephenson, “Fast Fits: A New Method for Dynamic
Storage Allocation”, Proceedings of the Ninth Symposium on Operating Systems
Principles (1983), pages 30–32.
182 Chapter 10 Virtual Memory