티스토리 뷰
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로 별도의 Offset과 Permission을 가진 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한 번호를 임의로 할당.
[ 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 Block과 Indirect 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시 다시 볼 수 있음. (삭제되지 않음)
'컴퓨터 공학 이론 > 오퍼레이팅 시스템' 카테고리의 다른 글
[오퍼레이팅 시스템] Virtual Memory Management (0) | 2023.06.06 |
---|---|
[오퍼레이팅 시스템] Memory Management Strategies (0) | 2023.06.06 |
[오퍼레이팅 시스템] Deadlock (0) | 2023.06.05 |
[오퍼레이팅 시스템] Scheduling (0) | 2023.04.18 |
[오퍼레이팅 시스템] Thread (0) | 2023.04.18 |