26-Oct-2003: Another bug was uncovered in Project 2! Specifically, consider the following sequence of events:
The value written into %s0 in the first step will be clobbered by the MMU when the page fault occurs in the second step. Thus, the wrong system call request will be passed in the last step.
This problem is more than a bug, it is a design flaw. There needs to be registers dedicated for carrying the results of asynchronous interrupts into the kernel. That way, no process values can be clobbered. This problem will be fixed for the next assignment. For this assignment, simply ignore this case, knowing that it's the fault of the CPU designer.
23-Oct-2003: There has been a bug found in the CPU for processing LOAD and STOR instructions. Specifically, the offset operand was being ignored. That bug has been fixed. To get the new code:
tar -xjvpf ~sfkaplan/public/cs39/VP-v1.2.2.tar.bz2
Also, the deadline for the project has been extended to Sunday, October 26th, at 11:59 pm.
20-Oct-2003: Project 2 has been graded and returned to you at long last. I emailed copies to the person in each group that submitted the work. If you are that person for your group, please forward the results to your partner.
8-Oct-2003: Project 2 has been updated yet again. Specifically, two bugs in the MMU were found and corrected. Also, check the project web page, as the assignment of bit flags for PTEs has changed slightly. To get the newest project code:
tar -xjvpf ~sfkaplan/public/cs39/VP-v1.2.1.tar.bz2
6-Oct-2003: Project 2 has been updated! The code is available. Some changes have been made to the project page itself, so read it carefully!
3-Oct-2003: Project 2 has been posted. Note that the code for this project will not be available until Monday morning, but the project description will allow you to begin planning your work.
2-Oct-2003: Project 1 is due tonight, and I noticed that I have received no questions about forking. More shockingly, I have received no questions about the assembler. None of the VM executables provided performs a fork() system call. Have you written it? Did you write and assemble a program that tests it? You should have...
27-Sep-2003: The virtual platform documentation has been updated to include a description of when and PC is advanced and when it is not. Hint hint.
27-Sep-2003: The style guide has, at long last, been posted.
26-Sep-2003: I forgot to post the virtual platform documentation as part of Project 1. You may need that to know exactly how the simulated CPU behaves.
26-Sep-2003: The deadline for Project 1 has been extended to Thursday, October 2nd, 11:59 pm. This extra time is expected to be used so that your code will conform to the style guide that will be posted later today.
13-Sep-2003: Project 1 is now available.
11-Sep-2003: The submission and check-assignment programs are now working. Try it!
11-Sep-2003: The submission and check-assignment programs are now working. Try it!
10-Sep-2003: I will be in 007 (or near it) tomorrow after 1:30 pm. If you have questions on project 0, that will be the time to ask them. I will leave no later than 5 pm, so it would be good to get to your questions before that time, as I will not field questions after that.
10-Sep-2003: The sample STL page had a couple of important errors. Specifically, due to my sloppy HTML writing, the list class example wouldn't compile. It's been fixed. My apologies!
7-Sep-2003: The Project 0 page has been updated to contain information on sample reference traces. Please read that new section carefully!
7-Sep-2003: A document on getting started with C++ has been posted. In contains information and examples on connecting graphically to algol, using XEmacs, the C++ compiler, and the debugger.
3-Sep-2003: Project 0 is available on the projects page.
20-Aug-2003: Read the course information page. You are responsible for knowing and understanding its full contents.