我目前正在学校开展“内存项目”,更确切地说是关于动态内存分配。我的问题是关于堆管理。 我真的不明白内存页面和内存块之间的区别。如果我错了请纠正我:堆包含一些未映射的地图。当我们尝试分配一些内存时,请求的大小成为我们可以使用的堆的映射区域。 这个新区域似乎包含一些4096字节的“内存页”,但我不明白内存“块”在哪里......
答案 0 :(得分:2)
内存页是虚拟内存管理中使用的术语。它是MMU(内存管理单元)可寻址的最小单元,它将虚拟地址(到x86上的逻辑地址)转换为物理地址。有关页面和虚拟内存管理的更多信息,请阅读how x86 paging works。
内存块与某个主题没有紧密联系。它们几乎可以引用所有内容,并且在通俗地引用内存时使用(如果有人通俗地讲操作系统)。
据我所知,它们指的是用户在免费商店a.k.a. heap上分配的块。它们是API用户分配的内存区域,提供访问堆的功能(如带有malloc
,free
的C标准库等。)