This page does not represent the most current semester of this course; it is present merely as an archive.
Answer all of activity 1 and 2, and as much of activity 3 as you have time to do within lab. My goal is to help you think about the material; how you get the answers is up to you. As long as you don't steal material from someone without their permission, any approach is fair game.
Activity 1: Multi-level Page Tables
Most memory systems use a page size that can fit one page table.
Assume that a page table entry is the same size as an address. Fill in the tables below to explore the resulting number of page tables for different page sizes. You may use K to mean *1024 and M to mean *1024*1024.
Assume we have 32-bit (4 byte) addresses and fill out the rest of the following table (note the jump between 16K and 128K):
Activity 2: Processes
Assume we have 32-bit virtual addresses and 4K pages. Assume also that every process has at least three pages of used memory: one page for shared libraries, one for data, and one for text. Assume that all of the the VPNs for each of these pages is distinct; only the top-level page table is shared.
Activity 3: Code Concepts
Section 9.11 lists a variety of common memory bugs. Let's think a bit about each one.
Answer as many of these questions as you have time to think about carefully in lab. I'd rather see a few thoughtful answers than a lot of less thoughtful ones. Do your best within the time you have.
If you want to come back and answer them after lab, you may.