Warning

This portion of the book is under construction, not ready to be read

Outline

  • intro OS-MM-L01 2-6

    • Overview - Why do we need a memory manager

    • overview of all the chapters

Combine physmem and virt-seg into “Towards paged virtual memory” Reduce the materials for both these sections, get through segmentation faster, and start on paged virtual memory in L01

  • physmem OS-MM-L01 7-14

    • how program laid out - peter - address space and program loading

    • relocation

    • compaction

    • challenges

  • virt-seg OS-MM-L01 15-64

    • picture of MMU - sends physical address over bus

    • segmentation hardware - translation

    • what is virtual memory

    • physical mem management

    • swapping

    • compaction

    • keeping track of free memory

    • challenges

add section at the beginning on interface virtual memory try to get through this in L01

  • virt-paging OS-MM-L02 0-21

    • MMU with some mapping hardware - same picture, but now table

    • page frames and virtual pages - keeping track of which memory used

    • mapping & notion of faults

    • page table entry

    • contrast to segmentation, paging of blocks… rather than swapping entire program

    • what we use for: - anonymous - program, - file backed - mention file caching - page fault

    • concluding remarks - once you have multi-level, massive address space. - until now, described HW, and the benefits of having paged virtual memory, next chapters describe some of the key policies, mechanisms

L03 is very short, we should start on L04 in L03

  • page table organizations: OS-MM-L02 21-end + L03 0-18 - single level. - multi-level page table. - inverted

    • TLB - global, local, tagged TLB - software managed TLB

we are covering way too much in L04

  • reclamation OS-MM-L04 1-37

    • describe how we got here … we run out of memory, … using

    • describe all the policies

    • FIFO

    • CLOCK

    • belady anomaly

    • … all from peter

  • page-sizes OS-MM-L04 38-44

    • why big, why small, supporting multiple

  • misc OS-MM-L04 46-47

    • sharing-memory

      • sharing page frames

      • sharing page table pages

    • pinning memory

    • anonymous memory

    • file backed memory

  • buffer-cache OS-MM-L04 52- 62

    • most memory used.

  • MM dynamics OS-MM-L04 63- 68

    • anonymous - zero filled first access..

    • file backed

    • COW

  • realworld OS-MM-L05

    • Linux implementation

  • concl

    • Review of MM

20. Introduction#

To paraphrase Parkinson’s law programs expand to fill the memory available to hold them, and home computers have millions times more memory than they had when Larry was young. As discussed in the introduction memory is fast but small and expensive compared to storage, but it is volatile, all changes are lost after a reboot. Memory management is the part of the operating system that allocates, frees and tracks the usage of memory. It manages the virtual memory of each process, and all the physical memory of the system; making it available to different processes through virtual memory depending on their demand.

Today, most machines support paged virtual memory, but before we get into that, we motivate today’s memory management by discussing systems without virtual memory and with segmented virtual memory. The next chapter describes…