关于Windows内存体系结构

一、 进程的虚拟地址空间
每个进程都有自己的虚拟地址空间。对于32位进程来说,这个地址空间的大小为4GB。对于64位进程来说,这个地址空间的大小为16EB。因为每个进程都有自己专属的地址空间,当进程中的各线程运行时,它们只能访问属于该进程的内存。线程既看不到属于其他的进程的内存,也无法访问它们。

虽然应用程序有这么大的地址空间可用,但是记住这只是虚拟地址空间——不是物理存储器。为了能够正常读/写数据,我们还需要把物理存储器分配或映射到相应的地址空间,否则将导致访问违规。

二、 虚拟地址空间的分区
每个进程的虚拟地址空间被划分为许多分区(partition)。
一般情况下进程的地址空间是这样划分的:

空指针赋值分区
用户模式分区
64KB禁入分区
内核模式分区

· 空指针赋值分区:保留分区的目的是为了帮助程序员捕获对空指针的赋值。如果进程中的线程试图读取或写入位于这一分区内的内存地址,就会引发访问违规。
当我们为变量分配内存的时候,需要判断内存有没有分配成功,不能想当然的认为分配一定会成功。因为地址空间中的这一分区是禁止访问的,所以会引发内存访问违规并导致进程被终止。

三、 地址空间中的区域
四、 给区域调拨物理存储器‘
五、 物理存储器和页交换文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值