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:

        checkPaging(); 
        Enable_Paging();
        checkPaging()
;

- 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
    300
    349
    348
    ...
    1
    %
    
    Correct implementation is worth 27 points.

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

     /c/rec.exe 3300
    should output
    3300
    3299
    3298
    ...
    1
    %
    
    Correct implementation is worth 36 points.

  4. 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.

Web Accessibility