Homework 6: Wrapping UpNewsCheckers: Checkers are complete. Run linear-check.py or multi-check.py from your hw6 handin directory to check if your file linear.out or multi.out files have the correct contents: prompt> cd ~cs354-3/handin/USERNAME/hw6/ prompt> ~cs354-3/public/hw6/linear-check.py prompt> ~cs354-3/public/hw6/multi-check.py Due DateDue Date: Friday, 5/5 at some time Questions?Question? Just send email to 354-help@cs.wisc.edu as always. We might even get back to you! Part 1: Simple Page TranslationAs with the very first homework, this effort will be performed entirely in your handin directory for hw6. Start by changing directories to said destination: prompt> cd ~cs354-3/handin/USERNAME/hw6/ From that directory, run a simple program that prints out some problems for you to solve: prompt> ~cs354-3/public/hw6/linear-run.pyThis program, linear-run.py, spits out some virtual addresses for you to translate into physical addresses, assuming a simple linear (array-based) page table. To learn more about how this style of paging works, you may wish to review what we covered in class or read the following: To learn more about this specific homework, you should probably read the README file: The parameters of the system you'll be dealing with are different than in the README. They are:
To turn in your answers, simply create a file called linear.out in your hw6/ directory, and put the answers into it in this form:
The homework, when you run it, gives you the virtual addresses (left column): you should put the decimal version into your output file. Your task is to figure out the translations (physical addresses); also record this as a decimal number. The virtual and physical addresses should be separated by one or more spaces. In the case that the virtual address is not valid (i.e., accessing it will lead to a fault), just put a single dash - instead of a physical address in the file. We'll provide a checker in a few days so you can see if you are getting the correct answers. Part 2: Multi-level Page TablesIn this second part of the project, you'll learn about multi-level page tables and how to perform translations with these more sophisticated structures. It may be best to first read about them (Section 20.3 in the following): Once again, cd into your hw6/ homework directory, and run the following: prompt> ~cs354-3/public/hw6/multi-run.py To learn more about the homework, once again consult the README: Your answers should go into the file multi.out in that directory. They should be of the form:
This time, the virtual addresses should be listed in four-digit hex form, e.g., 611c, and the value_at_that_address should either be the 2-digit value of the byte located in physical memory or a dash - to indicate a fault. . . |