15. archive

반응형

필요한 기능


1. 파일 저장

- 기본적으로 바이너리

- 디버깅을 위해 text나 xml로도 지원 (디버깅용)

2. 파일 로딩

- 바이너리

- MMF(Memory Mapped File) : 프로세스의 가상 메모리 주소 공간에 파일을 매핑한 뒤 가상 메모리 주소에 직접 접근.

장점

  a. 직접적인 파일 입출력을 수행할 필요가 없다.

     파일 내용이 메모리 주소에 사상되므로 파일을 모두 불러온 것처럼 메모리 주소를 이용하여 연산작업을

     할 수 있어 코드가 깔끔해지고 유지보수가 편해진다.

  b. 버퍼나 파일 처리를 위한 추가적인 자료 구조가 필요없다.

     os에서 페이징 기법을 사용하여 파일의 내용을 관리하며 페이지 크기에 따라 적절히 파일의 내용을

    읽고 쓸 수 있으며 파일 반영(flush)작업도 수행해 준다.

  c. 대용량 자료 처리에 효율적이다.

    파일적근시 지연적재를 이용하므로 필요한 부분만 파일에서 불러와 작업할 수 있으며,

    작업이 끝난 데이터는 자동으로 파일에 반영된다.

  d. 전통적인 파일 입출력 API보다 속도가 빠르다.

     api는 시스템 호출을 사용하기 때문에 작업을 수행하는 동안 유저 모드와 커널 모드를 전환하는 데 필요한

     인터럽트가 오버헤드로 작용하게 된다. 메모리 맵 파일은 4kib단위로 자료를 미리 불러올 때 발생하는 

     페이지 부재 외의 모든 작업이 실제 메모리상에서 이루어지므로 대부분 파일 API를 통한 파일처리보다 빠르다.

단점

   a. 파일크기(EOF 위치) 변경 불가능.

   b. 



추가작업

- 비동기 , 스레드, 언렬4를 참고해보자. 이건 먼 미래에 다시 해야지.


Reference Link

- 메모리맵 파일


- 위키, 메모리 맵 파일

- 위키, 페이징

- File Mapping

- MMF, gpg 내용

-

'작업장 > Mgin 제작' 카테고리의 다른 글

17. svn.  (0) 2017.12.01
16. 32bit, 64bit  (0) 2017.11.29
14. character  (0) 2017.11.27
13. max plugin  (0) 2017.11.20
12. point, vector, ray, box, matrix, transform  (0) 2017.10.15
TAGS.

Comments