Ben Pfaff [Sun, 19 Jun 2005 03:44:53 +0000 (03:44 +0000)]
Add Algorithms::Diff to source tree for systems that don't have it
installed publicly.
Ben Pfaff [Sun, 19 Jun 2005 03:20:25 +0000 (03:20 +0000)]
Make tests public. Rewrite most tests. Add tests.
Major revisions to documentation and assignments.
Implement good solutions to all assignments.
Rewrite pintos script, fsutils, and Pintos command line parsing to
support put, get of multiple files.
New pintos-mkdisk script for what pintos doesn't do anymore.
Make backtrace more friendly.
Major revisions to base file system.
Get rid of names passed to synch primitives.
Break intr_register() into intr_register_ext() and intr_register_int().
Revise bitmap code.
Add console_locked_by_current_thread() and use it.
munmap() has void return value (in lib/user/syscall.c).
Update expected tools versions.
Document use of qemu.
Add realloc() function to malloc implementation.
Add is_user_vaddr() and is_kernel_vaddr(), use in mmu.h.
Add sema_try_down(), lock_try_acquire().
Add memory barrier.
Extend default time slice to 4 ticks and calculate time slices
properly (don't just switch whenever timer_ticks() % 4 == 0).
Fix writing to palloc'd memory without checking against null
in pagedir_create().
Invalidate TLB when we mark pages not accessed or not dirty.
Revise other pagedir code.
Make load() less nasty-looking.
Ben Pfaff [Thu, 26 May 2005 20:21:35 +0000 (20:21 +0000)]
Get rid of unnecessary barrier. Improve comment.
Ben Pfaff [Wed, 25 May 2005 04:29:00 +0000 (04:29 +0000)]
How to debug user programs with gdb.
Ben Pfaff [Tue, 17 May 2005 01:36:51 +0000 (01:36 +0000)]
Update Intel manual URLs.
Ben Pfaff [Thu, 12 May 2005 04:15:47 +0000 (04:15 +0000)]
Fix line wrapping.
Ben Pfaff [Tue, 10 May 2005 23:09:34 +0000 (23:09 +0000)]
Standard disk assignments.
Ben Pfaff [Wed, 13 Apr 2005 05:32:09 +0000 (05:32 +0000)]
Use runtime options instead of conditional compilation for MLFQS,
RANDOM_REPLACEMENT, extra credit. Update documentation, grading.
Ben Pfaff [Wed, 13 Apr 2005 05:20:30 +0000 (05:20 +0000)]
Clean TAGS, tags targets.
Ben Pfaff [Tue, 12 Apr 2005 06:27:56 +0000 (06:27 +0000)]
Align comments.
Ben Pfaff [Tue, 12 Apr 2005 06:09:46 +0000 (06:09 +0000)]
Update message.
Ben Pfaff [Tue, 12 Apr 2005 05:43:46 +0000 (05:43 +0000)]
Update message.
Ben Pfaff [Tue, 12 Apr 2005 05:24:37 +0000 (05:24 +0000)]
Get rid of file system "dump" operations because they weren't useful
and occasionally provoked student questions.
Ben Pfaff [Tue, 12 Apr 2005 05:09:28 +0000 (05:09 +0000)]
Clean better.
Ben Pfaff [Tue, 12 Apr 2005 05:05:47 +0000 (05:05 +0000)]
Get rid of DEBUG macro, supporting code, and documentation,
because no one ever used it.
Ben Pfaff [Thu, 7 Apr 2005 18:00:06 +0000 (18:00 +0000)]
In idle(), "sti; hlt" must be atomic or we can waste time waiting for
the next clock tick.
Fix inspired by Linus Torvalds in message
<Pine.LNX.4.58.
0504071000450.28951@ppc970.osdl.org>.
Ben Pfaff [Wed, 6 Apr 2005 21:13:00 +0000 (21:13 +0000)]
Enhance shell.
Ben Pfaff [Wed, 6 Apr 2005 20:56:02 +0000 (20:56 +0000)]
Enhance shell.
Ben Pfaff [Wed, 6 Apr 2005 20:55:40 +0000 (20:55 +0000)]
Add ls, mkdir user test programs.
Ben Pfaff [Wed, 6 Apr 2005 18:55:18 +0000 (18:55 +0000)]
Revise.
Ben Pfaff [Wed, 6 Apr 2005 18:47:48 +0000 (18:47 +0000)]
Add SUBMAKEFLAGS.
Move < from apply-patch to invocations.
Ben Pfaff [Wed, 6 Apr 2005 18:47:26 +0000 (18:47 +0000)]
Only need single 0x90.
Ben Pfaff [Wed, 6 Apr 2005 18:47:14 +0000 (18:47 +0000)]
Always use a custom linker script, to avoid oddities in the default.
Put linker scripts in lib/user.
Eliminate redundant dependency in Makefile.userprog.
Document change.
Ben Pfaff [Wed, 6 Apr 2005 18:44:37 +0000 (18:44 +0000)]
Add `dirs' target.
Simplify and improve.
Ben Pfaff [Tue, 5 Apr 2005 23:56:39 +0000 (23:56 +0000)]
Fix comment.
Ben Pfaff [Fri, 1 Apr 2005 22:12:43 +0000 (22:12 +0000)]
Update to match printf() fix.
Ben Pfaff [Fri, 1 Apr 2005 21:09:03 +0000 (21:09 +0000)]
Add stdio test.
Ben Pfaff [Fri, 1 Apr 2005 21:08:47 +0000 (21:08 +0000)]
Improve test program.
Ben Pfaff [Fri, 1 Apr 2005 21:06:38 +0000 (21:06 +0000)]
Fix parenthesization.
Ben Pfaff [Fri, 1 Apr 2005 21:03:40 +0000 (21:03 +0000)]
Fix more printf() conformance problems.
Ben Pfaff [Fri, 1 Apr 2005 19:31:31 +0000 (19:31 +0000)]
Revert to old version because it doesn't break preprocessor
directives.
Ben Pfaff [Fri, 1 Apr 2005 18:44:07 +0000 (18:44 +0000)]
Make sure PTRDIFF_MIN, PTRDIFF_MAX, and SIZE_MAX have the proper types.
Ben Pfaff [Fri, 1 Apr 2005 18:43:22 +0000 (18:43 +0000)]
127 is a control character.
Ben Pfaff [Fri, 1 Apr 2005 00:11:54 +0000 (00:11 +0000)]
Fix comment.
Ben Pfaff [Fri, 1 Apr 2005 00:10:50 +0000 (00:10 +0000)]
Improve.
Ben Pfaff [Thu, 31 Mar 2005 04:58:27 +0000 (04:58 +0000)]
Move problem 1-2 (join) into project 2 as the "wait" system call.
Update the documentation, solutions, grading scripts, and regression
tests.
In execute_thread(), rephrase the code slightly.
Move process_activate() call from execute_thread() to load() to remove
potential race condition that students and TAs found confusing.
Add memory barrier in process_exit().
Ben Pfaff [Wed, 30 Mar 2005 06:11:53 +0000 (06:11 +0000)]
Update license section.
Ben Pfaff [Wed, 30 Mar 2005 06:11:08 +0000 (06:11 +0000)]
Talk about license in intro to docs.
Ben Pfaff [Wed, 30 Mar 2005 05:17:28 +0000 (05:17 +0000)]
Replace quick_sort() that uses quick sort and O(lg n) space
by sort() that uses heap sort and O(1) space.
Ben Pfaff [Wed, 30 Mar 2005 02:11:12 +0000 (02:11 +0000)]
Reimplement list_sort() iteratively, reducing memory requirements to
O(1).
Remove list_merge().
Ben Pfaff [Tue, 29 Mar 2005 23:45:14 +0000 (23:45 +0000)]
Add printf() test.
Ben Pfaff [Tue, 29 Mar 2005 07:41:20 +0000 (07:41 +0000)]
Update mmap() tests.
Change MAPID_ERROR to MAP_FAILED to be closer to POSIX.
Ben Pfaff [Tue, 29 Mar 2005 07:40:25 +0000 (07:40 +0000)]
Change list_elem from typedef to struct.
Ditto for hash_elem.
Ben Pfaff [Thu, 24 Mar 2005 09:01:16 +0000 (09:01 +0000)]
Fix 3 distinct bugs reported by Cristian Cadar.
Ben Pfaff [Thu, 24 Mar 2005 06:37:53 +0000 (06:37 +0000)]
Update mmap, munmap stubs to match new prototypes.
Ben Pfaff [Wed, 23 Mar 2005 23:31:36 +0000 (23:31 +0000)]
Fix handling of `+' and ` ' flags for unsigned conversions in
printf(). Thanks to Cristian Cadar for reporting this bug.
Ben Pfaff [Thu, 17 Mar 2005 18:52:52 +0000 (18:52 +0000)]
When run.out is missing in &grade_test, just return an error that
preparation failed, instead of dying. This can happen legitimately
when a `pintos put' fails.
Ben Pfaff [Thu, 17 Mar 2005 18:23:05 +0000 (18:23 +0000)]
Remove patch no longer needed.
Ben Pfaff [Sat, 5 Mar 2005 19:47:28 +0000 (19:47 +0000)]
Crossport 1.2.4.1 to main.
Ben Pfaff [Sat, 5 Mar 2005 19:45:57 +0000 (19:45 +0000)]
Crossport 1.2.4.1 into main.
Ben Pfaff [Sat, 5 Mar 2005 07:33:56 +0000 (07:33 +0000)]
Make mmap use segment IDs.
Ben Pfaff [Sat, 5 Mar 2005 07:14:52 +0000 (07:14 +0000)]
Fix menu.
Ben Pfaff [Sat, 5 Mar 2005 05:33:07 +0000 (05:33 +0000)]
Comment.
Ben Pfaff [Sat, 5 Mar 2005 05:31:47 +0000 (05:31 +0000)]
Update documentation.
Ben Pfaff [Thu, 24 Feb 2005 22:23:50 +0000 (22:23 +0000)]
active_pd() should return a virtual address. Thanks to Guy Isely
<guyi@stanford.edu> for reporting this bug.
Ben Pfaff [Tue, 22 Feb 2005 20:55:13 +0000 (20:55 +0000)]
Don't consider zero-size disks to exist.
(Crossport from win0405.)
Ben Pfaff [Tue, 22 Feb 2005 04:39:52 +0000 (04:39 +0000)]
Suggest a line limit of 79 characters.
Ben Pfaff [Sat, 12 Feb 2005 06:23:35 +0000 (06:23 +0000)]
Use TIMER_FREQ of 19 for grading priority-fifo.
Ben Pfaff [Sat, 12 Feb 2005 06:22:41 +0000 (06:22 +0000)]
Specify how we'll grade problem 1-1.
Ben Pfaff [Fri, 11 Feb 2005 03:49:41 +0000 (03:49 +0000)]
Fix randomization patches to work with revised bitmap code.
Ben Pfaff [Wed, 9 Feb 2005 06:07:36 +0000 (06:07 +0000)]
Fix typo.
Ben Pfaff [Tue, 8 Feb 2005 18:27:26 +0000 (18:27 +0000)]
Free file in file_close().
Ben Pfaff [Mon, 7 Feb 2005 05:56:04 +0000 (05:56 +0000)]
Get rid of THREAD_JOIN_IMPLEMENTED by adding thread_join() stub.
Also add stub implementations of thread_get_priority() and
thread_set_priority().
Ben Pfaff [Mon, 7 Feb 2005 05:52:50 +0000 (05:52 +0000)]
Increase default timeout to 15 seconds.
Ben Pfaff [Sat, 29 Jan 2005 06:50:57 +0000 (06:50 +0000)]
Remove .cvsignore from build directories; put `build' in higher level
.cvsignore instead.
Ben Pfaff [Tue, 25 Jan 2005 20:51:43 +0000 (20:51 +0000)]
Fix typo.
Ben Pfaff [Tue, 25 Jan 2005 20:50:29 +0000 (20:50 +0000)]
Be smarter about dealing with make failures.
Ben Pfaff [Tue, 25 Jan 2005 18:13:20 +0000 (18:13 +0000)]
Fix runaway bochs, pintos processes on time-outs.
Ben Pfaff [Sat, 22 Jan 2005 19:27:20 +0000 (19:27 +0000)]
Clarify that joinability is not inherited.
Ben Pfaff [Fri, 21 Jan 2005 22:24:31 +0000 (22:24 +0000)]
Comment.
Ben Pfaff [Fri, 21 Jan 2005 22:17:37 +0000 (22:17 +0000)]
Set up a frame pointer on interrupt entry, to improve backtraces of
system calls, page faults, etc., whether they come from user space or
the kernel.
Get rid of intr-stubs.pl, replacing it by equivalent all-assembler + C
preprocessor code.
Ben Pfaff [Fri, 21 Jan 2005 22:15:20 +0000 (22:15 +0000)]
Ignore test directories.
Ben Pfaff [Fri, 21 Jan 2005 22:14:41 +0000 (22:14 +0000)]
syscall-stub.S is gone; don't talk about it.
Ben Pfaff [Fri, 21 Jan 2005 22:12:48 +0000 (22:12 +0000)]
syscall-stub.h is gone; don't #include it.
Ben Pfaff [Thu, 20 Jan 2005 07:35:50 +0000 (07:35 +0000)]
Improve debuggability by adding .func/.endfunc around functions.
Ben Pfaff [Thu, 20 Jan 2005 07:31:25 +0000 (07:31 +0000)]
Improve debuggability by eliminating system call stub in separate
assembly file. Instead, implement system call stubs in inline
assembly.
Ben Pfaff [Thu, 20 Jan 2005 05:16:26 +0000 (05:16 +0000)]
Fix quoting.
Ben Pfaff [Thu, 20 Jan 2005 05:16:03 +0000 (05:16 +0000)]
Fix quoting.
Ben Pfaff [Thu, 20 Jan 2005 00:42:59 +0000 (00:42 +0000)]
Remove more or less meaningless comment.
Ben Pfaff [Wed, 19 Jan 2005 22:47:42 +0000 (22:47 +0000)]
Print a message if the default target is used.
Ben Pfaff [Wed, 19 Jan 2005 18:39:39 +0000 (18:39 +0000)]
If the kernel image gets too big, "cmp ebx, KERNEL_LOAD_PAGES*8 + 1"
assembles into 3 more bytes, which causes the image to be too big.
This reduces the length of the panic message to compensate.
Ben Pfaff [Tue, 18 Jan 2005 18:11:11 +0000 (18:11 +0000)]
Need to turn off interrupts again after calling into BIOS.
Ben Pfaff [Tue, 18 Jan 2005 17:26:47 +0000 (17:26 +0000)]
In all the variants of the basic test for part 1-1, release the lock
when we're done with it. This shouldn't be necessary, but not
releasing the lock is a corner case that we don't necessarily want the
students to have to handle.
Ben Pfaff [Fri, 14 Jan 2005 08:23:43 +0000 (08:23 +0000)]
When a Pintos run times out, report the load average.
Ben Pfaff [Fri, 14 Jan 2005 07:59:41 +0000 (07:59 +0000)]
Priority change clarification (problem 1-3).
Ben Pfaff [Fri, 14 Jan 2005 07:28:29 +0000 (07:28 +0000)]
Fix bogus return value from `pintos' utility when calling Bochs
and deal with utilities that expected this behavior.
Ben Pfaff [Fri, 14 Jan 2005 05:43:25 +0000 (05:43 +0000)]
Expect proper result from `pintos get'.
Ben Pfaff [Thu, 13 Jan 2005 06:23:32 +0000 (06:23 +0000)]
Improve comment.
Ben Pfaff [Mon, 10 Jan 2005 08:30:31 +0000 (08:30 +0000)]
Fix Intel names for outd, ind, outsd, insd.
Ben Pfaff [Mon, 10 Jan 2005 08:27:03 +0000 (08:27 +0000)]
Fix %' grouping in printf().
I hope this finally takes care of it.
Ben Pfaff [Mon, 10 Jan 2005 08:14:56 +0000 (08:14 +0000)]
Parse PINTOSOPTS environment variable as extra command-line options.
exit 1 on get, put.
Avoid Perl warnings when cwd doesn't contain a project name.
exit 1 for qemu, gsx.
Write serial output to pintos.out under gsx.
Ben Pfaff [Mon, 10 Jan 2005 07:18:03 +0000 (07:18 +0000)]
Fix order of edi, esi, ebp, ebx in switch_threads_frame. Doesn't
matter because they're never used in the C code, but it's good to have
them correct. Thanks to Howie Xu <xuhao@stanford.edu> for reporting
this bug.
Ben Pfaff [Sun, 9 Jan 2005 08:03:38 +0000 (08:03 +0000)]
Save and restore user processes' FS and GS registers.
Ben Pfaff [Sun, 9 Jan 2005 07:56:14 +0000 (07:56 +0000)]
Fix Make.base in same way as Makefile.
Ben Pfaff [Sun, 9 Jan 2005 02:19:38 +0000 (02:19 +0000)]
%d needed to be %zu
Ben Pfaff [Sun, 9 Jan 2005 01:33:20 +0000 (01:33 +0000)]
Fix ordering.
Ben Pfaff [Sun, 9 Jan 2005 01:15:50 +0000 (01:15 +0000)]
Don't use ! in shell.
Ben Pfaff [Sun, 9 Jan 2005 01:13:48 +0000 (01:13 +0000)]
Print int with %d, not %zu.
Ben Pfaff [Sun, 9 Jan 2005 01:10:35 +0000 (01:10 +0000)]
Add self-test.
Ben Pfaff [Sun, 9 Jan 2005 01:07:39 +0000 (01:07 +0000)]
Add `null' to .cvsignore, via mkmf.