동캄의 코딩도장

운영체제 [파일 시스템 구현] 본문

CS/운영체제

운영체제 [파일 시스템 구현]

동 캄 2022. 1. 20. 23:42

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