Tutorial Week 7
Questions
Memory Management
Q1: Describe four algorithms for allocating regions of contiguous memory, and comment on their properties.
Q2: What is compaction? Why would it be used?
Virtual Memory
Q3: What is swapping?
Q4: What is Paging?
Q5: Why do all virtual memory system page sizes have to be a power of 2? Draw a picture.
Q6: What is a TLB? What is it's function?
Q7: Given a two-level page table (in physical memory), what is the average number of physical memory accesses per virtual memory access in the case where the TLB has a 100% miss ratio, and the case of a 95% hit ratio
Q8: What are the two broad categories of events causing page faults? What other event might cause page faults?
Q9: Of the three page table types covered in lectures, which one is most appropriate for a virtual address spaces that are sparsely populated (e.g. many single pages scattered through memory)?
Q10: What is temporal and spatial locality?
Q11: What effect does increasing the page size have?
Q12: Why is demand paging generally more prevalent than pre-paging?
Q13: Describe four replacement policies and compare them.
Q14: What is thrashing? How can it be detected? What can be done to combat it?
Q15: Translate the following virtual addresses to Physical Addresses using the TLB. The system is a R3000. Indicate if the page is mapped, and if so if its read-only or read/write.
The EntryHi register currently contains 0x00000200.
The virtual addresses are 0x00028123, 0x0008a7eb, 0x0005cfff,0x0001c642, 0x0005b888, 0x00034000.
TLB | |
---|---|
EntryHi | EntryLo |
0x00028200 | 0x0063f400 |
0x00034200 | 0x001fc600 |
0x0005b200 | 0x002af200 |
0x0008a100 | 0x00145600 |
0x0005c100 | 0x006a8700 |
0x0001c200 | 0x00a97600 |