Worksheet 10
Capoo finally passed the easy xv6 Python grade scripts. A piece of fish! Le Chat-GPT, Merci!

He even proudly added a new system call called sys_capoo(), which, only prints:
“Meow. System call success.”
But peace never lasts long in Prof. Chen’s class. (#・∀・)
This week is all about address translation in virtual memory. Don’t be intimidated by the amount of reading material, the most important thing to understand is how address translation work. Enjoy!Learning Objectives
There are a bunch of stuff to read this week (´・_・`) , but you really just need to make sure you understand the following points:
- I understand how virtual address is translated to physical address.
- I understand internal/external fragmentation
- I understand why multi-level page tables reduce memory usage by avoiding allocation for unused regions.
- I understand how address translation work in multi-level page tables
- I understand why TLB improves the performance of address translation
- I understand larger page sizes reduce TLB misses and improve performance
- I understand why process identifiers (PCID/ASID) allow multiple processes’ TLB entries to coexist without flushing
- I understand how a 16KB page reduces page table size and translation cost in ARMv8’s page table structure (The story of memory page size).
Back to top