On the programmer level, paging is a transparent function and does not require intervention. Frames do not have to be contiguous. Easy to use memory management algorithm Swapping is easy between equal-sized pages and page frames.
Simple to relocate segments than the entire address space. The absence of internal fragmentation as external fragmentation has to be done. The segment table is of lesser size compared with the page table in paging. The average size of the segment is larger to the actual size of the page Offer protection within the segment Not offers internal fragmentation Segment tables use lesser memory than paging As it offers the small segment table, memory reference is simple, which lends itself to sharing data among processes.
Paging causes internal fragmentation on older systems. Longer memory lookup times compared to segmentation It may cause internal fragmentation Page tables consume additional memory. Multi-level paging may lead to memory reference overhead.
Un-equal size of segments is not good in the case of swapping. Porting Linux to different architectures is difficult to process because it offers very limited support for segmentation. It demands programmer intervention. It is hard to allocate contagious memory to partition as it is of its variable size. This is costly memory management algorithm.