Ben Pfaff [Sat, 20 May 2006 17:17:25 +0000 (17:17 +0000)]
Wordsmithing.
Update description of main()'s calling order.
Ben Pfaff [Fri, 19 May 2006 23:41:59 +0000 (23:41 +0000)]
Consistently spell "file name" and "file system" as two words.
Ben Pfaff [Fri, 19 May 2006 20:43:25 +0000 (20:43 +0000)]
Add file_get_inode() for symmetry with dir_get_inode().
Ben Pfaff [Fri, 19 May 2006 20:42:24 +0000 (20:42 +0000)]
Fix solution.
Ben Pfaff [Fri, 19 May 2006 20:39:54 +0000 (20:39 +0000)]
Comments.
Ben Pfaff [Fri, 19 May 2006 20:38:50 +0000 (20:38 +0000)]
Replace lsdir system call by readdir, isdir system calls,
which are far less offensive to good taste.
Add dir_get_inode() and dir_readdir() functions.
Remove dir_list(), filesys_list(). The latter was unused.
Update project documentation, solutions, and tests.
Rewrite "ls" example program to use the new interface, and add the
ability to specify a directory name and a "long format" feature.
Add "cd" command to shell.
Ben Pfaff [Fri, 19 May 2006 20:03:10 +0000 (20:03 +0000)]
Improve readability.
Ben Pfaff [Fri, 19 May 2006 17:44:13 +0000 (17:44 +0000)]
Improve automatic test failure interpretation by extending backtrace
to the binary that failed.
Ben Pfaff [Fri, 19 May 2006 16:50:19 +0000 (16:50 +0000)]
Remove unused variable.
Ben Pfaff [Fri, 19 May 2006 14:39:47 +0000 (14:39 +0000)]
Ignore mcat.
Ben Pfaff [Fri, 19 May 2006 04:47:28 +0000 (04:47 +0000)]
Make directory interface more like file interface.
In reference solution, push locking up to inode layer, simplifying
changes to directory code.
Ben Pfaff [Fri, 19 May 2006 03:18:59 +0000 (03:18 +0000)]
Wording.
Ben Pfaff [Fri, 19 May 2006 03:17:28 +0000 (03:17 +0000)]
Fix menu.
Ben Pfaff [Fri, 19 May 2006 03:17:09 +0000 (03:17 +0000)]
Wording.
Ben Pfaff [Fri, 19 May 2006 02:45:13 +0000 (02:45 +0000)]
Fix race in dir_reopen().
Thanks to Godmar Back for pointing this out (twice).
Ben Pfaff [Thu, 18 May 2006 19:47:22 +0000 (19:47 +0000)]
Wording.
Ben Pfaff [Thu, 18 May 2006 19:47:04 +0000 (19:47 +0000)]
Wording.
Ben Pfaff [Thu, 18 May 2006 19:37:03 +0000 (19:37 +0000)]
Test interaction between priority donation and thread_set_priority().
Suggestion from Godmar Back.
Ben Pfaff [Thu, 18 May 2006 19:08:38 +0000 (19:08 +0000)]
Get rid of obsolete items.
Ben Pfaff [Thu, 18 May 2006 19:08:17 +0000 (19:08 +0000)]
Formatting.
Ben Pfaff [Thu, 18 May 2006 19:06:50 +0000 (19:06 +0000)]
Not really a race.
Ben Pfaff [Thu, 18 May 2006 19:02:35 +0000 (19:02 +0000)]
Randomize the bits that bitmap_scan() returns, to make student errors
that assume contiguous memory allocation show up.
Ben Pfaff [Thu, 18 May 2006 17:08:52 +0000 (17:08 +0000)]
Fix comment typo.
Ben Pfaff [Thu, 18 May 2006 17:08:41 +0000 (17:08 +0000)]
Add test that checks that recent_cpu decays properly for blocked
threads.
Suggested by Godmar Back.
Ben Pfaff [Thu, 18 May 2006 15:54:25 +0000 (15:54 +0000)]
Update docs to say that a pointer to an inode should not limit you to
64 open files.
Ben Pfaff [Thu, 18 May 2006 02:55:09 +0000 (02:55 +0000)]
Add a test for P1 that checks that multiple threads can properly wake
up at the same clock tick.
Ben Pfaff [Wed, 17 May 2006 22:56:20 +0000 (22:56 +0000)]
Add another test that checks priority scheduling in the case of
priority donation to a blocked thread.
Idea and code by Godmar Back.
Ben Pfaff [Wed, 17 May 2006 22:31:43 +0000 (22:31 +0000)]
Update backtrace to match current format.
Ben Pfaff [Wed, 17 May 2006 22:07:27 +0000 (22:07 +0000)]
Add another test that locks & unlocks in FIFO order instead of stack
order, to catch more bugs.
Idea and code by Godmar Back.
Ben Pfaff [Wed, 17 May 2006 22:03:43 +0000 (22:03 +0000)]
Ignore bochsout.txt, bochsrc.txt.
Ben Pfaff [Wed, 17 May 2006 22:00:25 +0000 (22:00 +0000)]
Ignore p[1-4] directories.
Ben Pfaff [Wed, 17 May 2006 21:51:50 +0000 (21:51 +0000)]
Fix typo.
Ben Pfaff [Wed, 17 May 2006 17:00:36 +0000 (17:00 +0000)]
Give backtrace program ability to take multiple binary file arguments.
Thanks to Godmar Back for suggestion.
Ben Pfaff [Wed, 17 May 2006 16:02:11 +0000 (16:02 +0000)]
Adding yield syscall doesn't help significantly,
or at least not as much as using qemu instead of Bochs.
Ben Pfaff [Wed, 17 May 2006 15:11:23 +0000 (15:11 +0000)]
Boy I just can't get anything right this morning
...should be fixed now.
Ben Pfaff [Wed, 17 May 2006 15:03:53 +0000 (15:03 +0000)]
Oops--added syscall before I was ready.
Ben Pfaff [Wed, 17 May 2006 15:03:21 +0000 (15:03 +0000)]
Improve comments.
Ben Pfaff [Wed, 17 May 2006 15:00:25 +0000 (15:00 +0000)]
Fully capitalize SYS_* syscall enum names.
Ben Pfaff [Tue, 16 May 2006 21:03:28 +0000 (21:03 +0000)]
Use enum instead of macros for system call numbers,
to make it easier to insert new system calls.
Also, comment on what projects need what sysscalls.
Ben Pfaff [Tue, 16 May 2006 20:59:05 +0000 (20:59 +0000)]
I couldn't find any reproducibility problems with Bochs 2.2.6.
Ben Pfaff [Tue, 16 May 2006 20:52:46 +0000 (20:52 +0000)]
Fix lack of locking in file system code (!).
Thanks to Godmar Back for pointing this out.
Ben Pfaff [Tue, 16 May 2006 20:46:06 +0000 (20:46 +0000)]
Rename "segment table" to "supplemental page table".
Ben Pfaff [Tue, 16 May 2006 20:10:31 +0000 (20:10 +0000)]
file_close needs fs_lock.
Ben Pfaff [Tue, 16 May 2006 19:17:57 +0000 (19:17 +0000)]
Now that qemu is available on Solaris, don't talk about it being
Linux-only.
Ben Pfaff [Tue, 16 May 2006 16:13:55 +0000 (16:13 +0000)]
Replace get_user(), put_user() routines by versions that don't do
"copying", which scares off students because they think of copying as
inefficient.
Ben Pfaff [Tue, 16 May 2006 16:08:39 +0000 (16:08 +0000)]
Don't refer to user memory access as "copying". Some of the students
don't see it that way.
Ben Pfaff [Mon, 24 Apr 2006 16:21:07 +0000 (16:21 +0000)]
Add thoughts about USB support.
Ben Pfaff [Sun, 23 Apr 2006 18:06:00 +0000 (18:06 +0000)]
Proofreading.
Ben Pfaff [Thu, 20 Apr 2006 22:56:54 +0000 (22:56 +0000)]
Major revisions to documentation.
Rewrite VM assignment entirely, adding implementation order and
terminology suggested by Godmar Back.
Make the terminology used elsewhere agree.
Rename "Tour" to "Reference Guide" and move to appendix.
Add "Virtual Addresses" and "Page Tables" sections to reference guide.
Rename "References" to "Bibliography" (to avoid confusion) and move to
end of documentation.
Get rid of option to eagerly load partial pages.
Get rid of fullpage.lds linker script, so rename the normal one from
normal.lds to user.lds.
Break mmu.h into vaddr.h and pte.h.
Add "mcat" to examples as a simpler example of mmap.
NB: Any webpages that reference chapters in the documentation will
need to be updated, because the chapters have been reordered.
Ben Pfaff [Thu, 20 Apr 2006 22:46:07 +0000 (22:46 +0000)]
Don't pass "-nics 0" to qemu, because this option name has changed
from version to version and it's just not worth it.
Ben Pfaff [Thu, 20 Apr 2006 05:03:50 +0000 (05:03 +0000)]
Improve comments.
Ben Pfaff [Thu, 20 Apr 2006 04:34:54 +0000 (04:34 +0000)]
Fix line wrapping.
Ben Pfaff [Thu, 20 Apr 2006 03:05:36 +0000 (03:05 +0000)]
Fix comment.
Ben Pfaff [Thu, 20 Apr 2006 01:24:48 +0000 (01:24 +0000)]
Improve comments.
Ben Pfaff [Thu, 13 Apr 2006 17:55:41 +0000 (17:55 +0000)]
Try to make students think about performance of scheduler dispatching.
Based on suggestion from Godmar Back.
Also, minor wording improvements.
Ben Pfaff [Thu, 13 Apr 2006 17:35:41 +0000 (17:35 +0000)]
Improve wording.
Ben Pfaff [Tue, 11 Apr 2006 17:03:14 +0000 (17:03 +0000)]
Explicitly state that mmap'd files must be lazily loaded.
Don't suggest to implement executables as a special case of mmap.
Ben Pfaff [Mon, 10 Apr 2006 00:28:22 +0000 (00:28 +0000)]
Invert the priority scheme, so that PRI_MIN is now the lowest priority
and PRI_MAX is now the highest priority. This should reduce student
confusion (and at the same time subtly frustrate attempts to resubmit
work from previous quarters).
Ben Pfaff [Sun, 9 Apr 2006 20:19:35 +0000 (20:19 +0000)]
The lock functions don't really need to disable interrupts themselves,
since they're protected by the semaphore.
Thanks to Godmar Back for reporting this.
Ben Pfaff [Sun, 9 Apr 2006 20:12:50 +0000 (20:12 +0000)]
Ignore *.info*
Ben Pfaff [Sun, 9 Apr 2006 20:05:52 +0000 (20:05 +0000)]
Fix typo in comment.
Ben Pfaff [Sun, 9 Apr 2006 20:01:51 +0000 (20:01 +0000)]
Fix wrong explanation of sleeping in an interrupt handler.
Thanks to Godmar Back for reporting this bug.
Ben Pfaff [Sun, 9 Apr 2006 19:55:03 +0000 (19:55 +0000)]
Remove fixed item.
Ben Pfaff [Sun, 9 Apr 2006 19:54:42 +0000 (19:54 +0000)]
Improve comment.
Ben Pfaff [Sun, 9 Apr 2006 19:52:36 +0000 (19:52 +0000)]
Remove fixed item.
Ben Pfaff [Sun, 9 Apr 2006 19:52:03 +0000 (19:52 +0000)]
Remove unnecessary test for switching from null current thread.
Thanks to "Waqar Mohsin" <wmohsin@gmail.com> for reporting this.
Ben Pfaff [Sun, 9 Apr 2006 04:13:33 +0000 (04:13 +0000)]
Revise documentation of debugging tools.
Integrate Godmar's description of his macros and one of
his sample GDB debugging sessions.
Talk about pintos-gdb.
Talk about debugging triple faults with the Bochs triple-fault patch.
Ben Pfaff [Sun, 9 Apr 2006 02:44:32 +0000 (02:44 +0000)]
Fix up solution to work with latest process.c.
Ben Pfaff [Sun, 9 Apr 2006 02:29:23 +0000 (02:29 +0000)]
Fix up solution to work with latest process.c.
Ben Pfaff [Sun, 9 Apr 2006 02:21:58 +0000 (02:21 +0000)]
Fix up solution to work with latest process.c.
Ben Pfaff [Sun, 9 Apr 2006 01:27:46 +0000 (01:27 +0000)]
Break load_segment() into two functions for increased clarity.
Don't read anything from disk if p_filesz == 0.
Thanks to Godmar for suggesting these changes.
Also, enforce read-only page protection out-of-the-box.
Fixes for reference solutions to follow.
Ben Pfaff [Sat, 8 Apr 2006 20:42:43 +0000 (20:42 +0000)]
Add patch to make a triple fault break to the gdb stub if active.
Ben Pfaff [Sat, 8 Apr 2006 18:34:47 +0000 (18:34 +0000)]
Don't read anything from the disk for a segment with p_filesz == 0.
Thanks to Godmar Back for reporting this bug.
Ben Pfaff [Sat, 8 Apr 2006 00:23:55 +0000 (00:23 +0000)]
Style.
Ben Pfaff [Sat, 8 Apr 2006 00:23:31 +0000 (00:23 +0000)]
Fix for Bochs 2.2.6.
(I think this might actually be a bug in Bochs, though.)
Ben Pfaff [Fri, 7 Apr 2006 23:17:50 +0000 (23:17 +0000)]
Fix clock: line in bochsrc.
Ben Pfaff [Fri, 7 Apr 2006 18:30:09 +0000 (18:30 +0000)]
Utility for invoking the proper GDB and loading Pintos macros.
Ben Pfaff [Fri, 7 Apr 2006 18:29:34 +0000 (18:29 +0000)]
Add GDB macros written by Godmar Back.
Ben Pfaff [Fri, 7 Apr 2006 18:27:39 +0000 (18:27 +0000)]
Fix warning.
Ben Pfaff [Wed, 5 Apr 2006 22:45:50 +0000 (22:45 +0000)]
Wordsmithing.
Ben Pfaff [Wed, 5 Apr 2006 22:44:11 +0000 (22:44 +0000)]
Typo.
Ben Pfaff [Wed, 5 Apr 2006 21:17:44 +0000 (21:17 +0000)]
Clarify that fixed-point.h is a new file in the reference solution.
Thanks to Megan Anneke Wachs <wachs@stanford.edu> for the question.
Ben Pfaff [Wed, 5 Apr 2006 20:59:27 +0000 (20:59 +0000)]
Comment.
Thanks to "Vincenzo Di Nicola" <dinicola@stanford.edu> for the question.
Ben Pfaff [Wed, 5 Apr 2006 20:34:13 +0000 (20:34 +0000)]
Clarify parallelism requirements.
Thanks to Alicia Chen <achen530@stanford.edu> for the question.
Ben Pfaff [Wed, 5 Apr 2006 20:30:48 +0000 (20:30 +0000)]
Allow PINTOSSIM environment variable to select default simulator.
Ben Pfaff [Wed, 5 Apr 2006 20:11:14 +0000 (20:11 +0000)]
Remark that ^ is xor.
Thanks to Jennifer G <jgee@stanford.edu> for the question.
Ben Pfaff [Wed, 5 Apr 2006 20:09:13 +0000 (20:09 +0000)]
Add section heading for Debugging User Programs.
Thanks to "Huey Kwik" <kwik@stanford.edu> for the question.
Ben Pfaff [Wed, 5 Apr 2006 20:08:06 +0000 (20:08 +0000)]
Clarify directive not to modify file system.
Thanks to "JaJ" <joshi83@stanford.edu> for the question.
Ben Pfaff [Wed, 5 Apr 2006 20:02:21 +0000 (20:02 +0000)]
Clarify comment.
Thanks to Nathan Marz <nathanm@stanford.edu> for the question.
Ben Pfaff [Wed, 5 Apr 2006 19:56:02 +0000 (19:56 +0000)]
Clarify need for virt-to-phys translation table.
Thanks to Nico R Benitez <nicorb@stanford.edu> for the question.
Ben Pfaff [Wed, 5 Apr 2006 19:45:37 +0000 (19:45 +0000)]
Make it clear that the tour is not soon forthcoming.
Thanks to "M Payne" <m@m.com> for the question.
Ben Pfaff [Wed, 5 Apr 2006 19:43:13 +0000 (19:43 +0000)]
Clarify how termination treats file descriptors.
Thanks to Nathan Marz <nathanm@stanford.edu> for the question.
Ben Pfaff [Wed, 5 Apr 2006 19:36:53 +0000 (19:36 +0000)]
Clarify page fault handler for get/put_user().
Thanks to Poornima Vijayashanker <pv6@stanford.edu> for question.
Ben Pfaff [Wed, 5 Apr 2006 19:33:33 +0000 (19:33 +0000)]
Warn if timeout used with debugger.
Thanks to Alicia Chen <achen530@stanford.edu> for question.
Ben Pfaff [Wed, 5 Apr 2006 19:29:30 +0000 (19:29 +0000)]
Make explicit that open doesn't return fd 0 or 1.
Make independence of fds across processes explicit.
Thanks to Ryan Seth Propper <rpropper@stanford.edu> for question.
Ben Pfaff [Wed, 5 Apr 2006 19:25:49 +0000 (19:25 +0000)]
Add comment to explain why we don't free initial_thread.
Thanks to Sunit Pal <sunit@stanford.edu> for the question.
Ben Pfaff [Wed, 5 Apr 2006 19:22:43 +0000 (19:22 +0000)]
Add references to tour of pintos.
Ben Pfaff [Wed, 5 Apr 2006 18:02:49 +0000 (18:02 +0000)]
Rename putchar_unlocked() to putchar_have_lock() to avoid GCC warning.
Ben Pfaff [Wed, 5 Apr 2006 17:59:30 +0000 (17:59 +0000)]
Explain new patches.
Ben Pfaff [Mon, 3 Apr 2006 23:51:21 +0000 (23:51 +0000)]
Now it actually works.