摘要: 在4G主存机器申请8G内存会发生什么 在 32 位操作系统,因为进程最大只能申请 3 GB 大小的虚拟内存,所以直接申请 8G 内存,会申请失败。 在 64 位操作系统,因为进程最大可以申请 128 TB 大小的虚拟内存,即使物理内存只有 4GB,申请 8G 内存也是没问题,因为申请的内存是虚拟内存 阅读全文
posted @ 2022-08-26 15:37 Ethan'Chen 阅读(1736) 评论(0) 推荐(0)
摘要: 内存回收的方式 前文提到malloc的内存分配方式,malloc申请的是虚拟内存,只有在程序去访问时,才会触发缺页异常进入内核态,在缺页中断函数中建立物理内存映射。 如果物理内存充足,则直接建立页框与页的映射。当物理内存不足时,内核会进行物理内存回收,内存回收的方式主要有: 后台内存回收(kswap 阅读全文
posted @ 2022-08-26 14:41 Ethan'Chen 阅读(4426) 评论(0) 推荐(0)
摘要: 内核的内存分区 32位机中的虚拟内存大小为4GB,其中0~3GB用于用户空间,3~4GB用于内核空间。 内核的内存空间只有1G,这一部分内存在进程中共享,与用户空间隔离,用户空间不能访问。 内核空间在虚拟内存上分为三个区间:从低到高分别是: ZONE_DMA(16M) ZONE_NORMAL(16~ 阅读全文
posted @ 2022-08-26 09:33 Ethan'Chen 阅读(825) 评论(0) 推荐(0)