物理内存的分页

分页机制详述
对于4GB线性地址而言,每个页4KB,则总共可以分成1024*1024=1048576个页面。
要表示每个页面的物理地址,需要4个字节。那么总共需要4MB的空间来存储分页相关的信息
程序可以独享4GB的线性地址。所以每个程序都需要维护一个分页信息。那么每个程序都要4M的空间用来存储分页信息,这是不可接受的

重点理解每个页面的物理地址。也就是说 每个页面的地址 是需要告诉CPU的,CPU根据这个地址 去寻找实际的物理页面
那么这地址是几位呢,也就是物理地址总线的长度,32位的就是 4个字节。
一个页面4K

做个简单的数学计算,假设虚拟地址空间为32位(即4GB)。每个页面映射4KB以及每条页表项占4B:一级页表:进程需要1M个页表项(4GB / 4KB = 1M, 2^20个页表项),即页表(每个进程都有一个页表)占用4MB(1M * 4B = 4MB)的内存空间。二级页表:一级页表映射4MB(2^22)、二级页表映射4KB,则需要1K个一级页表项(4GB / 4MB = 1K, 2^10个一级页表项)、每个一级页表项对应1K个二级页表项(4MB / 4KB = 1K),这样页表占用4.004MB(1K * 4B + 1K * 1K * 4B = 4.004MB)的内存空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows操作系统中,内存分页机制是一种虚拟内存管理技术,用于将物理内存与进程的虚拟地址空间进行映射和管理。内存分页机制的核心概念是将进程的虚拟地址空间划分为固定大小的页面(通常为4KB),并将其映射到物理内存上。 Windows使用了两级的页表结构来实现内存分页机制: 1. 页面目录表(Page Directory Table):页面目录表是一个固定大小的数据结构,用于存储指向页面表的指针。每个页面目录表项(Page Directory Entry)对应着一个页面表。页面目录表通常在系统启动时创建,并且对于每个进程都有一个独立的页面目录表。 2. 页面表(Page Table):页面表是一个固定大小的数据结构,用于将虚拟地址映射到物理地址。每个页面表项(Page Table Entry)包含了虚拟地址与物理地址的对应关系。页面表通常在进程创建时动态生成,并且只包含当前进程所需的页面映射。 通过这两级的页表结构,Windows可以实现虚拟地址到物理地址的映射。当进程访问虚拟地址时,操作系统会根据页表将其转换为物理地址,并进行相应的读取或写入操作。如果所需的页面不在物理内存中,则会触发页面错误(Page Fault),操作系统会将页面从磁盘加载到物理内存中,并更新页表的映射关系。 内存分页机制的好处是可以实现虚拟内存的管理和保护。每个进程都有独立的虚拟地址空间,使得进程之间的内存不会相互干扰,同时允许操作系统灵活地分配和回收物理内存。此外,内存分页机制还支持内存权限控制、页面共享和延迟加载等功能,提高了系统的安全性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值