CMPUT 379 Assignment 1 Blaz Pocrnja Shawn Sydia How to Run: -"make mod<DRIVER NUMBER>" to compile executable. -"./mod<DRIVER NUMBER>" to run exectuable. *Where "<DRIVER NUMBER>" refers to 1,2,3 depending on the mem_mod version you want. -"make clean" to delete .o files. Note: In our output - 0 = R/W (Read/Write) 1 = RO (Read-Only) 2 = NO (No Access) MEM_MOD1 Allocates a block of PAGE_SIZE bytes of memory on the heap. The heap has a higher address region than the stack (which we manipulate in mem_mod2), and is read-writable. MEM_MOD2 Uses sbrk() to change the location of the program break, which defines the end of a process' data segment, by incrementing the break by a PAGE_SIZE of bytes. This difference is lower in address space than the difference in MEM_MOD1, but is similar in that the difference mem-region is read-writable as well. MEM_MOD3 Uses mprotect() to change the access mode of two regions of memory. Specifically, at one page the access mode is changed to read-only for 1024 bytes (our program only reads access at the beginning of each page), and then no access for the following page for 1024 bytes.