码迷,mamicode.com
首页 > 其他好文 > 详细

操作系统之内存管理(二)

时间:2016-05-12 18:36:12      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

1 前面已经有了分段的概念,那么为什么 有分页的出现呢?

这是为了提高内存分区导致的内存效率问题,在程序转载到内存的时候,我们知道程序是分段载入的,通过内存分区来装载不同的段。那么如果有下面问题,我现在需要请求的空间为160k,而我的总空闲空间是大于160k的,但是没有一个空闲分区大于160k,那么按照分区的管理,就无法利用这总共的内存区域,而内存中的空闲区域也就变成了内存碎片,为了解决这个问题,引出了分页机制!其实就是将内存分成更小的块来进行管理,每块为4k

技术分享


2 有了分页机制之后,我们的内存分配单元就变成以页为分配单位了,并且同一个段的不同页是可以不连续的,如下图:


技术分享

回答上图的问题,最大的内存浪费不超过4k,因为每个页的空间大小是4k,最多浪费是无限接近于4k,这个值比起原来的160k已经改善很多了


3, 现在来回答最后一个问题,有了分页机制之后,每执行一条指令,如何得到它的物理地址,也就是说如何从逻辑地址变为物理地址。与分段类似,这里引出了页表, 每个页表保存着页号和页框号(页表保存在PCB中),除以4k相当于右移12位,每次执行通过硬件(内存管理单元)得到物理地址,就能保证正确的执行!

技术分享

操作系统之内存管理(二)

标签:

原文地址:http://blog.csdn.net/yizhen_acmer/article/details/51350441

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!