Paging
I learned paging in the context of learning Virtual Memory first in ECE222, but paging as an idea works without virtual memory.
Paging can be technique used for partition memory for different processes (Memory Partitioning).
Paging partitions memory into small equal fixed-size chunks and divide each process into the same size chunks (called pages).
Important Distinction
- chunks of a process are called pages
- chunks of memory are called frames
So the distinction is logical (page) vs physical (frame). Source
- Operating system maintains a Page Table for each process
- Contains the frame location for each page in the process
- Memory address consist of a page number and offset within the page
- Logical-to-physical is still done by hardware (see Address Translation)
- Logical address: (page, offset)
- Physical address: (frame, offset)
Connection to Fixed Partitioning
Simple paging is similar to Fixed Partitioning. The differences are that, with paging, partitions are rather small and a program may occupy more than one partition. Furthermore, these partitions need not be contiguous.