当前位置:首页 > 内存 > 正文

页表在内存中还是在cpu中

  • 内存
  • 2024-06-08 08:27:20
  • 7421

一、操作系统--基本分页存储管理方式

深入探讨:基本分页存储管理的秘密


在连续分配的道路上,我们面临碎片问题。为了解决这个问题,我们引入了一种新的分页和分段的存储管理方法。作为离散分配的救世主,它们带领我们进入了高效内存管理的新世界。


基础关:精巧的内存缩减


基础分页存储管理放弃内存连续性,要求所有页面同时加载到内存中。这需要我们仔细设置页面大小,通常在512字节到8KB之间,以平衡性能和内存效率。其地址结构巧妙地分为页号和页内地址,它们共同构成了程序运行的虚拟舞台。


页表:内存的桥梁和守护者


页表是内存的重要组成部分。它确保进程页和物理块之间的连接。它充当执行地址映射的桥梁。页表除了基本的地址映射之外,还以包含访问控制信息,这为虚拟内存的实现提供了关键支持。


地址转换:逻辑到物理的魔力


在地址转换过程中,通过页表项的智能排列来转换逻辑地址。是物理地址。最初,页表项主要存储在寄存器中,但随着技术的发展,大多数页表被移至内存中,以节省宝贵的寄存器资源。当一个进程试图访问一个逻辑地址时,页表寄存器负责存储页表的首地址和长度,CPU使用高效的查找机制来反汇编页号和内部地址中的有效地址。页。地址。一旦地址超出限制,系统将优雅地发起中断以确保正确的数据访问。


优化:多级页表的智慧


针对大逻辑地址空间,出现了2LP或更多层等多级页表。例如,32位系统将一级页表划分为1MB,而二级页表中的每个页包含1024个条目,外部页表负责记录物理块号。这种结构上的调整使得逻辑地址空间更加灵活,能够适应不同大小的内存需求。


物理与逻辑交织


物理块和页表之间的关系就像一个精确的网格,例如物理块1#包含页0#,而物理块4#承载页面1#。外部页表不仅记录首地址,例如页表0#在物理块1011#,还通S状态位指示页表是否在内存中,对于32位系统,是多级的。页表是优化内存使用的强大工具,而64位系统可能需要更多级别的页表,例如三级页表级别,以确保物理存储空间的高效利用。范围限制为245位。


以上原理来源于权威著作《计算机操作系统:唐晓丹等人》,它向我们揭示了操作系统如何通过分页存储管理来智能管理内存,以提高系统的运行效率。系统。性能和效率。


二、页表存放在内存还是磁盘上

页表分为单级页表和多级页表。

一级页表:如果操作系统为进程分配的内存空间不大,只需要很少的页表,占用的内存空间并不多,所以此时所有的页表都占用了内存空间。页表在内存中。

多级页表:分配给进程的内存空间越大,对应的页表也越大。因此,需要建立一个多级页表,将顶层表(级别比较高)存放在内存中,依靠这个顶层表找到下层表,然后访问它。下层表中对应的实际页码。一些低级表在内存中,而另一些则加载在磁盘上,并由高级表命名后调用到内存中。

功能

确定页号到物理块号的地址映射。

逻辑地址转换为物理地址的过程:用页号检索页表,从页表中得到该页的物理块号,加载到物理中。地址寄存器。同时,将页地址d直接发送到物理地址寄存器的地址。这样,物理地址寄存器中的内容就是两者相除后到达的内存实际地址,从而完成了逻辑地址到物理地址的转换。

以上内容参考:-页表