Revise documentation of debugging tools.
[pintos-anon] / doc / userprog.texi
index 59b198abdda810745fd6c5d950a5ceb8723c6378..1a6a77cf4c62a369637f82c4ad169de38b3ce9d2 100644 (file)
@@ -132,8 +132,13 @@ the focus of this project is not on the file system code, so we have
 provided a simple file system in the @file{filesys} directory.  You
 will want to look over the @file{filesys.h} and @file{file.h}
 interfaces to understand how to use the file system, and especially
-its many limitations.  @strong{You should not modify the file system
-code for this project.}  Proper use of the file system routines now
+its many limitations.
+
+There is no need to modify the file system code for this project, and so
+we recommend that you do not.  Working on the file system is likely to
+distract you from this project's focus.
+
+Proper use of the file system routines now
 will make life much easier for project 4, when you improve the file
 system implementation.  Until then, you will have to put up with the
 following limitations:
@@ -141,7 +146,7 @@ following limitations:
 @itemize @bullet
 @item
 No synchronization.  Concurrent accesses will interfere with one
-another.  You should use a global lock to ensure that only one process at a
+another.  You should use a lock to ensure that only one process at a
 time is executing file system code.
 
 @item
@@ -442,8 +447,8 @@ static inline bool put_user (uint8_t *udst, uint8_t byte) {
 
 Each of these functions assumes that the user address has already been
 verified to be below @code{PHYS_BASE}.  They also assume that you've
-modified @func{page_fault} so that a page fault in the kernel causes
-@code{eax} to be set to 0 and its former value copied into @code{eip}.
+modified @func{page_fault} so that a page fault in the kernel merely sets
+@code{eax} to 0 and copies its former value into @code{eip}.
 
 @node Project 2 Suggested Order of Implementation
 @section Suggested Order of Implementation
@@ -656,8 +661,7 @@ Consider implementing this function in terms of @func{filesys_remove}.
 @deftypefn {System Call} int open (const char *@var{file})
 Opens the file called @var{file}.  Returns a nonnegative integer handle
 called a ``file descriptor'' (fd), or -1 if the file could not be
-opened.  All open files associated with a process should be closed
-when the process exits or is terminated.
+opened.  
 
 File descriptors numbered 0 and 1 are reserved for the console: fd 0
 is standard input (@code{stdin}), fd 1 is standard output
@@ -732,7 +736,9 @@ Consider implementing this function in terms of @func{file_tell}.
 @end deftypefn
 
 @deftypefn {System Call} void close (int @var{fd})
-Closes file descriptor @var{fd}.
+Closes file descriptor @var{fd}.  
+Exiting or terminating a process implicitly closes all its open file
+descriptors, as if by calling this function for each one.
 
 Consider implementing this function in terms of @func{file_close}.
 @end deftypefn
@@ -869,9 +875,9 @@ argument passing is implemented correctly (@pxref{Program Startup Details}).
 The @command{objdump} (80@var{x}86) or @command{i386-elf-objdump}
 (SPARC) utility can disassemble entire user
 programs or object files.  Invoke it as @code{objdump -d
-@var{file}}.  You can use @code{gdb}'s
-@command{disassemble} command to disassemble individual functions
-(@pxref{gdb}).
+@var{file}}.  You can use GDB's
+@code{disassemble} command to disassemble individual functions
+(@pxref{GDB}).
 
 @item Why do many C include files not work in Pintos programs?