메모리 매핑 파일은 가상 메모리를 사용하여 파일을 프로세스의 주소 공간에 매핑한 후, 프로세스는 memcpy 및 C 언어의 다른 메모리 연산 함수를 사용하여 프로세스 공간의 주소처럼 파일을 조작합니다. 이 방법은 파일이나 대용량 파일을 자주 처리해야 하고, IO 처리 효율이 일반 IO보다 높은 상황에서 잘 활용될 수 있습니다 공유 메모리는 디스크 위의 파일 대신 메모리 조각을 매핑하는 메모리 매핑 파일의 특수한 경우입니다. 공유 메모리의 주체는 프로세스이며, 운영체제는 기본적으로 각 프로세스에 메모리 공간을 할당하고, 각 프로세스는 운영체제가 할당한 메모리 조각만 접근할 수 있으며, 다른 프로세스에는 접근할 수 없습니다. 그리고 때로는 서로 다른 프로세스 간에 같은 메모리에 접근해야 할 때가 있는데, 어떻게 해야 할까요? 운영 체제는 공유 메모리에 대한 접근을 생성하는 API를 제공하며, 메모리를 공유해야 하는 프로세스는 이 정의된 API 집합을 통해 여러 프로세스가 공유하는 메모리에 접근할 수 있으며, 각 프로세스는 하드 디스크의 파일을 접근하듯 이 메모리에 접근합니다. .Net 4.0은 System.IO 을 도입합니다. MemoryMappedFiles 네임스페이스는 Windows 공유 메모리 관련 API를 캡슐화하여 .Net 프로그래머가 메모리 매핑 파일을 더 쉽게 사용할 수 있도록 합니다. C#에서 공유 메모리를 사용하세요. 다음 App1 코드는 사용자가 텍스트 한 줄을 공유 메모리에 입력할 수 있게 해줍니다; App2는 콘솔을 지속적으로 새로고침하고 최신 공유 메모리 콘텐츠를 출력합니다; App3는 App2와 동일한 기능을 구현하지만, 읽기 방식은 다릅니다.
데이터를 읽기 위해 두 가지 방법이 사용되었습니다. 프로세스 간 통신이 이전에는 거의 사용되지 않았기 때문에, 이 방법은 예비적인 이해에 불과합니다. 이 프로그램은 너무 기초적이고, 평가받지 않는 부분도 많습니다. 예를 들어, 공유 메모리를 만드는 방법, 그것을 검색하고 삭제하는 방법 등이 있습니다.
|