好久没来这里啦,大家好哇。
最近调试一个东东,老大说要预留内存给这个驱动,以前是HalAllocateCommonBuffer动态申请连续内存空间的。
我想问下,这个预留的好处在哪里呢?
能节约内存空间吗?
谢谢啦
预留明显就是有点浪费嫌疑了,嘿嘿。
有时候不用也占用了,其他用不了这部分。
就像程序中尽量少用全局变量一样。嘿嘿。
预留的好处在于一开始初始化就分配了内存,减少了在程序运行中分配资源是对系统的消耗。动态分配时,要消耗系统资源,影响程序运行速度。
动态申请内存空间我是在驱动初始化的时候就做的,只有在卸载该驱动的时候才释放,而一般来说这个驱动是一直在的。所以好像也没有比预留浪费或是节约什么。
现在想节约内存空间,这个预留能起‘节约’的作用吗?疑惑中
预留是只预留虚拟地址还是提交物理页面?是分页内存还是非分页内存?
预留是在config.bib中直接定义如下:
DISPLAY 85600000 00C00000 RESERVED ; 12MB
0X85600000是虚拟地址(物理地址0x55600000已经对应了根据memtable: 80000000<->50000000).
驱动里再调用VirtualAlloc、VirtualCopy(x55600000)映射使用该地址。
我这样用是不是有点问题啊?呵呵,刚刚觉的好像有点不对劲。
另外有个问题2:
在config.bib中我预留的地址是不是应该和RAM空间互斥啊(不交叉)?
不然是不是系统运行起来可能会出现异常?
谢谢啦