Udostępnij za pośrednictwem


Mapowanie plików

mapowanie plików jest skojarzeniem zawartości pliku z częścią wirtualnej przestrzeni adresowej procesu. System tworzy obiekt mapowania plików (znany również jako obiekt sekcji ), aby zachować to skojarzenie. Widok pliku to część wirtualnej przestrzeni adresowej, którą proces wykorzystuje do dostępu do zawartości pliku. Mapowanie plików umożliwia procesowi używanie zarówno losowych danych wejściowych, jak i wyjściowych (we/wy) oraz sekwencyjnych operacji we/wy. Umożliwia to również wydajną pracę z dużym plikiem danych, takim jak baza danych, bez konieczności mapowania całego pliku na pamięć. Wiele procesów może również używać plików mapowanych w pamięci do udostępniania danych.

Procesy odczytują z widoku pliku i zapisują do niego, używając wskaźników, tak jak w przypadku dynamicznego przydzielania pamięci. Użycie mapowania plików zwiększa wydajność, ponieważ plik znajduje się na dysku, ale widok pliku znajduje się w pamięci. Procesy mogą również manipulować widokiem plików za pomocą funkcji VirtualProtect.

Poniższa ilustracja przedstawia relację między plikiem na dysku, obiektem mapowania plików i widokiem pliku.

relację między plikiem na dysku, obiektem mapowania plików i widokiem pliku.

Plik na dysku może być dowolnym plikiem, który chcesz mapować na pamięć, lub może to być plik strony systemowej. Obiekt mapowania plików może składać się z wszystkich lub tylko części pliku. Jest on wspierany przez plik na dysku. Oznacza to, że gdy system zamienia strony obiektu mapowania plików, wszelkie zmiany wprowadzone w obiekcie mapowania plików są zapisywane w pliku. Kiedy strony obiektu mapowania pliku są przeładowywane z powrotem, są przywracane z pliku.

Widok pliku może składać się z wszystkich lub tylko części obiektu mapowania plików. Proces manipuluje plikiem za pośrednictwem widoków plików. Proces może utworzyć wiele widoków dla obiektu mapowania plików. Widoki plików utworzone przez każdy proces znajdują się w wirtualnej przestrzeni adresowej tego procesu. Gdy proces wymaga danych z części pliku innej niż bieżący widok pliku, może on cofnąć mapowanie bieżącego widoku pliku, a następnie utworzyć nowy widok pliku.

Gdy wiele procesów używa tego samego obiektu mapowania plików do tworzenia widoków dla pliku lokalnego, dane są spójne. Oznacza to, że widoki zawierają identyczne kopie pliku na dysku. Plik nie może znajdować się na komputerze zdalnym, jeśli chcesz współużytkować pamięć między wieloma procesami.

Aby uzyskać więcej informacji, zobacz następujące tematy: