操作系统4-非连续内存分配


非连续内存分配

优点: 一个程序的物理空间是非连续的,更好的内存利用,允许共享代码与数据(共享库等),支持动态加载和动态链接

分段机制

程序等栈段、堆段、数据段、等等分散到多个物理空间,

硬件堆分段寻址方案

段号+偏移量,高位为段号,低位为偏移量,用段表来映射,段表中存了起始地址和长度信息,CPU可以在访问前做安全检测,

分页机制

让段的长度固定,就成了分页机制。

页帧

物理内存被分割为大小相等的帧

页表

dirtybit+residentbit+clockbit+页帧号

分页机制的性能

访问一个内存单元需要两次访问: 页表+数据
页表太大怎么办,多个程序多个页表,更大了,这个不能放到cpu,放到内存又会很慢

TLB快表

本质上是页表的缓存,容量有限,速度快

多级页表

多了一次查找,但是空间占用更加低了,就像一个字典树一样,当然省空间

反向页表

那么页表项的数量就只和物理内存大小有关了,和虚拟大小无关了,但是查找就很慢了,第一张方法是使用关联内存,并行查找,但是这个东西的设计成本太高了,第二种方法是Hash查找,用硬件加速,


文章作者: fightinggg
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fightinggg !
  目录