Paging is a very simple way to allocate memory as the start and end of a page can be predicted. However we can run into problems. If a page is 32kb and I only need 10Kb then 22Kb will be wasted. If this pattern is repeated then a lot of memory will become unuseable.

Segments are variable sized. That means that they can follow a more logical split in the data required reather than forcing data into 32Kb chunks. Below is the same table as can be found on the paging webpage, only it is divided into segments. Notice the length column.

Process ID

Segment ID Address Length
5212 1 0 128Kb
4321 2 131073 64Kb
9832 3 196609 96Kb

Segments are divde memory along logical lines while paging divides memory along physical lines.