기어가더라도 제대로
[운영체제-김덕수교수님] 파일 시스템 구현 (5/5) 본문
- Allocation Methods
- File 저장을 위한 디스크 공간 할당 방법
- Free space management
- 디스크의 빈 공간 관리
Allocation Method
Continuous Allocation
- 한 파일을 디스크의 연속된 block 에 저장
- 장점
- 효율적인 file 접근(순차, 직접 접근)
- 문제점
- 새로운 file 을 위한 공간 확보가 어려움
- External fragmentation
- file 공간 크기 결정이 어려움
- 파일이 커져야 하는 경우 고려해야함
Linked Allocation
- File 이 저장된 Block들을 linked list 로 연결
- 비연속 할당 가능
- Directory는 각 file 에 대한 첫 번쨰 block에 대한 포인터를 가짐
- Simple, No external fragmenation
- 단점
- 직접 접근에 비효율적
- 포인터 저장을 위한 공간 필요
- 신뢰성 문제
- 사용자가 포인터를 실수로 건드리는 문제 등
Linked Allocation: variation -> FAT
- File Allocation Table(FAT)
- 각 블럭의 시작부분에 다음 블록의 번호를 기록하는 방법
- MS-DOS, Windows 등에 사용됨
Indexed Allocation
- File 이 저장된 블럭의 정보(Pointer) 를 index block에 모아둠
- 직접 접근에 효율적
- 순차 접근에는 비효율적
- File 당 index block 을 유지
- space overhead
- index block 크기에따라 파일의 최대 크기가 제한됨
- Unix 등에 사용됨
Free Space Management
- Bit vector
- linked list
- grouping
- counting
bit vector
- 시스템 내 모든 블럭들에 대한 사용 여부를 1 bit flag로 표시
- simple and efficient
- bit vector 전체를 메모리에 보관해야함
- 큰 크기의 비트 맵을 저장해야 하므로 대형 시스템에 부적합
linked list
- 빈 블록을 링크드 리스트로 연결
- 비효율적
Grouping
- n 개의 빈 블럭을 그룹으로 묶고, 그룹 단위로 링크드 리스트로 연결
- 연속된 빈 블럭을 쉽게 찾을 수 있음
Counting
- 연속된 빈 블럭들 중 첫 번째 블럭의 주소와 연속된 블럭의 수를 table 로 유지
- Continuous allocation 시스템에 유리한 기법
'CS > 운영체제' 카테고리의 다른 글
[운영체제-김덕수교수님] 파일 보호(4/5) (0) | 2022.08.17 |
---|---|
[운영체제-김덕수교수님] 디렉토리 구조(3/5) - 파일 시스템 (0) | 2022.08.17 |
[운영체제-김덕수교수님] 파일 시스템 (2/5) (0) | 2022.08.17 |
[운영체제-김덕수교수님] 디스크 시스템 (1/5) (0) | 2022.08.17 |
[운영체제-김덕수 교수님] 가상 메모리 관리(6/6) - 다른 고려사항 (0) | 2022.08.17 |
Comments