728x90
MMF(Memory Mapped File)
- 메모리를 파일에 매핑시킨다는 개념
- 파일의 일부 메모리 공간을 가상 메모리에 연결시키면 프로세스의 가상 메모리에 데이터를 쓰면 매핑된 파일의 공간에 데이터를 써줌
- 프로세스는 메모리에 데이터를 Write, Read하기 때문에 최신의 데이터는 메모리가 가지고 있음
- 파일에는 매번 데이터를 반영해줄 필요 없이 주기적으로나 어떤 상황이 있을때 반영해주면 됨
- MMF 구현 과정
-> 파일 생성
-> 파일 연결 오브젝트 생성 : 파일 정보를 담음
-> 가상 메모리에 파일 연결 : 포인터가 반환되기때문에 배열 접근하듯이 접근하면 됨
HANDLE CreateFileA(
LPCSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
HANDLE CreateFileMappingA(
HANDLE hFile,
LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
DWORD flProtect,
DWORD dwMaximumSizeHigh,
DWORD dwMaximumSizeLow,
LPCSTR lpName
);
LPVOID MapViewOfFile(
HANDLE hFileMappingObject,
DWORD dwDesiredAccess,
DWORD dwFileOffsetHigh,
DWORD dwFileOffsetLow,
SIZE_T dwNumberOfBytesToMap
);
728x90
'Programming > System Programming' 카테고리의 다른 글
윈도우즈 시스템 프로그래밍 정리(完) (0) | 2020.08.23 |
---|---|
윈도우즈 시스템 프로그래밍 - 21. Dynamic Linking Library (0) | 2020.08.23 |
윈도우즈 시스템 프로그래밍 - 20. 메모리 관리(2) (0) | 2020.08.23 |
윈도우즈 시스템 프로그래밍 - 20. 메모리 관리(1) (0) | 2020.08.23 |
윈도우즈 시스템 프로그래밍 - 19. 비동기 I/O와 APC(4) (0) | 2020.08.22 |