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