@code{[IA32-v3]}. These names refer to the reference names used in
this documentation (@pxref{References}).
+If you remove existing Pintos code, please delete it from your source
+file entirely. Don't just put it into a comment or a conditional
+compilation directive, because that makes the resulting code hard to
+read. If you're worried about
+
@node Conditional Compilation
@section Conditional Compilation
specify for that part. @xref{Problem 1-4 Advanced Scheduler}, for
details.
+@item
+Problem 3-2, paging to and from disk. Your page replacement policy must
+default to LRU-like replacement, but we must be able to choose a random
+replacement policy with a compile-time directive. You must use the
+macro name we specify for that part. @xref{Problem 3-2 Paging To and
+From Disk}, for details.
+
@item
Code written for extra credit may be included conditionally. If the
extra credit code changes the normally expected functionality of the
page replacement policy. The canonical example of a poor page
replacement policy is random replacement.
+You must write your code so that we can choose a page replacement policy
+at compile time. By default, the LRU-like algorithm must be in effect,
+but we must be able to choose random replacement by inserting the line
+@code{#define RANDOM_REPLACEMENT 1} in @file{constants.h}.
+@xref{Conditional Compilation}, for details.
+
Since you will already be paging from disk, you should implement a
``lazy'' loading scheme for new processes. When a process is created,
it will not run immediately. Therefore, it doesn't make sense to load