|
15-410 Project 4 HurdlesPolicyTo proceed to Project 4, you need to have a solid Project 3. This means that you can pass 15 out of 19 of the basic tests and 12 out of 15 of the solidity tests. Furthermore, you should evaluate what you know of your project which is not directly observable by the tests. For example, did you get your kernel to "work" by some non-sustainable short-cut? If you couldn't figure out how to safely free kernel stacks, leaking them instead might make things appear to work, but would not really address the problem. Likewise, disabling interrupts for essentially the entire body of every system call is papering over a serious issue. If you "trick" us into letting you do P4, you will be cheating yourself. Also, if a particular test, when run on a freshly booted kernel, causes a crashes sometimes but not other times, this indicates an instability which you should probably count as a failure. At least, there is a good chance we will observe the crash and count it that way! Once you've run the tests, please send us a report (success or failure) via the Project 4 Registration Page. Also, be sure to keep a record of which tests you believe you passed and failed in case we disagree later. TestsNote that some tests have multiple "phases". You should pass all phases of such tests to count the test as a pass. Also note that it is possible for one or more tests to have a bug. If you think there is a bug in a test, or you believe a particular test relies on a specification ambiguity, submit a careful and detailed bug report to us via e-mail. If failing this test would not disqualify you from P4, go ahead and submit the registration page. Otherwise, indicate in your mail that the test is blocking you. Observe that some tests, such as rodata_wr_test, "pass" if your kernel kills the process. That is, they should not run to completion. The tests will appear in your 410_tests directory. As was true of earlier tests, you may wish to copy them to your user_tests directory to run them. Good luck! Basic Testsbrk_basic deschedule_hang echo exec_basic (uses exec_basic_helper) fork_test1 fork_wait getpid_test1 halt_test loader_test1 mem_eat_test onestack print_basic readline_basic stack_test1 stack_test2 wait_getpid wild_test1 yield_desc_mkrun sleep_test1 Solidity Testsshell (should run ok, should run commands ok) fork_bomb fork_exit_bomb fork_wait_bomb loader_test2 register_test kernel_wr_test rodata_wr_test text_wr_test desch_hole exec_nonexist mkrun_getpid brk_test2 print_test3 cho (mixes wait_getpid, wild_test1, exec_basic, print_basic, sleep_test1) AgonizingSome of you are almost passing by the criteria above and trying to figure out what to do, whether to appeal, etc. Here is some advice. First, figure out where you stand with P3. Here are some kinds of problems, ranked from least important to most important.
| |||||||||||
[Last modified Saturday January 10, 2004] |