Update.
[pintos-anon] / TODO
diff --git a/TODO b/TODO
index b4e216e1288f0ced59b414d8979ce303c0771099..e16216c677937047d0555223aa9e435e8884a595 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,22 +1,44 @@
 -*- text -*-
 
-* FS and GS:
+* Test pintos with GSX.
 
-  - struct intr_frame: Add members.
-  
-  - intr_entry(): Save, reset.
+* Need targets for checking single tests or single subdirs
 
-  - intr_exit(): Restore.
+  - `make check' should say how to get more information
 
-  - execute_thread(): Initialize.
+  - `make recheck', `make clean-check'
 
-* Userprog project:
+* Need to put time limits on tests.
+
+* Add a way for students to prints messages ignored by the autograder.
+
+  - Ignore text between /* and */.
+
+  - Allow for a comment on `exit' lines?
+
+    . Get rid of LOAD_ERROR() macro by calling thread_exit() directly.
+
+* Improve automatic interpretation of exception messages.
+
+* We need better and more example programs.
 
-  - Move `join' implementation here, from `threads' project, to help
-    normalize the project difficulties.
+  - Need an mmap example program as a replacement for the crappy mmap FAQ
+    question.
 
-  - The semantics of the join system call should change so that it
-    only returns the exit code once.
+  - How about `diff' and `cmp' programs?
+
+* Threads:
+
+  - mlfqs tests suck.  They aren't even correct, e.g. the amarv
+    submission from win0405 is graded incorrectly.
+
+* Userprog project:
+
+  - Don't emphasize that stuff needs to be copied from user space to
+    kernel space.  Instead, emphasize validation and suggest that
+    copying is a common solution and that it will be necessary in
+    project 3 and in real OSes.  Also revise the grading criteria to
+    match.
 
   - Mark read-only pages as actually read-only in the page table.  Or,
     since this was consistently rated as the easiest project by the
     Alternately we could just remove the synchronization on pid
     selection and check that students fix it.
 
+* VM project:
+
+  - Discuss the perils of mixing dirty bits between kernel and user virtual
+    memory.
+
+* Filesys project:
+
+  - Increase maximum disk size from 8 MB to something that actually
+    requires doubly indirect nodes.  There is a negative pressure here
+    from the bitmap object--perhaps we need a specialized bitmap that
+    doesn't have to be all in-memory at once.
+
+    Alternatively, shrink the inode size.
+
+  - Add option to disable buffer cache.
+
+  - Need a better way to measure performance improvement of buffer
+    cache.  Some students reported that their system was slower with
+    cache--likely, Bochs doesn't simulate a disk with a realistic
+    speed.
+
+  - Clarify effect of remove(cwd).
+
 * Documentation:
 
   - Finish writing tour.
   - Add explanations of what "real" OSes do to give students some
     perspective.
 
+  - GNU make 3.80 or later is required.
+
 * Assignments:
 
   - Add extra credit:
 
     . Low-level x86 stuff, like paged page tables.
 
+    . Specifics on how to implement sbrk, malloc.
+
     . Other good ideas.
 
-  - mmap/munmap should use segment IDs like Nachos.  Too hard
-    otherwise.
+    . opendir/readdir/closedir
 
-  - Add src/testcases/vm, src/testcases/filesys and make it clear to use
-    them?
+    . everything needed for getcwd()
 
 * Tests:
 
-  - Release some of them.
-
   - The threads, userprog, vm test source files could use
     factorization and cleanup along the lines of fslib in the filesys
     tests.
     too long (especially when SHOW_PROGRESS is turned on) and doesn't
     show significant improvement.
 
+* Code:
+
+  - Need an optimization barrier and an explanation of it in the
+    documentation.
+
+  - Need to check the wait system call more thoroughly.