본 자료는
1. FAT File System의 단편화
2. 상황에 따른 외부저장장치 구성 방식
순서로 진행합니다.
외부저장장치를 사용할 때 Run Time Mode로 실행하기 위한 파일을 저장하는 경우는 문제가 없지만 프로그램을 사용하며 발생하는 데이터 파일을 빈번하게 읽고 쓰는 경우 문제가 발생합니다. IEC-Series는 FAT File System의 외부저장장치를 사용하는 것을 권장하기 때문에 외부저장장치를 오랜 기간 사용 시 단편화 문제에 매우 취약합니다. 본 자료는 외부저장장치에 빈번하게 사용하는 데이터 파일을 저장하여 사용할 경우 단편화를 방지하는 방안을 설명합니다.
1. FAT File System의 단편화
FAT File System은 비교적 구조가 단순해 빠르게 사용할 수 있지만 단순한 구조로 인해 디스크 공간을 원활하게 활용하지 못하고 FAT File System에 데이터 파일을 저장할 때 클러스트에 순차적으로 입력됩니다. 이로 인해 초기에는 문제없이 저장되지만 데이터 파일이 삭제되거나 파일을 Write하여 빈 공간이 생긴다면 이후부터 추가되는 데이터 파일은 빈 공간부터 채워 넣게되어 하나의 데이터 파일이 조각으로 나뉘어져 저장되는 단편화가 발생합니다. 단편화 현상으로 인해 외부저장장치를 연결하고 인식하기까지의 시간이 늦어지기 때문에 장치 인식 전에 메모리에 접근하게 되어 I/O Exception이 발생할 수 있습니다. FAT File System의 단편화는 장기간 사용 시 반드시 발생하는 현상이기 때문에 단편화 발생에 따른 외부저장장치의 운영 방식을 결정하여 사용하시기 바랍니다.
2. 상황에 따른 외부저장장치 구성 방식
CASE-1 | Flash Disk에 모두 저장 |
---|---|
특징 | Flash Disk는 기록 횟수에 제한이 있기 때문에 Flash Disk에 자주 접근하는 경우 파일 및 O/S가 깨질 수 있어 제품 초기화를 진행해야합니다. 제품 초기화 시 Flash Disk에 저장된 파일이 모두 삭제되므로 사용 환경에 따라 CASE-2 혹은 CASE-3의 방법을 사용하시기 바랍니다. |
구조 | |
권장 운영 환경 | 해당 방법은 권장하지 않지만 사용할 경우 데이터의 쓰기 처리가 최소로 운영되는 환경에서 사용 |
예시 | 프로그램 실행 시 적은 횟수로 설정 정보를 데이터로 저장하는 경우 |
CASE-2 | SD Card에 모두 저장 |
---|---|
특징 | SD Card에 쓰기가 빈번한 데이터 파일을 저장하는 경우 오랜 기간 사용 시 단편화가 발생합니다. 이에 따라 마운트 시간이 지연되고 일정 시간 마운트되지 않았을 때 Shell 화면(바탕 화면)을 강제로 띄우는 문제가 나타납니다. |
구조 | |
권장 운영 환경 | - 사용할 데이터 파일의 수가 많고 쓰기가 빈번하지 않은 경우 - 사용할 데이터 파일의 수가 적지만 쓰기가 빈번한 경우 |
예시 | 프로그램을 실행하며 적은 양의 데이터를 주기적으로 저장하는 환경 |
[권장 방법] | |
---|---|
CASE-3 | Flash Disk와 SD Card에 나눠서 저장 |
특징 | CASE-1과 CASE-2의 문제점을 보완한 방법으로 Flash Disk\Run 경로에 RunTime 모드로 실행할 응용 프로그램을, SD Card에 쓰기가 빈번한 데이터 파일을 저장합니다. SD Card의 단편화로 인한 마운트 속도 지연을 보완하기 위해 반드시 SmartMemory의 EvtExternalStorageAttacked 이벤트를 사용해 마운트 여부를 확인하시기 바랍니다. |
구조 | |
권장 운영 환경 | 사용할 데이터 파일의 수가 많고 쓰기가 빈번한 환경 |
예시 | 프로그램을 실행하며 빠르게 발생하는 데이터를 파일로 저장한 후 파일의 데이터를 읽어 사용하는 경우 |