JFFS 나  YAFFS는 로그 기반 구조의 파일 시스템으로 초기화 과정에서 전체 공간을 스캔하여 파일 시스템 메타데이터를 찾아내야 한다. 따라서 용량 증가에 비례하여 초기화 과정 또한 증가한다.

왜냐 --> 메타데이터가 슈퍼블록과 같은 약속된 위치에 저장되어 있지 않고 메모리 전체에 분포되어 있다. 따라서 마운트 시점에 위치 파악 및 메타데이터를 가지고 구조를만들어야 한다.

기존 플래시 파일 시스템의 초기화 

1. JFFS: JFFS는 메타데이터를 저장할 때 파일 데이터와 합쳐서 페이지 단위로 저장을 한다. 그렇기 때문에 초기화 시에 메타데이터의 정보를 얻어내기 위해서는 모든 페이지의 모든 내용의 읽기 작업이 필요하 다.

2. YAFFS : YAFFS는 JFFS가 모든 페이지에 대해서 데이터를 읽어야 한다는 초기화 알고리즘의 단점을 극복하기 위해 파일의 메타데이터인 아이노드를 한 페이지에 저장하는 방법을 사용하고 있다. YAFFS는여분 공간(spare area)의 ChunkID를 통해 메타데이터와 파일 데이터의 구분을 할 수 있다. 그렇기때문에 JFFS와는 달리 메타데이터가 있는 페이지가아닌 경우에는 여분 공간의 읽기만 하고 지나 갈수 있어 효율적인 초기화가 가능하다
JFFS에 비해 개선되었기는 하지만 전체 여분 공간을 읽어야 하는 이 알고리즘은 플래쉬 메모리 용량이 증가함에 따라 수행시간도 선형적으로 증가할것을 쉽게 예측할 수 있다

YAFFS는 역맵핑 기법을 사용한다.  --> 모든 데이터 페이지의 여분공간에 맵핑되는 아이노드번호를 기록한다. 이는 전체 공간을 읽어야한다.  1G는 수십초 , 따라서 대용량에서는 현실적으로 어렵다.

슈퍼블록을 이용한 플래시 파일시스템 초기화

1. 스냅샷 기법 : 메타 데이터 구조를 언마운트 시점에 플래시 메모리에 미리 예약된 구역에 저장하고 마운트 시점에 해당구역만 읽어들임으로 초기화를 수행   .
빠른 초기화 속도
단점
언마운트가 정확하게 이루어 지지 않았을 경우 초기화에 수행되는 시간이 불 명확하며, 사용량에 따라 언마운트 수행시간의 증가

2. 로그 기반 기법 : 파일에 일어나는 쓰기/지움 연산을 모두 로그로 기록하고 초기화 시점에 로그만을 읽어들여 파일 시스템의 메타데이터를 재구축.
단점
로그를 페이지 단위로 기록하여야 하는 한계로 인해 페이지 용량만큼 로그가 생겨날 때까지 캐싱해둔다. 때문에 언마운트가 제대로 되지 않았을 시에 일관성문제. 또한 플래시 메모리 내에 비어 있는 공간을 검색하여 로그가 기록되지 않은 데이터를 검사해야 하므로(언제?) 플래시 메모리의 용량에 따라 크래쉬 복구 수행시간이 선형적으로 증가할 수 있다.

3. Inode Map Block
아이노드를 특정블록에만 저장하고, 그 저장된 블록의 번호를 기록하여두었다가 마운트시에 번호를 읽고 해당 블록으로 이동하여 초기화 수행.
단점 Inode Map Block 이 최근의 정보를 가지고있지 않은 상황에서는 전체 파티션을 다시 읽어야 하는 상황 발생.

'논문' 카테고리의 다른 글

메모리초기화를 이용한 사용자 데이터 유출 방지에 관한 연구  (0) 2013.04.03
EFI & TC  (0) 2010.11.08
AND