개요


항목

설명

내용 및 특징

Memory mapped File File I/O Virtual Memory 처리 기반에서 수행할 수 있게 해준다.


Memory API를 이용하여 File I/O Api를 대신할 수 있으므로 보다 쉬운 API 사용이 가능.

장점

File Buffer 를 거치지 않고 Memory에서 I/O Direct access 하고, 4K 단위의 Memory page

이용하므로 I/O 성능을 개선


여러 프로세스끼리 공유파일이 가능.

단점

32bit 시스템에서 4G 이상의 파일은 수용할 수 없음.

처리해야 할 에러 유형이 상대적으로 많음.


주요 특징

Memory mapped filefile object , string object 둘 다를 지원하는 다양한 api 를 가지고 있다. Close(),flush(),read(),readline(),seek(),tell(), write() 와 같은 file api slicing 이나 find와 같은 string api 도 지원함.

Mmap.mmap() 함수로 반환된 object 에 대해서 리스트연산, slicing 등 기존 문자열 처리에 사용되는 api 를 이용하여 다양하게 가공이 가능하다.


API 설명


UnixWindow 간 함수 인자값에 차이가 있으므로 주의가 필요하다. 
class mmap.mmap(fileno, length[, flags[, prot[, access[, offset]]]])  로 호출된다.
Filenoopen(파일명) 으로 반환된 File descriptor ,
length 는 메모리로 매핑할 파일의 크기, 0 으로 설정 시 파일 전체를 메모리로 매핑
Flags 는 메모리매핑의 공유 특성을 나타냄. MAP_SHARED 가 디폴트이며 이 경우 다른 프로세스가 해당 파일 매핑을 변경할 시 다른 프로세스도 이를 공유할 수 있다. MAP_PRIVATE 는 프로세스별로 별도의 COPY_ON_WRITE 공간을 가지므로 개별 프로세스의 파일 매핑 변경사항이 공유되지 않는다.
Access  ACCESS_READ, ACCESS_WRITE, or ACCESS_COPY 로 읽기, 쓰기 , 복사용도를 나타냄.  ACCESS_COPY 의 경우는 변경사항을 메모리에만 적용하고 파일에는 적용하지 않는다.
Prot 는 메모리 protection 을 나타내며, PROT_READ and PROT_WRITE 가 사용됨.  디폴트는 PROT_READ | PROT_WRITE 이며 해당 메모로기 read 또는 write 로 사용 될 수 있음을 의미함.



+ Recent posts