在操作系统中,如何理解分页、分段的定义?两者之间的区别又是什么?
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 09:26:22
在操作系统中,如何理解分页、分段的定义?两者之间的区别又是什么?
在操作系统中,如何理解分页、分段的定义?两者之间的区别又是什么?
在操作系统中,如何理解分页、分段的定义?两者之间的区别又是什么?
分页就是将进程的逻辑地址空间分成若干大小相等的片(即页),然后装入内存.
\x09分段就是用户可以把自己的作业按逻辑关系划分为若干个段,每个段都是从0开始编址,并有自己的名字和长度.这就相当于程序里边的主函数段、各个子函数段、数据段、栈段等等.
\x09要知道在引入分页和分段之前,是通过连续分配方式来管理存储器的,就是说一个进程在内存中是连续存放的.
\x09可以这样理解吧,内存中有进程1、2、3……进程2先执行完成了,然后释放了所占有的内存空间,而之后,
\x09如果新调入的进程内存需求大于之前2所占有的内存空间,那么不可能利用这块内存,相对于内存需求更大的进程来说,之前2所占有的内存空间就是不能利用的碎片,
\x09如果新调入的进程内存需求小于之前2所占有的空间就会留下空隙,也会带来碎片.
\x09虽然可以通过“紧凑”的方法进行碎片整理,但开销很大这就产生了与连续分配方式相对的离散分配方式,便先后引入了分页和分段存储管理.
\x09所以相同点就是,两者都属于存储器管理方式中的离散分配方式.都要通过地址映射机构来实现地址变换.
\x09不同点就在于,离散分配方式的基本单位的不同,是页还是段.
\x09页是信息的物理单位,段是信息的逻辑单位.
\x09分页的作业地址空间是一维的,线性的,程序员只需利用一个记忆符表示一个地址;而分段的作业地址空间是二维的,程序员在表示一个地址的时候既要给出段名,又需要给出段内地址.其中,段名可以理解为函数名等,段内地址可以理解程变量等的地址.
\x09值得一提的是其中页的大小要和物理块或者页框一样,而物理块是操作系统定好了的.也就是说你的操作系统装完之后,物理块的大小是定了的,从而页的大小也是定了的.而段的长度是不定的.
\x09引入分页存储管理方式的目的是提高内存利用率,而引入分段存储是为了满足用户(程序员)在编程和使用上多方面上的要求.还有将两者结合一起的段页式系统.