Предположим, что I:
open
файл только для чтения F
N
длина байта из процесса A
mmap
его fd
только для чтения (PROT_READ
) и MAP_SHARED
mlock
возвращаемый диапазон памяти. - переходят в бесконечный цикл.
Мое пониманиеданные из файла теперь являются резидентными и поддерживаются N
байтами страниц физической памяти из-за mlock
.Производительность чтения диапазона памяти должна быть такой же, как у обычной памяти, выделенной, скажем, malloc
.
Теперь, если я создам второй процесс B
, пока процесс A
все еще выполняется ивыполните те же самые шаги из процесса B
, будут ли N
байты страниц физической памяти, которые поддерживают файл mmaped, такими же физическими страницами из процесса A
?
То есть A
и B
вместе используют N
байтов физической памяти?Или они будут использовать 2*N
байтов физической памяти?