Main Memory: Bibliographical Notes
Main Memory: Bibliographical Notes
Main Memory: Bibliographical Notes
9
Main Memory
Bibliographical Notes
Dynamic storage allocation was discussed by [Knuth (1973)] (Section 2.5), who
found through simulation that first fit is generally superior to best fit. [Knuth
(1973)] also discussed the 50-percent rule.
The concept of paging can be credited to the designers of the Atlas system,
which has been described by [Kilburn et al. (1961)] and by [Howarth et al.
(1961)]. The concept of segmentation was first discussed by [Dennis (1965)].
Paged segmentation was first supported in the GE 645, on which MULTICS was
originally implemented ([Organick (1972)] and [Daley and Dennis (1967)]).
Inverted page tables are discussed in an article about the IBM RT storage
manager by [Chang and Mergen (1988)].
[Hennessy and Patterson (2012)] explains the hardware aspects of TLBs,
caches, and MMUs. [Talluri et al. (1995)] discusses page tables for 64-bit address
spaces. [Jacob and Mudge (2001)] describes techniques for managing the TLB.
[Fang et al. (2001)] evaluates support for large pages.
http://msdn.microsoft.com/en-us/library/windows/hardware/gg487512.
aspx discusses PAE support for Windows systems.
177
178 Chapter 9 Main Memory
http://www.intel.com/content/www/us/en/processors/architectures-sof-
tware-developer-manuals.html provides various manuals for Intel 64 and
IA-32 architectures.
http://www.arm.com/products/processors/cortex-a/cortex-a9.php
provides an overview of the ARM architecture.
Bibliography
[Chang and Mergen (1988)] A. Chang and M. F. Mergen, “801 Storage: Archi-
tecture and Programming”, ACM Transactions on Computer Systems, Volume 6,
Number 1 (1988), pages 28–50.
[Daley and Dennis (1967)] R. C. Daley and J. B. Dennis, “Virtual Memory, Pro-
cesses, and Sharing in Multics”, Proceedings of the ACM Symposium on Operating
Systems Principles (1967), pages 121–128.
[Dennis (1965)] J. B. Dennis, “Segmentation and the Design of Multipro-
grammed Computer Systems”, Communications of the ACM, Volume 8, Number
4 (1965), pages 589–602.
[Fang et al. (2001)] Z. Fang, L. Zhang, J. B. Carter, W. C. Hsieh, and S. A. McKee,
“Reevaluating Online Superpage Promotion with Hardware Support”, Proceed-
ings of the International Symposium on High-Performance Computer Architecture,
Volume 50, Number 5 (2001).
[Hennessy and Patterson (2012)] J. Hennessy and D. Patterson, Computer Archi-
tecture: A Quantitative Approach, Fifth Edition, Morgan Kaufmann (2012).
[Howarth et al. (1961)] D. J. Howarth, R. B. Payne, and F. H. Sumner, “The
Manchester University Atlas Operating System, Part II: User’s Description”,
Computer Journal, Volume 4, Number 3 (1961), pages 226–229.
[Jacob and Mudge (2001)] B. Jacob and T. Mudge, “Uniprocessor Virtual Mem-
ory Without TLBs”, IEEE Transactions on Computers, Volume 50, Number 5 (2001).
[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.
[Knuth (1973)] D. E. Knuth, The Art of Computer Programming, Volume 1: Funda-
mental Algorithms, Second Edition, Addison-Wesley (1973).
[Organick (1972)] E. I. Organick, The Multics System: An Examination of Its Struc-
ture, MIT Press (1972).
[Talluri et al. (1995)] M. Talluri, M. D. Hill, and Y. A. Khalidi, “A New Page
Table for 64-bit Address Spaces”, Proceedings of the ACM Symposium on Operating
Systems Principles (1995), pages 184–200.