我目前正在研究Windows,我发现Windows使用两个内存部分,它们在系统空间地址空间中命名为分页池和非分页池。因此,只有窗口的关键部分保存在非分页池中(不使用请求分页)。虽然我被教导在Linux中所有的系统空间地址空间都不使用请求分页的概念?如果所有这些信息都是正确的那么我应该得出结论,Windows运行的RAM需要比Linux少吗?
答案 0 :(得分:1)
While I was taught that in linux all the system space address space does not use
the concept of virtual memory?
这是错误的。 Linux内核及其组件(驱动程序,子系统等)使用虚拟内存。函数指针,分配例程返回的指针是虚拟地址。
答案 1 :(得分:0)
如果你在谈论内存管理,我希望下面的话可以回答它。
在Linux中,有两种内存地址空间:虚拟和物理 内存以页面为单位进行管理 虚拟地址映射到物理地址 虚拟地址是您编写代码时使用的地址 物理地址可以在内存中,磁盘中或其他地方 磁盘比内存更便宜,更大,但内存比磁盘快 因此内核更喜欢使用内存 为了获得贪婪过程的空间,内核会将一些页面从内存交换到磁盘,因此可以获得免费的内存。
但是内核地址空间中的大多数内存不应该交换到磁盘,因为它们负责管理内核和其他所有内容。这类似于非分页窗口。
我认为linux和windows都有类似的内存管理机制。 所以很难说哪个使用更少。
答案 2 :(得分:0)
内核使用虚拟内存进行vmalloc分配,但它总是由物理内存支持。这意味着内核永远不会出现页面错误它可以保持延迟可预测。访问存储的少数内核子系统(mm,nfsd,文件支持的交换)必须明确要求vfs映射页面;这保持了它所属的复杂性。
答案 3 :(得分:0)
内核空间的内核映像部分无法换出而不是整个内核空间。例如,当物理内存变低时,绝对可以分页出由磁盘支持的页面缓存。