Project 4 Grading Criteria

Intermediate submission (worth 10 points)

This will test kernel mapping. You should have paging turned on, as follows:

- Inside Init_VM() (defined in paging.c) insert a call to checkPaging() before and after you call Enable_Paging(). So your code should look like:

- Now, when you launch bochs, you should see the following in the output (before the shell prompt):
	Paging on?: 0
	Paging on?: 1

- Finally, when bochs starts up, nothing should crash and the shell prompt should come up as usual. You should be able to run user mode executables like they used to run when paging wasn't enabled. We'll test by checking the shell and running an user mode program (e.g. b.exe). We will also check the code to make sure you have enabled paging.

Project 4 (worth 90 points)

  1. Turning On Paging:
    - As described above, modify the Enable_Paging() call (in Init_VM(), paging.c); to be checkPaging(); Enable_Paging(); checkPaging();

    Launching bochs should output:

    Paging on?: 0
    Paging on?: 1
    
    when bochs starts up. Nothing should crash and the shell prompt should come up. Enabling paging is worth 27 points.

  2. Dynamically Growing Stack using rec.c.
    At the shell prompt, typing:

     /c/rec.exe 300
    should output:
    calling Recurse 300
    calling Recurse 299
    calling Recurse 298
    ...
    calling Recurse 1
    return from Recurse 1
    return from Recurse 2
    ...
    return from Recurse 298
    return from Recurse 299
    return from Recurse 300
    %
    
    Correct implementation is worth 27 points: 12 from successful rec 300 once, 15 from repeated rec 300 success.

  3. Paging Out to a Swapfile using rec.c.
    At the shell prompt, typing:

     /c/rec.exe 3300
    should output
    calling Recurse 3300
    calling Recurse 3299
    calling Recurse 3298
    ...
    calling Recurse 1
    return from Recurse 1
    return from Recurse 2
    ...
    return from Recurse 3298
    return from Recurse 3299
    return from Recurse 3300
    %
    
    Correct implementation is worth 36 points: 21 from successful rec 3300 once, 15 from repeated rec 3300 success.

  4. Miscellaneous tests
    Expect a few additional tests that, for example: For testing, we may need to reduce the size of physical memory and of the pagefile so that tests complete in reasonable time. Be careful with extra debugging messages: you will need to add Print() statements to help track down problems, but you may have to remove them to speed execution when testing. So, expect:
  5. Extra Credit
    You can receive 10 points of extra credit if you make page tables pageable too, as described in the project description in the Extra Credit section.