UnityiOS Developer寒哥管理的技术专题

通俗讲解计算机内存及页面置换算法

2016-09-12  本文已影响1439人  ck2016

计算机存储体系

先来看这张计算机存储体系结构图。


计算机存储体系.png

从上图可以看到,越在上面的访问速度越快,但是容量越小,今天要说的就是内存那个环节。

内存是什么

内存空间管理策略

现在有0xFFFFFFFF个地址,人们是怎么利用操作系统去管理和分配这些地址给程序使用的呢?

虚拟内存地址与实际物理地址

段式管理

页式管理


虚拟地址到物理地址转换过程

地址转换.png
上图还有个在不在位,这个位表示如果程序的页在页框中,那么直接转换,如果不在页框中,那么引发一个缺页中断,操作系统去磁盘上把缺失的页加载进内存,然后程序才继续往下运行。这里有个重点,运行中的程序不一定全部在内存中,也有可能在磁盘上,在磁盘上的那部分叫做虚拟内存!,那究竟程序的哪些页面在内存中,哪些页面在磁盘上,这里就涉及到页面置换算法

页面置换算法

一个程序的部分页面在内存中,部分页面在磁盘上,究竟怎么确定这些页面?
我选几个来说

段页式管理

最后是段页式管理,结合了段式页式的优缺点,把程序先分段,在每个段内再分页,来管理内存,windows操作系统就是用这个方法管理的,当然实际中更加复杂,绝对没有我说的这么简单,我只是通俗的说清原理,详情请看《操作系统原理》

上一篇下一篇

猜你喜欢

热点阅读