Paging
Dividing memory into equal-sized chunks, typically 4 kB, rather than treating it as one contiguous space.
Fixed sizes solve external fragmentation: any free page will do for any request, so memory can never become unusably chopped up. The price is internal fragmentation — a 100-byte file still occupies a whole page.
Translation from virtual to physical page goes through page tables, which on 64-bit systems are hierarchical across four or five levels. A full lookup therefore takes several memory accesses, which would be devastating were it not for the TLB caching results. Huge pages of 2 MB or 1 GB cut the number of entries and are used where the working set is large and predictable, as in databases and virtual machines.