Memory management 为什么不将所有可用内存分配给堆?

Memory management 为什么不将所有可用内存分配给堆?,memory-management,operating-system,heap,Memory Management,Operating System,Heap,我正在开发一个小爱好操作系统作为一种学习经验,并试图围绕内核内存管理进行思考。我目前正试图通过堆机制来解决内存分配问题 我不清楚的是: 在我回顾过的几个实现中,有一些代码可以扩展和收缩堆。但是为什么不总是使用堆的所有可用内存呢。除了内核代码的一个小区域之外,还有什么需要内存的呢?一般来说,内核既有一个页面内存池,也有一个非页面内存池。非分页池的一侧通常是可配置的。@user3344003可以,但非分页池是否曾经空闲过?我没有看到过。除了内核代码的一个小区域之外,还有什么需要内存的地方?-其他进程

我正在开发一个小爱好操作系统作为一种学习经验,并试图围绕内核内存管理进行思考。我目前正试图通过堆机制来解决内存分配问题

我不清楚的是:


在我回顾过的几个实现中,有一些代码可以扩展和收缩堆。但是为什么不总是使用堆的所有可用内存呢。除了内核代码的一个小区域之外,还有什么需要内存的呢?

一般来说,内核既有一个页面内存池,也有一个非页面内存池。非分页池的一侧通常是可配置的。@user3344003可以,但非分页池是否曾经空闲过?我没有看到过。
除了内核代码的一个小区域之外,还有什么需要内存的地方?
-其他进程?