2010-02-21 1 views
2

Если у меня есть память, отображаемая файл размером 10 ГБ на машине 1 ГБ, и если я запускаю ввод-вывод файла, то после того, как запрошенные данные не находятся в физической памяти, данные сопоставляются с соответствующим виртуальным адресом в mmap?Сопоставление карт и файлы ввода/вывода

Когда я доступ к одному хранилищу, используя ММАП, он будет снова сделать I/O (или он будет использовать данные, который был неправдоподобным с использованием файла ввода/вывода)

Спасибо заранее,

Гокул.

+0

какая ОС? какое оборудование? какая языковая платформа? – skaffman

+0

Я действительно ищу общее решение, которое будет работать в Windows, Linux и Open Solaris. – Gokul

ответ

1

Это зависит от платформы, но в целом это будет рассматриваться как другая память (поменяется, если она не используется, заменяется при необходимости), за исключением того, что вместо обычных файлов/разделов свопинга они меняются с оригинальный файл на диске.

+0

Скажите, что я прочитал часть файла, используя файл i/o, могу ли я назначить эту память на один диапазон адресов в mmap? – Gokul

+0

Нет, вы не используете файл i/o - вы mmap файл, а затем обращаетесь к нему так, как если бы это была память. –

+0

ОК. Благодарю. Я действительно собирался комбинировать async i/o с mmap, но похоже, что это невозможно. – Gokul