운영체제(OS)

Operating Systems 14. File System Implementation

아뵹젼 2021. 12. 5.

File-System Structure

- 논리적인 저장단위이다.

- 파일시스템은 보조 저장장치(디스크) 에 위치한다.

- 파일시스템은 디스크에 대한 효율적이고 편리한 접근을 제공한다.

- File control block (Linux 의 inode) : 파일에 대한 속성들을 저장하고 있는 저장 구조이다.

- Device driver : 물리적인 장치를 통제한다.

 

 

File System Implementation

- 부트 제어 블록 : 시스템이 운영체제를 그 파티션으로부터 부트 시키는데 필요한 정보를 저장한다.

- 볼륨 제어 블록 : 볼륨(파티션) 의 블록 수, 블록의 크기, 가용 블록의 수와 포인터와 같은 파티션 정보를 저장한다.

  • UFS 는 슈퍼 블록

- 디렉터리 구조는 파일을 조직화 하는데 사용한다. (UFS 에서는 파일 이름 및 inode 저장)

- 파일별 FCB 는 자세한 파일 정보를 저장한다. (고유한 식별 번호를 가지고 있음)

- inode 에는 권한, 크기, 날짜 정보등이 있다.

 

 

File Control Block (FCB)

= inode

 

 

Allocation Method - Contiguous

- 연속할당

- 간단하다. (디렉토리는 시작위치와 크기만 필요로 함)

- 파일의 접근이 쉽다 (파일의 블록 i 의 위치 = 파일의 start disk 블록번호 + i)

- 외부 단편화로 인한 저장공간의 낭비가 생길 수 있다. -> compaction 으로 해결가능

 

 

Allocation Methods - Linked

- 각 파일은 디스크 블록들의 linked list 로 구성된다.

- 블록들이 디스크에 분산해서 위치해 있을 수 있다.

 

 

Linked Allocation 의 변형 - FAT

- File Allocation Table

- 디스크 블록마다 한 개의 항목을 가지고 다음 디스크 블록을 가리킨다.

- 디렉터리 항목은 파일의 첫 번째 블록 번호를 가리킨다.

- 임의 접근 시간을 개선할 수 있다.

 

 

Allocation Methods - Indexed

- 디스크 블록의 pointer 을 저장하는 인덱스 블록을 사용한다.

- random access 가 가능하고, 외부 단편화가 발생하지 않는다.

 - 그러나 index block 이 필요하기 때문에 오버헤드가 발생한다.

- 파일이 커질시 index 공간도 매우 커지게 된다. -> 여러 level 의 index block 을 사용함으로써 해결 가능

 

 

Allocation Methods - Indexed

 

 

Free-Space Management

- 파일 시스템은 free-space list 를 bit vector 나 bit map 으로 구현하여 관리한다.

- 할당 가능한 block 개수 ->

(number of bits per word) *(number of 0-value words) + offset of first 1 bit

 

예)

 

Linked Free Space List on Disk

 

댓글