ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Consistency other approaches / Ext2,3,4
    운영체제 2024. 6. 15. 20:05

    fsck: a lazy approach

    저널링: an active approach .. 문제가 발생하지 않아도 미리미리 대비

     

    Soft update

    항상 순서, 룰을 지키면서 업데이트

    너무 복잡해서 보통 그냥 저널링을 씀

     

    CoW (Copy on Write)

    파일이 트리 형태로 관리될 때, 바로 수정하는게 아니라 복사한 다음 복사한 위치에 수정함

    그다음 상위 파일도 마찬가지로 복사해서 수정된 노드를 가리키도록 하고, 최종적으론 루트까지 카피해서 바꿈

     

    Optimistic Crash Consistency 

    이름처럼 정상적으로 작동할 것이라 가정하고 최대한 많은 작업을 동시에 수행시켜 성능 극대화

    대신 체크섬을 이용하여 데이터가 손상되었거나 불일치가 발생했는지 감지 가능

     

     

    Ext2

    기본 아이디어: 패스트 파일 시스템을 리눅스

    성능 향상을 위한 기법

    1) 실린더 그룹

    2) pre-allocation: 미리 인접 블록을 할당해놔서 나중에 appending 되어도 성능 문제 없도록 함

    3) Read-ahead during sequential reads: 연속적으로 읽게 될 가능성이 높은 데이터 블록을 미리 읽어옴

     

    Ext3

    Ext2 + 저널링

     

    Ext4

    큰 파일 지원에 관심

    기존 inode는 4테라 정도만 지원

    Extent-based mapping

    - Extent: 가변 사이즈의 블록 사이즈를 지원함

    - 트리 구조, 스플릿 / 머지 연산 필요

     

     

    FAT (File Allocation Table)

    inode의 단점은 파일마다 필요하다는 거

    스토리지 크기가 작으면 굳이 파일마다 inode를 만들어야 하나가 이슈

    inode, 비트맵 역할을 하는 하나의 테이블을 만들자

    1) Used for used/free

    2) data location

     

    FAT 테이블에서 0x00은 프리 상태

    Boot
    Sector
    FAT FAT Root hello.c hello.c a.out a.out a.out a.out
    0 1 2 3 4 5 6 7 8 9

    hello.c -> 7KB

    a.out -> 15KB

     

    여기서 FAT Table은 다음과 같이 구성된다.

    Res Res Res 0xFF 0x05 0xFF 0x07 0x08
    0x09 0x0FF 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

    0xFF(-1)가 엔드 오브 파일

    예시)

    a.out을 읽고 싶다

    루트에서 FAT의 6번을 가리킴

    FAT에서 6번은 7번을 가리킴 --- -0xFF까지 계속 따라가면

    6 - 7- 8 - 9 -1이 됨

    => 6, 7, 8, 9번을 읽으면 a.out

     

     

    LFS (Log-Structured FIle System)

    데이터 업데이트 시 원래 장소 말고 아예 다른 장소에 씀 (Out-of-place update)

    inode에 새로운 매핑 필요

    invalidated된 데이터에 가비지 컬렉션 필요

    '운영체제' 카테고리의 다른 글

    메모리 가상화 - introduction  (0) 2024.06.15
    플래시 메모리과 파일 시스템  (0) 2024.06.15
    Consistency / Journaling  (0) 2024.06.15
    Consistency / FSCK (File System Checker)  (0) 2024.06.15
    Fast File System  (0) 2024.05.28
Designed by Tistory.