课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习计算机编程开发技术,而今天我们就一起来了解一下,软件开发内存分页的原理。
因为分段粒度太粗了,导致内存碎片大,不利于管理。
当时加载到内存等于一个段都得搞到内存中,而段的范围过大,举个例子。
假设此时你有200M内存,此时有3个应用在运行,分别是LOL、chrome、微信。
此时内存中明明有30MB的空闲,但是网易云加载不进来,这内存碎片就有点大了。
然后就得把chrome先换到磁盘中,然后再让chrome加载进来到微信的后面,这样空闲的30MB就连续了,于是网易云就能加载到内存中了。
但是这样等于要把50MB的内存来个反复横跳,磁盘的访问太慢了,所以效率就很低。
总体而言可以认为分段内存的管理粒度太粗了,所以随着80386就出来了个分页管理,一个更加精细化的内存管理方式。
简单地说就是把内存等分成一页一页,每页4KB大小,按页为单位来管理内存。
你看按一页一页来管理这样就不用把一段程序都加载进内存,只需要将用到的页加载进内存。
这样内存的利用率就更高了,能同时运行的程序就更多了。
并且由于一页就4KB,所以内存交换的性能问题得以缓解,毕竟只要换一定的页,而不需要整个段都换到磁盘中。
对应的还有个虚拟内存的概念。
分页机制构造了一个虚拟内存空间,让每个进程误以为自己掌控所有的内存。
再具体一点就是每个进程都有一个页表,页表中有物理页号和属性,这样寻址的时候通过页表就能利用虚拟地址找到对应的物理地址。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。