-*- text -*-
-* Code:
+* The tests in tests/ don't apply the grading patches.
- - Speed up disk routines: filling an 8 MB disk takes a long time.
- (They're only slow because timer_sleep always waits for at least
- one timer tick.)
+* We need better example programs.
- - userprog project should mark read-only pages as actually read-only
- in the page table. Or, since this was consistently rated as the
- easiest project by the students, require them to do it.
+ - Need an mmap example program as a replacement for the crappy mmap FAQ
+ question.
- - For userprog project, don't provide per-process pagedir
- implementation but only single-process implementation and require
- students to implement the separation? This project was rated as
- the easiest after all. Alternately we could just remove the
- synchronization on pid selection and check that students fix it.
+* Threads:
+
+ - join-invalid doesn't compile if tid_t is not scalar type.
+
+ - 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.
+
+ - Move `join' implementation here, from `threads' project, to help
+ normalize the project difficulties.
+
+ - The semantics of the join system call should change so that it
+ only returns the exit code once.
+
+ - Mark read-only pages as actually read-only in the page table. Or,
+ since this was consistently rated as the easiest project by the
+ students, require them to do it.
+
+ - Don't provide per-process pagedir implementation but only
+ single-process implementation and require students to implement
+ the separation? This project was rated as the easiest after all.
+ 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.
+
+ - Sample solution.
+
+ - Update grading/vm to reflect new mmap, munmap forms.
+
+* 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 mkdir and ls example user programs.
+
+ - Add option to disable buffer cache.
+
+ - Get rid of "dump" commands--they're not really useful.
+
+ - Sample solution.
* Documentation:
. Low-level x86 stuff, like paged page tables.
- . Other good ideas.
-
- - The semantics of the join system call should change so that it
- only returns the exit code once.
+ . Specifics on how to implement sbrk, malloc.
- - mmap/munmap should use segment IDs like Nachos. Too hard
- otherwise.
+ . Other good ideas.
- Add src/testcases/vm, src/testcases/filesys and make it clear to use
them?