Condividi tramite


File Mapping

Il mapping dei file è l'associazione del contenuto di un file con una parte dello spazio indirizzi virtuale di un processo. Il sistema crea un oggetto di mapping di file (noto anche come oggetto sezione) per mantenere questa associazione. Una visualizzazione file è la parte dello spazio indirizzi virtuale usato da un processo per accedere al contenuto del file. Il mapping dei file consente al processo di usare sia l'input casuale che l'output (I/O) e l'I/O sequenziale. Consente inoltre al processo di lavorare in modo efficiente con un file di dati di grandi dimensioni, ad esempio un database, senza dover eseguire il mapping dell'intero file in memoria. Più processi possono anche usare file mappati alla memoria per condividere i dati.

Elabora le operazioni di lettura e scrittura nella visualizzazione file usando puntatori, esattamente come avvierebbero con la memoria allocata in modo dinamico. L'uso del mapping dei file migliora l'efficienza perché il file risiede su disco, ma la visualizzazione file risiede in memoria. I processi possono anche modificare la visualizzazione file con la funzione VirtualProtect .

La figura seguente illustra la relazione tra il file su disco, un oggetto di mapping di file e una visualizzazione file.

relazione tra il file su disco, un oggetto di mapping di file e una visualizzazione file.

Il file su disco può essere qualsiasi file di cui si vuole eseguire il mapping in memoria oppure può essere il file di pagina di sistema. L'oggetto di mapping del file può essere costituito da tutta o solo parte del file. È supportato dal file su disco. Ciò significa che quando il sistema scambia le pagine dell'oggetto di mapping file, tutte le modifiche apportate all'oggetto di mapping file vengono scritte nel file. Quando le pagine dell'oggetto di mapping file vengono scambiate nuovamente, vengono ripristinate dal file.

Una visualizzazione file può essere costituita da tutta o solo parte dell'oggetto di mapping dei file. Un processo modifica il file tramite le visualizzazioni file. Un processo può creare più visualizzazioni per un oggetto di mapping di file. Le visualizzazioni file create da ogni processo si trovano nello spazio indirizzi virtuale di tale processo. Quando il processo richiede dati da una parte del file diversa da quella presente nella visualizzazione file corrente, può annullare il mapping della visualizzazione file corrente, quindi creare una nuova visualizzazione file.

Quando più processi usano lo stesso oggetto di mapping di file per creare visualizzazioni per un file locale, i dati sono coerenti. Ovvero, le viste contengono copie identiche del file su disco. Il file non può risiedere in un computer remoto se si desidera condividere la memoria tra più processi.

Per altre informazioni, vedere gli argomenti seguenti: