我们的操作系统如何维护内存,即哪些内存块是空闲的,哪些不是?例如,
int a;
OS如何确定将哪个内存分配给'a'变量?
答案 0 :(得分:0)
我必须指出这是特定于操作系统的。但通常,所有现代操作系统都使用称为分页的技术来实现虚拟内存。进程具有线性虚拟地址空间,其中只有页面(固定大小)被映射到真实物理内存(也就是工作集)。因此,从技术上讲,操作系统会根据可用的可用页面帧(在RAM中)跟踪可用于映射不同活动进程的虚拟地址空间的内存可用空间。保留所有空闲页面列表的一种方法是使用链接列表,您可以从中分配新的页面框架或插入已释放的页面。
编辑:链接列表的相同技术可用于管理虚拟地址空间中的动态内存(malloc
的{{1}}}。