• 【转】内存分配粒度vs内存分页大小vs内存空间


    原帖地址

    分配粒度:表示每次请求内存的时候最小给分配多少,比如32位操作系统基本上每次分配的是64K大小。
    分页大小:表示的是页面的大小,32位操作系统是4K是内存管理的最小单位。
    例如:
    假设你要请求6k = 4K + 2K的空间,操作系统会一次分配64K的空间放着,又因为内存最小操作单位是4K,所以实际上给你分配了8K=4K +  4K,剩下的56K放着有需要了再给你。
    WIN32 操作系统为每个进程分配4G的内存空间,程序的代码,常量变量都分配在这4G内存空间上。
    这里提到的内存空间跟内存条的内存是一个概念吗?
    
    如果辅盘也不足2G呢?
    
    这里说的内存是逻辑上的,也就是虚拟的。并不是物理上的内存空间。实际实现逻辑内存的时候如果物理内存不足就用辅存(硬盘)。
    有的人自然要问:既然可以用辅存虚拟,那么每个进程不是想要多大虚拟内存就有多大么?
    实际不是这样,32位机决定了内存寻址空间最大只能是2的32次方,即4G
    
    如果程序实际需要的内存大于虚拟内存(尽管没有达到4G),windows就会在右下脚出现一个黄色三角形里面有个感叹号.提示虚拟内存不足,要你设置虚拟内存为更大的值.如果不设置,或如你所说硬盘都不足4G就会自动终止进程终止不了就死机了.我在vista下面用ramDisk的时候就碰到过.
  • 相关阅读:
    机器学习笔记
    使用pelican创建静态博客
    farbox editor是个好东西
    MamBa项目的插件编写-TikiTorch生成器
    通过rundll32运行C#DLL转储内存
    通过调用Windows本地RPC服务器bypass UAC
    浅谈python反序列化漏洞
    [转载]SQL Server提权系列
    certutil在传输payload中的新奇技巧
    AVIator -- Bypass AV tool
  • 原文地址:https://www.cnblogs.com/Lthis/p/4634398.html
Copyright © 2020-2023  润新知