case, all of the functionality needed for project 2 must work in your
filesys submission. If you build on project 3, then all of the project
3 functionality must work also, and you will need to edit
-@file{filesys/Make.vars} to enable VM functionality. A small amount of
-extra credit is available if you do build on project 3.
+@file{filesys/Make.vars} to enable VM functionality. You can receive up
+to 5% extra credit if you do enable VM.
@menu
* Project 4 Background::
* Project 4 Requirements::
-* File System FAQ::
+* Project 4 FAQ::
@end menu
@node Project 4 Background
must allow this.
There should be no predetermined limit on the size of a file, except
-that a disk cannot exceed the size of the disk (minus metadata). This
+that a file cannot exceed the size of the disk (minus metadata). This
also applies to the root directory file, which should now be allowed
to expand beyond its initial limit of 16 files.
block 2 should be handled asynchronously, in the background.
@end table
+@strong{We recommend integrating the cache into your design early.} In
+the past, many groups have tried to tack the cache onto a design late in
+the design process. This is very difficult. These groups have often
+turned in projects that failed most or all of the tests.
+
@node File System Synchronization
@subsection Synchronization
Operations on different directories should take place concurrently.
Operations on the same directory may wait for one another.
-@node File System FAQ
+@node Project 4 FAQ
@section FAQ
@table @b
@command{diffstat} program. The final row gives total lines inserted
and deleted; a changed line counts as both an insertion and a deletion.
-This summary is relative to the Pintos base code, but we started from
-the reference solution to project 3. Thus, the reference solution runs
-with virtual memory enabled. @xref{Project 3 FAQ}, for the summary
-of project 3.
+This summary is relative to the Pintos base code, but the reference
+solution for project 4 is based on the reference solution to project 3.
+Thus, the reference solution runs with virtual memory enabled.
+@xref{Project 3 FAQ}, for the summary of project 3.
+
+The reference solution represents just one possible solution. Many
+other solutions are also possible and many of those differ greatly from
+the reference solution. Some excellent solutions may not modify all the
+files modified by the reference solution, and some may modify files not
+modified by the reference solution.
@verbatim
Makefile.build | 5