Highlights
Part 1: (CS450)
Memory leaks and tools to find them (xv6 not required) Memory leaks degrades system performance over time and may eventually lead to system crash. The problem happens often and is difficult to detect and correct. The purpose of this exercise is to introduce you to some tools that may help you combat this
problem.
Deliverables of Part 1:
1. Write a program that allocates memory using malloc() but forgets to free it before exiting. What happens when this program runs? Can you use gdb to find any problems with it? How about valgrind (with the command: valgrind --leak- check=yes null)?
2. Create other test cases for valgrind. Explain why you choose them and the expected results.
Part 2: System calls on memory management
1. Develop the myV2p() system call on xv6. The arguments to myV2p()are (1) a virtual address and (2) the operation (read or write) to the instruction or data in that
address. myV2p() returns the corresponding physical address or the appropriate error condition. You will provide a test program that will call myV2p()with various
test data. Sometimes, people call such a test program an automated test driver. Clearly, xv6 must have code for these functions. Because of the difference in purpose, your code may not be the same as those in xv6, but you should understand the code in xv6.
2. Develop the hasPages()system call on xv6. It takes a process id as argument and will display the different kinds of user pages that have been allocated to the process
or returns an error code. How do you define the “different kinds”? The objective is to display as much useful information to the user as possible. You should have test drivers that will allocate different kinds of memory and see how they affect the page tables of the process.
Part 1:
(1) Source and executables of the test programs. A readme on how to build and execute them with the tools.
(2) Screen shoots of test runs. A document (5 pages or less) to describe the results of the test runs and address the deliverables. If you use equivalence partitioning in
deliverable 2, explain your partitions.
Part 2:
(3) Source and executables for the system calls and test programs with a readme on how to build and execute them.
(4) A document (5 pages) that describes the design of the system calls including a manual page for each. Describe the changes that you made to the xv6 memory management code and why. You do not need to describe xv6 changes to implement the system calls; that was done in PA2.
(5) A document (3 pages or less) that describes your test programs and test data. Explain why do you use only those test cases. If you use the equivalence partitioning method, describe your partitions.
This CS450: IT Assignment has been solved by our IT Experts at My Uni Paper. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our Experts are well trained to follow all marking rubrics & referencing style.
Be it a used or new solution, the quality of the work submitted by our assignment experts remains unhampered. You may continue to expect the same or even better quality with the used and new assignment solution files respectively. There’s one thing to be noticed that you could choose one between the two and acquire an HD either way. You could choose a new assignment solution file to get yourself an exclusive, plagiarism (with free Turnitin file), expert quality assignment or order an old solution file that was considered worthy of the highest distinction.
© Copyright 2026 My Uni Papers – Student Hustle Made Hassle Free. All rights reserved.