Size: 3794
Comment: Add a interesting ppt MM presentation about windows OSes
|
← Revision 11 as of 2017-12-30 01:05:12 ⇥
Size: 3834
Comment: converted to 1.6 markup
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
[http://www.systemlogic.net/articles/00/10/cache/ The Fundamentals Of Cache] A nice read on the memory hierarchy and CPU caches. | [[http://www.systemlogic.net/articles/00/10/cache/|The Fundamentals Of Cache]] A nice read on the memory hierarchy and CPU caches. |
Line 9: | Line 9: |
Bonwick's classical paper on the [http://www.usenix.org/publications/library/proceedings/bos94/bonwick.html Slab Allocator]. Design overview of the SunOS 5.4 Object-Caching Kernel Memory Allocator, updated in [http://www.usenix.org/event/usenix01/bonwick.html Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources]. Linux uses a modified version of this, as you can see: [http://lxr.linux.no/source/mm/slab.c mm/slab.c]. | Bonwick's classical paper on the [[http://www.usenix.org/publications/library/proceedings/bos94/bonwick.html|Slab Allocator]]. Design overview of the SunOS 5.4 Object-Caching Kernel Memory Allocator, updated in [[http://www.usenix.org/event/usenix01/bonwick.html|Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources]]. Linux uses a modified version of this, as you can see: [[http://lxr.linux.no/source/mm/slab.c|mm/slab.c]]. |
Line 11: | Line 11: |
Proceedings of the [http://www.usenix.org/publications/library/proceedings/als2000 2000 Atlanta Linux Showcase & Conference], including: * [http://www.usenix.org/publications/library/proceedings/als00/2000papers/papers/sears.html The Elements of Cache Programming Style] * [http://www.usenix.org/publications/library/proceedings/als00/2000papers/papers/jeon.html Dynamic Buffer Cache Management Scheme based on Simple and Aggressive Prefetching] * [http://www.usenix.org/publications/library/proceedings/als00/2000papers/papers/lever.html Linux Kernel Hash Table Behavior: Analysis and Improvements] |
Proceedings of the [[http://www.usenix.org/publications/library/proceedings/als2000|2000 Atlanta Linux Showcase & Conference]], including: * [[http://www.usenix.org/publications/library/proceedings/als00/2000papers/papers/sears.html|The Elements of Cache Programming Style]] * [[http://www.usenix.org/publications/library/proceedings/als00/2000papers/papers/jeon.html|Dynamic Buffer Cache Management Scheme based on Simple and Aggressive Prefetching]] * [[http://www.usenix.org/publications/library/proceedings/als00/2000papers/papers/lever.html|Linux Kernel Hash Table Behavior: Analysis and Improvements]] |
Line 16: | Line 16: |
Matt Dillon's excellent [http://www.daemonnews.org/200001/freebsd_vm.html Design Elements of the FreeBSD VM System] tells you everything you want to know about FreeBSD's VM subsystem. | Matt Dillon's excellent [[http://www.daemonnews.org/200001/freebsd_vm.html|Design Elements of the FreeBSD VM System]] tells you everything you want to know about FreeBSD's VM subsystem. |
Line 18: | Line 18: |
Chuck Cranor's [http://www.ccrc.wustl.edu/pub/chuck/tech/uvm/ The UVM Virtual Memory System], which tells you most of what you want to know about the NetBSD and OpenBSD virtual memory systems. This is an interesting read together with Matt Dillon's FreeBSD paper, since UVM takes a different aproach to some of the same problems. | Chuck Cranor's [[http://www.ccrc.wustl.edu/pub/chuck/tech/uvm/|The UVM Virtual Memory System]], which tells you most of what you want to know about the NetBSD and OpenBSD virtual memory systems. This is an interesting read together with Matt Dillon's FreeBSD paper, since UVM takes a different aproach to some of the same problems. |
Line 20: | Line 20: |
Siteseer's [http://citeseer.nj.nec.com/OperatingSystems/MemoryManagement/ OS Memory Management] listing. | Siteseer's [[http://citeseer.nj.nec.com/OperatingSystems/MemoryManagement/|OS Memory Management]] listing. |
Line 22: | Line 22: |
[http://blogs.sun.com/roller/page/rmc/20050613 Solaris page cache management]. | [[http://blogs.sun.com/roller/page/rmc/20050613|Solaris page cache management]]. |
Line 24: | Line 24: |
[http://www.sun.com/smcc/solaris-migration/docs/postscript/vm-impl.ps SunOS Virtual Memory Implementation] (postscript) A paper describing the structure of the SunOS memory management subsystem. | [[http://www.sun.com/smcc/solaris-migration/docs/postscript/vm-impl.ps|SunOS Virtual Memory Implementation]] (postscript) A paper describing the structure of the SunOS memory management subsystem. |
Line 26: | Line 26: |
[http://download.microsoft.com/download/f/0/5/f05a42ce-575b-4c60-82d6-208d3754b2d6/MemoryManagerInWindows.ppt The Memory Manager in Windows Server 2003 and Windows Vista] | [[http://download.microsoft.com/download/f/0/5/f05a42ce-575b-4c60-82d6-208d3754b2d6/MemoryManagerInWindows.ppt|The Memory Manager in Windows Server 2003 and Windows Vista]] |
Line 28: | Line 28: |
CNE's [http://cne.gmu.edu/modules/vm/ Virtual Memory Tutorial] a great introduction to what virtual memory is, how it works and what a virtual memory management subsystem needs to do. | CNE's [[http://cne.gmu.edu/modules/vm/|Virtual Memory Tutorial]] a great introduction to what virtual memory is, how it works and what a virtual memory management subsystem needs to do. |
Line 30: | Line 30: |
Wikipedia entry on [http://en.wikipedia.org/wiki/Page_replacement_algorithms page replacement algorithms]. | Wikipedia entry on [[http://en.wikipedia.org/wiki/Page_replacement_algorithms|page replacement algorithms]]. |
Line 34: | Line 34: |
[http://www.memorymanagement.org/ The Memory Management Reference] lots of resources, mostly about userland memory management. | [[http://www.memorymanagement.org/|The Memory Management Reference]] lots of resources, mostly about userland memory management. |
Line 36: | Line 36: |
[http://gee.cs.oswego.edu/dl/html/malloc.html DLmalloc] is a malloc library that uses mmap() for memory allocations above a predefined threshold (1 MB per default), that way your program can use up to 3 GB of malloc()ed memory, even though the kernel only supports brk() up to 910 MB. Update: note that glibc has this functionality built-in for quite a few years now. (RikvanRiel, dec 2004) | [[http://gee.cs.oswego.edu/dl/html/malloc.html|DLmalloc]] is a malloc library that uses mmap() for memory allocations above a predefined threshold (1 MB per default), that way your program can use up to 3 GB of malloc()ed memory, even though the kernel only supports brk() up to 910 MB. Update: note that glibc has this functionality built-in for quite a few years now. (RikvanRiel, dec 2004) |
Line 40: | Line 40: |
* [http://www.cs.amherst.edu/~sfkaplan/ Scott Kaplan], Amherst College * [http://www.cs.wm.edu/~zhang/ Xiaodong Zhang], College of William & Mary. |
* [[http://www.cs.amherst.edu/~sfkaplan/|Scott Kaplan]], Amherst College * [[http://www.cs.wm.edu/~zhang/|Xiaodong Zhang]], College of William & Mary. |
Memory management is a specialist subject, meaning there aren't a lot of links to memory management sites and it is hard to find information, even with Google. Because of this, some links to interesting memory management information have been gathered on this page. If you find information that should be here, please don't hesitate to create yourself an account and edit this page.
Memory management hardware
The Fundamentals Of Cache A nice read on the memory hierarchy and CPU caches.
Kernel space memory management
Bonwick's classical paper on the Slab Allocator. Design overview of the SunOS 5.4 Object-Caching Kernel Memory Allocator, updated in Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources. Linux uses a modified version of this, as you can see: mm/slab.c.
Proceedings of the 2000 Atlanta Linux Showcase & Conference, including:
Matt Dillon's excellent Design Elements of the FreeBSD VM System tells you everything you want to know about FreeBSD's VM subsystem.
Chuck Cranor's The UVM Virtual Memory System, which tells you most of what you want to know about the NetBSD and OpenBSD virtual memory systems. This is an interesting read together with Matt Dillon's FreeBSD paper, since UVM takes a different aproach to some of the same problems.
Siteseer's OS Memory Management listing.
Solaris page cache management.
SunOS Virtual Memory Implementation (postscript) A paper describing the structure of the SunOS memory management subsystem.
The Memory Manager in Windows Server 2003 and Windows Vista
CNE's Virtual Memory Tutorial a great introduction to what virtual memory is, how it works and what a virtual memory management subsystem needs to do.
Wikipedia entry on page replacement algorithms.
User space memory management
The Memory Management Reference lots of resources, mostly about userland memory management.
DLmalloc is a malloc library that uses mmap() for memory allocations above a predefined threshold (1 MB per default), that way your program can use up to 3 GB of malloc()ed memory, even though the kernel only supports brk() up to 910 MB. Update: note that glibc has this functionality built-in for quite a few years now. (RikvanRiel, dec 2004)
Researchers and Developers
Scott Kaplan, Amherst College
Xiaodong Zhang, College of William & Mary.