您好,欢迎访问一九零五行业门户网

kmalloc和malloc区别(vmallocchunk)

本文主要介绍kmalloc和malloc区别(vmallocchunk),下面一起看看kmalloc和malloc区别(vmallocchunk)相关资讯。
kmalloc函数返回一个虚拟地址(线性地址)。kmalloc的特殊之处在于,它分配的内存是物理连续的,这对于dma设备非常重要。但是vmalloc分配的内存只是线性连续的,物理地址不一定是连续的,所以不能直接用于dma。
vmalloc函数的工作方式与kmalloc类似,只是前者分配的虚拟地址是连续的,而物理地址不需要连续。通过vmalloc获取的页面必须一一映射,效率很低。因此,
仅在必要时使用(通常是为了获得大量内存)。函数的作用是:返回一个指针,指向一个逻辑上连续的内存区域,其大小至少为。发生错误时,函数返回null。vmalloc可能会休眠,因此,
它不能从中断上下文或其他不允许阻塞的情况下调用。要释放通过vmalloc获得的内存,请使用vfree函数。
vmalloc和kmalloc的分配内存的特征如下:
区别大致可以是总结是:
1.vmalloc一般分配高端内存,内存不够的时候才分配低端内存;kmallco从低端内存分配。
2.vmalloc分配的物理地址一般是不连续的,而kmalloc分配的是连续的,两者分配的虚拟地址都是连续的;
3.vmalloc一般分配大块内存,kmaooc一般分配小块内存(一般小于128k);
其它类似信息

推荐信息