COSC 360: Operating Systems
Study Guide 2
Memory Virtualization
Chapters Covered:
- Chapter 13 (Address Spaces)
- Chapter 14 (Memory API)
- Chapter 15 (Address Translation)
- Chapter 16 (Segmentation)
- Chapter 17 (Free Space Management)
- Chapter 18 (Introduction to Paging)
- Chapter 21 (Swapping: Mechanisms)
- Chapter 22 (Swapping: Policies)
Recommendations:
Read over each chapter. Focus on major sections, terms in bold, algorithms/policies, system calls, and figures. It is also recommended to revisit the Python simulations and know how to run/interpret them.
Topics Covered
Chapter 13 (Address Spaces)
- Multiprogramming
- Timesharing
- Interactivity
- Address Spaces (code / heap / stack)
- Virtual addresses
- Process protection
Chapter 14 (Memory API)
- Stack / heap
malloc()
free()
- Garbage collection
- Common memory errors
Chapter 15 (Address Translation)
- Address translation
- Physical vs. virtual addresses
- Base and bounds
- Memory management unit (MMU)
- Free list
relocation.py
Chapter 16 (Segmentation)
- Segmentation
- Segmentation fault
- Segment vs. offset values
- External fragmentation
segmentation.py
Chapter 17 (Free Space Management)
- Free list
- External vs. internal fragmentation
- Splitting
- Coalescing
- Header block
- Free space algorithms (best fit, worst fit, first fit, next fit)
malloc.py
Chapter 18 (Introduction to Paging)
- Pages vs. frames
- Page table
- Virtual page number vs. offset
- Physical frame number
- Valid bit vs. present bit vs. dirty bit
paging-linear-translate.py
Chapter 21 (Swapping: Mechanisms)
- Hard disk drive
- Swap spaces
- Page hit vs. page miss (page fault)
- Page in vs. page out
- Page-replacement policy
Chapter 22 (Swapping: Policies)
- Eviction
- Cache
- Optimal replacement policy
- Policies (FIFO, Random, LRU, LFU, MRU, MFU)
- Dirty bit
- Demand paging
- Thrashing
paging-policy.py