Aan*_*Aan 0 c++ winapi shared-memory
我试着读了很多资源,CreateMappingFile
但不幸的是我没有那么好的英语,所以我需要问一下如果是真的我得出的结论:
CreateMappingFile
为虚拟内存中的文件制作类似RAM的结构,而不是RAM,因此这种结构(或任何被调用的)位于硬盘中,但是以可以传输到RAM的形式.当我们需要将此结构传输到我们使用的RAM时MapViewOfFile
.
是对的吗?
CreateFileMapping只是为映射准备一个文件,并为文件映射分配一个句柄.MapViewOfFile实际上给出了映射调用进程的虚拟地址空间中的地址.
由操作系统决定如何将物理RAM专用于该文件映射.每当进程读取或写入映射时,必须至少有一页物理RAM供进程读取或写入.操作系统将根据需要使用物理RAM支持映射(这称为'故障')并从映射中删除物理RAM,因为其他目的需要物理RAM.
映射使用多少物理RAM的管理完全取决于操作系统.通常,操作系统将在访问映射页面时使用物理RAM(可能是前几页),并且只有当页面对该内存有一些其他用途时才会删除页面,它认为这些页面更重要.
顺便说一句,在现代操作系统上,可执行文件完全相同.当您运行可执行文件时,它会映射到进程的内存空间,并且在程序运行时,可执行文件的页面也会根据需要出错.
归档时间: |
|
查看次数: |
323 次 |
最近记录: |