当前位置: 技术问答>linux和unix
如何在Linux下用驱动程序切出200MB内存,不让操作系统使用,给某一进程独享
来源: 互联网 发布时间:2017-01-08
本文导语: 如何在Linux下用驱动程序切出200MB内存,不让操作系统使用,给某一进程独享 有个供应商提供的驱动,可以修改操作系统启动配置,让2g的内存只分给linux 1.8g,剩下200MB给留着,到时候写个驱动,进程可以调用驱...
如何在Linux下用驱动程序切出200MB内存,不让操作系统使用,给某一进程独享
有个供应商提供的驱动,可以修改操作系统启动配置,让2g的内存只分给linux 1.8g,剩下200MB给留着,到时候写个驱动,进程可以调用驱动获取这个200MB内存的地址,然后使用。
说是为了防止普通内存容易被swap出去,造成延迟。或者因为普通内存不连续DMA效率低。
malloc的内存,逻辑上是连续的,物理上是页面管理,不一定是连续的。
Linux有DMA吗?我用memcpy大量copy数据,会自动调用DMA操作么?DMA是针对物理地址还是虚拟地址?
有个供应商提供的驱动,可以修改操作系统启动配置,让2g的内存只分给linux 1.8g,剩下200MB给留着,到时候写个驱动,进程可以调用驱动获取这个200MB内存的地址,然后使用。
说是为了防止普通内存容易被swap出去,造成延迟。或者因为普通内存不连续DMA效率低。
malloc的内存,逻辑上是连续的,物理上是页面管理,不一定是连续的。
Linux有DMA吗?我用memcpy大量copy数据,会自动调用DMA操作么?DMA是针对物理地址还是虚拟地址?
|
一般情况下都是在系统启动前就把一块物理内存分出去(通过cmdline),然后linux起来以后再把这块内存map进来,这样这块内存就不受linux控制了
|
不知道你是做什么样的应用,如果是自己写程序分出内容这个我不会
但ramdisk你可以考虑一下,不过我不知道已分配的ramdisk是不是完全在ram中会不会被swap,或者有什么参数可以设置,自己研究一下吧
但ramdisk你可以考虑一下,不过我不知道已分配的ramdisk是不是完全在ram中会不会被swap,或者有什么参数可以设置,自己研究一下吧