Segmentation is a flat address conversion mechanism used to map logical address for each segment to physical address space of underlying memory system.These segments may correspond to logical entities like code,stack,heaps etc and for convenience of programmer using these logical entities -he may treat entire system as his own starting from memory addr 0 to some MAX value allocated to that segment, but that addr. has to be converted to actual physical address when accessing that location so that is done using segment table (which has base value - the starting address of that segment in physical memory and limit -the range of memory allocated to that segment) Notice that since it is flat addressing the whole chunk of contigous memory is allocated .
So for given logical address (a,b) which corresponds to (seg.no,offset in that segment) convert it to an addr. location using the table as :- base + offset .
However an additional check needs to be made by OS to ensure that a segment does not illegally access other segments using any arbitrary values for offset so to assert this
base < = (base + offset ) < = (base + limit ) should be ensured