通过阅读shmget()的手册页面,我了解到shmget()调用会在内存中分配许多页面,这些页面可以在多个进程之间共享。
它会创建内核内存页面,并将其映射到进程的本地地址空间中吗? 还是该进程内存页面保留用于此段,将为其他附加进程共享相同的内存页面?
我的假设:
当调用shmget()时,内核将保留一些段/页面。 当调用shmat()时,保留的段被映射到进程的地址空间/页面上。 当新进程连接到相同的段时,先前创建的内核段将映射到新进程的地址空间。
这是否正确?
它会创建内核内存页面,并将其映射到进程的本地地址空间中吗? 还是该进程内存页面保留用于此段,将为其他附加进程共享相同的内存页面?
我的假设:
当调用shmget()时,内核将保留一些段/页面。 当调用shmat()时,保留的段被映射到进程的地址空间/页面上。 当新进程连接到相同的段时,先前创建的内核段将映射到新进程的地址空间。
这是否正确?