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