File System Implement
JeongSeulho
2023년 03월 07일
준비중...
클립보드로 복사
📌Allocation Methods
📖Continuous allocation
- 한 File을 디스크의 연속된 block에 저장
- 효율적인 file 접근 (순차, 직접 접근)
- 새로운 file을 위한 공간 확보가 어려움
- External fragmentation
- 파일이 용량이 커지도록 변경된 경우를 고려해야해서 차지할 공간 크기 결정이 어려움
📖Discontinuous allocation
✏️Linked allocation
- File이 저장된 block들을 linked list로 연결
- Directory는 각 file에 대한 첫 번째 block에 대한 포인터를 가짐
- Simple, No external fragmentation
- 직접 접근에 비효율적
- 포인터 저장을 위한 공간 필요
✏️File Allocation Table (FAT)
- linked allocation 실제 사용 법
- 각 block의 시작 부분에 다음 블록의 번호를 기록하는 방법
✏️Indexed Allocation
- File이 저장된 block의 정보(pointer)를 Index block에 모아 둠
- 직접 접근에 효율적, 순차 접근에는 비효율적
- File 당 Index block을 유지
- Index block 크기에 따라 파일의 최대 크기가 제한 됨
📌Free Space Management(빈 공간 관리)
📖Bit vector
- 시스템 내 모든 block들에 대한 사용 여부를 1 bit flag로 표시
- Bit vector 전체를 메모리에 보관 해야 함, 대형 시스템에서 부적합
📖Linked list
- 빈 block을 linked list로 연결
📖Grouping
- n개의 빈 block을 그룹으로 묶고, 그룹 단위로 linked list로 연결
- 연속된 빈 block을 쉽게 찾을 수 있음
📖Counting
- 연속된 빈 block들 중 첫 번째 block의 주소와 연속된 block의 수를 table로 유지
- Continuous allocation 시스템에 유리한 기법