代码之家  ›  专栏  ›  技术社区  ›  Chris Huang-Leaver Tom-Oliver Heidel

Linux版本的Windows“非页面池”是否存在这种情况?

  •  1
  • Chris Huang-Leaver Tom-Oliver Heidel  · 技术社区  · 14 年前

    我一直在使用一个从“非页面池”读取的Windows应用程序来提高性能。在这种情况下,非分页池是一个内存区域,网络驱动程序在从网络上获取数据时会在其中写入数据。

    Linux如何处理需要高速独占访问RAM的网络驱动程序(或其他驱动程序)的内存,以及问题“如何直接从非分页池读取?”当应用到Linux时,甚至有意义?

    非常感谢

    related question

    1 回复  |  直到 14 年前
        1
  •  3
  •   janneb    14 年前

    一些网络(如Infiniband)支持RDMA,这要求能够防止对进程中的某些页面进行分页。请参见mlock()、mlockall()、munlock()、munlockall()函数。

    除此之外,我认为从本质上来说,不存在“非页面池”的概念。一般来说,内核内存是不可分页的,但是除了使用mlock()锁定的内存以外,所有用户内存都是可分页的。