Major revisions to documentation.
[pintos-anon] / doc / vm.tmpl
index 85e9d837967bcd8e7f382e48a354acce3d10009e..aef4fb8b9a0ac5b73d4fbfd4fa33b284d8333ea7 100644 (file)
@@ -32,17 +32,17 @@ FirstName LastName <email@domain.example>
 
 ---- ALGORITHMS ----
 
->> Describe your code for locating the physical page, if any, that
->> contains the data of a given virtual page.
+>> Describe your code for locating the frame, if any, that contains
+>> the data of a given page.
 
->> How does your code coordinate accessed and dirty bits between kernel
->> and user virtual addresses that alias a single physical page, or
+>> How does your code coordinate accessed and dirty bits between
+>> kernel and user virtual addresses that alias a single frame, or
 >> alternatively how do you avoid the issue?
 
 ---- SYNCHRONIZATION ----
 
->> When two user processes both need a new page frame at the same time,
->> how are races avoided?
+>> When two user processes both need a new frame at the same time, how
+>> are races avoided?
 
 ---- RATIONALE ----
 
@@ -60,13 +60,12 @@ FirstName LastName <email@domain.example>
 
 ---- ALGORITHMS ----
 
->> When a physical page frame is required but none is free, some page
->> frame must be evicted.  Describe your code for choosing a frame to
->> evict.
+>> When a frame is required but none is free, some frame must be
+>> evicted.  Describe your code for choosing a frame to evict.
 
->> When a process P obtains a physical frame that was previously used
->> by a process Q, how do you adjust the page table (and any other
->> data structures) to reflect the physical frame Q no longer has?
+>> When a process P obtains a frame that was previously used by a
+>> process Q, how do you adjust the page table (and any other data
+>> structures) to reflect the frame Q no longer has?
 
 >> Explain your heuristic for deciding whether a page fault for an
 >> invalid virtual address should cause the stack to be extended into the
@@ -78,18 +77,19 @@ FirstName LastName <email@domain.example>
 >> explain how it prevents deadlock.  (Refer to the textbook for an
 >> explanation of the necessary conditions for deadlock.)
 
->> A page fault in process P can cause another process Q's page frame to
->> be evicted.  How do you ensure that Q cannot access or modify the page
+>> A page fault in process P can cause another process Q's frame to be
+>> evicted.  How do you ensure that Q cannot access or modify the page
 >> during the eviction process?  How do you avoid a race between P
->> evicting Q's page frame and Q faulting the page back in?
+>> evicting Q's frame and Q faulting the page back in?
 
->> Suppose a page fault in process P causes a page to be read from disk.
->> How do you ensure that a second process Q cannot interfere by e.g.
->> attempting to evict the page while it is still being read in?
+>> Suppose a page fault in process P causes a page to be read from the
+>> file system or swap.  How do you ensure that a second process Q
+>> cannot interfere by e.g. attempting to evict the frame while it is
+>> still being read in?
 
 >> Explain how you handle access to paged-out pages that occur during
 >> system calls.  Do you use page faults to bring in pages (as in user
->> programs), or do you have a mechanism for "locking" pages into
+>> programs), or do you have a mechanism for "locking" frames into
 >> physical memory, or do you use some other design?  How do you
 >> gracefully handle attempted accesses to invalid virtual addresses?
 
@@ -114,7 +114,7 @@ FirstName LastName <email@domain.example>
 
 >> Describe how memory mapped files integrate into your virtual memory
 >> subsystem.  Explain how the page fault and eviction processes differ
->> for swap pages and other pages.
+>> between swap pages and other pages.
 
 >> Explain how you determine whether a new file mapping overlaps any
 >> existing segment.