Linux 上进程的常用分配单元是什么?

ped*_*ros 4 memory linux-kernel

我目前正在研究操作系统中的内存管理。

分配单元是操作系统分配给任何进程的最小内存单元。

我在这个页面的“内核内存分配”部分中读到过,页面是操作系统将提供给进程的最小单位。

但是在这个页面中,在“分配的内存”部分,它说操作系统可以将它分成更小的块(例如 6 个字节),并在请求时将其提供给应用程序。

我不确定这两个链接是否在谈论同一件事,但我的问题是:具有虚拟内存和分页的操作系统中通常的分配单元是什么?

小智 8

在你的第二个参考中,它说

内存分配器获得一大块内存(比如 4 页或 4 * 4 KiB)并将其划分为更小的块

“内存分配器”不是内核,而是像 malloc 这样的 libc 例程。

内核以页面大小的块为进程分配内存。malloc 会在应用程序请求并释放这些页面时跟踪这些页面的已使用和未使用部分。