操作系统——内存分区与分页

内存如果使用分区会产生内存碎片,因此使用内存分页

内存紧缩:将空间分区合并需要移动一个段(复制内容),消耗大量时间,影响操作系统性能

解决办法:内存分页,根据每个段内存请求的大小,系统一页一页的把内存分配给这个段

这种方式的确能提供内存的空间利用率,但是,这样仍然会有问题,因为页小,页表就大

解决办法:

1.减小不必要的页表,导致页表不连续,影响cpu读取内存的速度,这样不行

2.多级页表:不使用的页表项不需要放到内存中,只需要页目录号放到内存中占位即可,节省了大量内存空间的同时也保证页表连续,但由于增加了级数,也就增加了访问内存的次数,降低了时间效率

3.快表TLD:(是寄存器)会记录最近访问的页号信息,这种寄存器通过物理方法使得查询速度非常快(程序的地址访问具有局限性)

因此 快表+多级页表提高了操作系统的性能

页的存在形式:根据访问频繁程度

1.在cpu高速缓存中,导致不同cpu对这个页的访问速度是不同的
2.物理地址在TLB中
3.物理地址通过访问内存中的页表得到
4.页在块内存中,先要交换到内存中才能访问
5.该虚拟地址没有被使用,页表就是空的,只需要有一个占位

原文地址:https://www.cnblogs.com/gaoquanquan/p/10781160.html