Segmentation vs. Paging
Ever wonder what the terms segmentation and paging refer to? or heck, what is the difference between the two? Well you're not alone, many people out there are confused when it comes to these terms...
Let’s start by making sure we have a clear understanding about what exactly Paging and Segmentation is. We have tried to simplify this in a way which would be the easiest to understand.
Paging – Computer memory is divided into small partitions that are all the same size and referred to as, page frames. Then when a process is loaded it gets divided into pages which are the same size as those previous frames. The process pages are then loaded into the frames.
Segmentation – Computer memory is allocated in various sizes (segments) depending on the need for address space by the process. These segments may be individually protected or shared between processes. Commonly you will see what are called “Segmentation Faults” in programs, this is because the data that’s is about to be read or written is outside the permitted address space of that process.
So now we can distinguish the differences and look at a comparison between the two:
Transparent to programmer (system allocates memory)
No separate protection
No separate compiling
No shared code
Involves programmer (allocates memory to specific function inside code)