Ern*_*uan 0 c linux memory memory-management
我正在学习mallocC中的功能.我知道如何请求内存
p = malloc(number_of_bytes);
Run Code Online (Sandbox Code Playgroud)
并在以后不使用时释放它
free(p);
Run Code Online (Sandbox Code Playgroud)
但是我想要了解一些理论上的东西:我知道有了虚拟内存,有三种可能性:
虚拟地址无法分配物理存储(在页面文件或物理内存中)
虚拟地址可以在页面文件上具有物理存储
虚拟地址可以在物理内存上具有物理存储
所以,我的问题是:
malloc返回内存在哪里(我的意思是,它是在页面文件上,在物理内存上(堆可能?))?
是在页面文件上,在物理内存上?
在具有虚拟内存管理的操作系统上,malloc不知道它分配的虚拟内存如何映射到物理内存,这完全是设计的.malloc操作在比虚拟内存管理器更高的级别上.对于mallocOS提供的地址空间中的所有内存都是相同的.
有些页面可能以物理映射开始,以后稍后要换成文件,然后根据需要返回内存.但是,操作系统会对您的程序透明地执行所有这些操作,因此malloc不了解物理内存.
| 归档时间: |
|
| 查看次数: |
700 次 |
| 最近记录: |