【发布时间】:2017-12-13 07:36:06
【问题描述】:
我们的操作系统如何维护内存,即哪些内存块是空闲的,哪些不是?例如,
int a;
操作系统如何确定分配给“a”变量的内存?
【问题讨论】:
标签: memory-management operating-system
我们的操作系统如何维护内存,即哪些内存块是空闲的,哪些不是?例如,
int a;
操作系统如何确定分配给“a”变量的内存?
【问题讨论】:
标签: memory-management operating-system
我必须指出,这是特定于操作系统的。但通常,所有现代操作系统都使用一种称为分页的技术来实现虚拟内存。进程具有线性虚拟地址空间,其中只有页面(固定大小)被映射到真实物理内存(也称为工作集)。因此,从技术上讲,操作系统根据可用于映射不同活动进程的虚拟地址空间的可用空闲页框(在 RAM 中)来跟踪内存空闲空间。保留所有空闲页面列表的一种方法是使用链接列表,您可以从中分配新的页面框架或插入已释放的页面。
编辑:链接列表的相同技术可以用于管理虚拟地址空间中的动态内存(想想malloc 的Libc)。
【讨论】: