共享内存是如何在windows中实现的

How is shared memory implemented in windows?

本文关键字:windows 实现 内存 共享      更新时间:2023-10-16

内存分配在哪里?新内存在哪个地址空间?

Windows中有两种常见的共享内存类型。

一种是多个进程将同一个文件映射到内存中。这显然发生在可执行文件和库中,但也可能发生在数据文件中。基本上,进程共享内存的事实对它的工作方式几乎没有影响。它是通过与映射单个进程时相同的需求分页来实现的。

另一种类型是共享的匿名映射。可以通过调用CreateFileMapping函数来创建这些文件,而无需指定要映射的有效文件。这与分配内存的情况相同,只是多个进程可以访问它。就像正常的内存使用一样,如果没有访问它,或者出于其他目的需要RAM,它可以被分页到磁盘。

对于共享的匿名映射,内核为进程提供了一个内存句柄,以便进程在想将其映射到自己的内存空间时可以引用它。