Courses/Computer Science/CPSC 457.W2012/Lecture Notes/MemAddr

= Addressing Memory and User-Level Memory Management =

This will be an overview of basic concepts in addressing memory on the IA-32 architecture. We will revisit some basic hardware support (i.e., segments, segment selectors, segment registers, segment descriptors) and more closely examine the support available for paging (MMU, page directories, page tables, TLBs).

We will consider some fundamental issues like:
 * the MMU: paging and segmentation
 * internal and external fragmentation
 * basic memory allocation concepts (best fit, worst fit, first fit, next fit)
 * the C lib dynamic memory management API

= Class Notes and Code =


 * Example Code from class
 * one.c
 * addr.txt (Our page table translation example from one.c)
 * (memory allocation example) greedy.c
 * (sample run of greedy) g-sample

= Notes =


 * Some notes on paging: http://wiki.osdev.org/Paging
 * more notes: http://www.stanford.edu/~stinson/paper_notes/fundamental/mem_mgmt/ia32_pts.txt
 * notes on segment registers
 * take a look at a kernel "Ooops" for some register values
 * CR registers
 * DS register (segment selector)
 * why no CS register?

= Reading =


 * MOS: 3.2.3
 * ULK: Chapter 2 (optional)