메모리 매핑 된 파일, 즉 메모리에 투명하게 매핑 된 디스크의 실제 파일을 사용할 수 있음을 알고 있습니다. 내가 이해할 수있는 한 (아직은 사용하지 않았다.) 매핑은 즉각적으로 이루어지며, OS가 백그라운드에서 전체 파일을 "캐싱"하는 동안 파일은 부분적으로 첫 번째 메모리 액세스에서 읽혀집니다.메모리 매핑 된 메모리가 가능합니까?
지금 :이 개념을 다소 남용하고 다른 메모리 블록을 메모리 맵핑 할 수 있습니까? OS가 이러한 간접 지정을 제공한다고 가정하면 메모리에서 메모리로 매핑을 반환하는 종류 인 compressed_malloc()
을 만들 수 있습니다. 호출자에게 반환 된 메모리는 메모리에서 투명하게 압축되고 결국 메모리에 유지되는 메모리 매핑 된 범위가 단순합니다. 따라서 큰 버퍼의 경우 나머지 블록이 압축 된 상태에서 일부만이 온 - 더 - 플라이 (액세스시)로 압축 해제 될 수 있습니다.
그 개념은 기술적으로 현재 순간에 가능합니까 - 이미 실현 된 경우 (소프트웨어에서) - 무엇을 볼 것입니까?
업데이트 1 : 나는 OS 커널 자체를 수정하지 않고 기술적으로 달성 할 수있는 것을 찾고 있거나 가상화 플랫폼을 필요로합니다.
업데이트 2 : 내 자신의 사용자 공간 코드에서 압축 및 관련 논리를 구현할 수있는 무언가가 필요합니다. 난 단지 운영 체제의 기능을 사용하여 메모리 매핑을 만들 것입니다.
많은 최신 파일 시스템은 투명 압축 (NTFS, ZFS 등)을 지원합니다. 그것이 메모리 맵핑과 어떻게 상호 작용하는지, 나는 확실하지 않지만, 그것이 당신이 찾고있는 것일 수있다. – zindorsky
아니요, 파일을 만들고 싶지 않습니다. 어쨌든. 메모리 전체 메모리 매핑 된 메모리 (따라서 이름) 유지하고 사용 후 릴리스 싶습니다. – Stefan