Я не могу понять, как файлы управляются в I/O с памятью. Как обычно. Если мы открываем файл, используя open или fopen, он возвращает указатель файла fd или соответственно. После этого откроется, где файл находится для обработки. Это в памяти (копия файла, который находится на жестком диске) или нет? Если он не находится в памяти, где данные извлекаются последовательным системным вызовом чтения или записи или он извлекает данные с жесткого диска для каждого времени вызова чтения или записи. В противном случае копия файла сохраняется в памяти, и к файлу обращается процесс для манипуляции furthur, и как только процесс будет завершен, файл будет скопирован на жесткий диск. В приведенных выше концепциях сработал сценарий?Memory Mapped I/O в Unix
Ниже приводится определение, данное для памяти отображается I/O в Расширенном Программирование в Unix среде (второе издание) книги:
Отображаемые в памяти ввода/вывода позволяет нам сопоставить файл на диске в буфер в памяти, так что, когда мы извлекаем байты из буфера, считываются соответствующие байты файла. Аналогично, когда мы храним данные в буфере, соответствующие байты автоматически записываются в файл. Это позволяет нам выполнять ввод-вывод без использования чтения или записи.
Что такое отображение файла в память? И здесь они определили, что память помещается между стеком и кучей. В этой памяти, что тип данных присутствует после сопоставления файла. Он содержит копию файла или адрес файла, который находится на жестком диске. И , как приведенный выше сценарий становится истинным.
Кто-нибудь объясняет рабочий механизм функциональных возможностей ввода-вывода с памятью и mmap?
Водители ....................................... –
что означает? Я использую ubuntu 12.04 – mrg
Читайте об [кеше страницы] (https://en.wikipedia.org/wiki/Page_cache) и http://linuxatemyram.com/ и [виртуальном адресном пространстве] (https: //en.wikipedia .org/wiki/Virtual_address_space) –