relevant parts below. If you are confident in your HW1 code, you can
build on top of it. However, if you wish you can start with a fresh
copy of the code and re-implement @func{thread_join}, which is the
-only part of project #1 required for this assignment. Your submission
-should define @code{THREAD_JOIN_IMPLEMENTED} in @file{constants.h}
-(@pxref{Conditional Compilation}).
+only part of project #1 required for this assignment.
Up to now, all of the code you have written for Pintos has been part
of the operating system kernel. This means, for example, that all the
* Using the File System::
* How User Programs Work::
* Virtual Memory Layout::
-* Global Requirements::
+* Grading Requirements::
* Problem 2-1 Argument Passing::
* Problem 2-2 System Calls::
* User Programs FAQ::
be contiguous. In fact, it must not require that any of the pages be
contiguous.
-@node Global Requirements
-@section Global Requirements
+@node Grading Requirements
+@section Grading Requirements
For testing and grading purposes, we have some simple overall
requirements:
the @samp{-ex} argument. For example, running @code{pintos run -ex
"testprogram 1 2 3 4"} will spawn @samp{testprogram 1 2 3 4} as the
first process.
+
+@item
+In the previous project, we required that you provided some specific
+function interfaces, because we tested your project by compiling our
+test code into it. For this project and all later projects, this is
+no longer necessary, because we will do all of our testing with user
+programs. You must make sure that the user program interface meets
+the specifications described in the assignments, but given that
+constraint you are free to restructure or rewrite kernel code however
+you wish.
@end itemize
@node Problem 2-1 Argument Passing