티스토리 뷰

File Systems

 

[ Information on Disk ]

  · Boot Control Block : OS를 부팅하기 시스템 정보를 포함. 부팅 시에만 사용.

  · Volume Control Block (Superblock) : File System에 대한 정보를 포함. 보통 복제하여 저장.

  · Directory Structure : File의 이름과 # i-node의 매핑 정보를 가짐. 전체 File System을 관리하는 핵심 기능.

  · Per-file FCB(i-node) : 파일에 대한 많은 상세 정보가 들어 있음.

 

[ Information in Memory ]

  · In-memory Mount Table : Mount된 File System을 관리하기 위한 Table.

  · In-memory Directory Structure : 최근에 접근한 Directory를 Memory에 올려 접근성 확장.

  · System-wide Open-file Table : Open-file의 정보와 FCB의 복사본을 저장한 Table.

                                                                 → 하나의 File이 여러 개의 Processes에서 열렸을 때 공통 정보를 저장.

  · Per-process Open-file Table : Process마다 존재하는 FCB로 별도의 OffsetPermission을 가진 Table.

                                                               → 하나의 File이 여러 개의 Processes에서 열렸을 때 개별 정보를 저장.

    → System-wide Open-file Table을 확인하여 File이 이미 열려있으면 Per-process Open-file Table에 별도로 추가.

    → 열려있지 않은 상태면 Directory Structure를 확인해 생성.

 

[ Virtual File System ]

  : 이질적인 두 File System이 서로 연결되게 해주는 역할.

  : VFS가 해당하는 File System의 API로 변경하여 호출.

  : Vnode를 이용하여 i-node의 충돌을 해결. → Unique한 번호를 임의로 할당.

Virtual File System의 역할

 

[ Block Allocation Methods ]

  · Continuous Allocation : 하나의 File을 구성하는 Block을 연속으로 저장.

                                                     → External Fragmentation 이슈 존재.

                                                     Extent-based Allocation : Contiguous하게 할당하다가 끊기게 되면 다음 위치를 기록.

  · Linked Allocation : Datablock의 마지막에 다음 Block의 위치를 저장.

                                           → 특정 위치에 Direct Access 불가. Bad Block 발생 시 이후의 Block을 알 수 없는 문제.

                                           ※ FAT File System에서는 Linked Allocation을 변형하여 다음 Block의 위치를 Table에 저장.

                                               ( 다음 Block의 정보가 0인 경우 Empty Block이며, Overwrite를 하지 않으면 정보가 남아있다. )

  · Indexed Allocation : 할당을 진행하며 각 Block의 Number를 모두 기록하여 Table로 관리.

                                             → Index Block의 크기가 주요 이슈.

                                                 ◆ Solution

                                                      1) Multi-level Indexing : Paging의 Hierarchical Paging과 유사한 구조로, 2~3번 look-up하도록 구성.

                                                      2) Combined Scheme 

                                                         : i-node에 존재하며 Direct BlockIndirect Block으로 분리

                                                         : 48kbytes 이내 크기의 작은 File은 Table에 저장하지 않고 Direct Mapping을 하여 Table의 크기를 줄임.

                                                         : Linux OS에서 사용하는 방식.

  

[ Log Structured File System ]

  : SSD와 같은 Flash Memory 기반의 기기에서 사용하는 File System.

  : 연결된 Flash Memory에 순서대로 Log를 사용하여 Wear-Leveling이 균등하게 이뤄지도록 하는 특징이 있음.

     ※ Wear-Leveling : Flash Memory는 수명이 사용 횟수에 따라 줄어드므로, 연결된 Flash Memory의 수명이 균등하게 줄어들도록 함.

[ NFS(Network File System) ]

  : 다른 사람이 속한 Network로 접속해 Read나 Write를 할 수 있도록 해주는 File System.

  : Server는 특정 Directory를 사용할 수 있도록 Export 처리.

  : Client는 해당 Directory를 사용하기 위해 Mount.

     ※ Mount한 Directory에 원래 File이 존재하였다면, Mount한 동안에는 볼 수 없고 Un-mount시 다시 볼 수 있음. (삭제되지 않음)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함