无论是分段还是分页,都是为了更好的对内存进行管理才出现的。
内存分段
内存分段是一种逻辑上的分段,并不是说在实际上对内存进行了切片。
在分段机制下,每个虚拟地址由两部分构成,段号和段内偏移量。虚拟地址和物理地址由段表联系。
具体而言就是先通过段表查到你这个段号在内存的哪一个部分,然后通过段内偏移量就可以达到寻址的目的
内存分页
内存分页是客观事实上的分页,将整个内存空间按照固定尺寸进行分割,一个尺寸对应的内存空间,称为一页,实际上也是由页号和页内偏移构成。
内存分页和分段的区别:
1 段是逻辑分割,由用户需要去分割,用户不可见;页是物理分割,为了内存管理方便而分割,用户可见
2 段大小不固定,由需要而划分;页大小固定
3 分页的物理地址可以直接通过地址本身去获取页号和偏移量,而分段的逻辑地址需要二维消息,才能确定段号和偏移量的。
4 分页的主要目的是简化内存管理以及实现虚拟内存;分段的主要目的满足程序的逻辑结构和对内存的保护需求(对不同段设置不同权限)