Segmentation divides memory into logical segments. Each process has code and data segments, and the OS has its own segments. Segmentation uses virtual addresses and disk to make memory appear larger. Segments are variable in size, which can lead to external fragmentation. Most systems implement both segmentation and paging, where segments exist in virtual address space and paging translates virtual addresses to physical addresses.