This is the archived Fall 2013 version of the course.
For the most recent version, see http://rust-class.org/class-21-virtual-memory.html.

Class 21: Virtual Memory

Action Items

Project Design and Progress reviews will start next week. The submission form for updates and scheduling will be posted soon and due by the end of this week.

Memory Isolation

How can a program be isolated in memory without hardware support?

Native Client - Native Client: A Sandbox for Portable, Untrusted x86 Native Code, IEEE Security and Privacy ("Oakland") 2009.

What are the advantages/disadvantages of hardware-based memory isolation over software-based memory isolation?

Virtual Memory

Robert C. Daley and Jack B. Dennis, Virtual Memory, Processes, and Sharing in MULTICS - Symposium on Operating System Principles (SOSP), 1967.

What must be done to switch processes on MULTICS?

Intel x86 Software Develop Manuals - Most of what I covered today is in Volume I, Chapter 3 (Basic Execution Environment) with Section 3.3 on Memory Organization. Chapter 5 is all about Protection.

Why is it useful to convert a logical address into a linear address, as is done by the segmentation unit?

Where is the Global Descriptor Table stored?

Why is a memory page in the 80386 (32-bit) processor 4K bytes?

What will this program do and why?

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv) {
  char *s = (char *) malloc (1);
  int i = 0;
  while (1) {
    printf("%d: %x\n", i, s[i]);
    i += 4;
  }
}

Challenge: Write a program that takes N as an input and produces (nearly) exactly N page faults.