동캄의 코딩도장
운영체제 [파일 시스템 구현] 본문
File system implementation
Allocation methods
- File 저장을 위한 디스크 공간 할당 기법
- continuous allocation 와 Discontinuous allocation 기법으로 나뉨
Continuous Allocation
한 파일을 disk의 연속된 block에 할당
장점
- 효율적인 file 접근 (순차, 직접 접근)
문제점
- 새로운 file을 위한 공간 확보가 어려움
- extenal fragmentation
- File공간 크기의 결정이 어려움
(파일의 크기가 커지는 경우를 고려해야 함)
Discontinuous allocation
Linked allocation
-File이 저장된 block을 linked list로 연결
-Directory는 각 파일에 대한 첫 번째 block의 포인터를 가짐
-Simple, No fragmentation
- ex) File Allcoation table
단점
- 직접 접근에 비효율적
- 포인터 저장을 위한 공간 필요
- 신뢰성 문제 (if 한 block이 오류 발생)
Indexed Allocation
- File이 저장된 block의 정보(pointer)를 index block에 모아 둠
- 직접 접근에 효율적, 순차 접근에는 비효율적
- Unix등에 사용 됨
File당 index block을 유지
- space overhead
- index block 크기에 따라 파일의 최대 크기가 제한 됨
Free space management
- 디스크의 빈 공간 관리
Bit vector
- 시스템 내 모든 block들에 대한 사용 여부를 1 bit flag로 표시
- simple and efficient
- Bit vector 전체를 메모리에 보관 해야 함 --> 대형 시스템에 부적합
Linked List
- 빈 block을 linked list로 연결
- 비효율적
Grouping
- n개의 빈 block을 그룹으로 묶고, 그룹 단위로 linked list로 연결
- 연속된 빈 block을 쉽게 찾을 수 있음
Counting
- 연속된 빈 block들 중 첫 번째 block의 주소와 연속된 block의 수를 table로 유지
- Continuous allocation 시스템에 유리한 기법
'CS > 운영체제' 카테고리의 다른 글
운영체제 [디스크 스케줄링] (0) | 2022.01.21 |
---|---|
운영체제 [I/O system] (0) | 2022.01.21 |
운영체제 [파일 보호] (0) | 2022.01.20 |
운영체제 [디렉토리 구조] (0) | 2022.01.20 |
운영체제 [파일 시스템] (0) | 2022.01.20 |