본문 바로가기

Dev.Basic/운영체제

[OS] 10-3. File System III

Chapter 10-2. File System III - File System Structure

Unix File System Structure

Unix에서는 Index Allocation 방법을 약간 변형하여 사용하고 있다.


Partition

Boot block

booting에 필요한 정보를 담고 있어서 부팅 시 필요한 부분이기 대문에

어떤 파일 시스템에서라도 가장 먼저 등장하는 block이다.


Super block 

파일 시스템에 관한 총체적인 정보를 담고 있다.

여기서 말하는 총체적인 정보른 어느 부분이 비어있는 블럭이고, 어느 부분이 사용 중인 블럭인지,

또는 어디부터가 Inode block인지, Data block인지에 대한 정보를 말한다.


Inode list

meta data를 따로 저장하는 장소이다.

파일 하나당 Inode가 하나씩 할당이 된다. 그 Inode는 해당 파일의 meata data를 갖고 있다.

하지만 파일의 이름은 디렉토리(directory)가 갖고 있다.

그래서 디렉토리에는 파일 이름과 inode번호를 저장하고 있다.

저장용량이 큰 파일은 single indirect를 통해서 하나의 level을 두어서 저장하는 방식을 취한다.

그보다 더 큰 파일은 double indirect를, 더 큰 파일은 triple indirect 방법을 취한다.


Data block

말 그대로 파일의 실제 내용(데이터)을 보관하는 곳이다.




FAT File System

FAT는 Linked allocation을 변형한 방법이다.


Unix file system structure와 FAT부분이 다르다

FAT

파일의 meta data 의 일부( 위치 정보 )만 저장하고 있다.

나머지 meta data는 디렉토리에서 관리하고 있다.

하지만, 위치 정보 중, 첫번째 위치는 디렉토리에서 관리한다.

구조는 배열 구조이다.

value 값이 index값을 가리키게 되면서 파일을 읽어나가게 된다.

reliability를 개선하기 위한 방법인 것이다.

중간 데이터가 손상되어도 다음 데이터의 위치는 알 수 있기 때문이다.




Free-space Management

sector들이 할당되고 나서 발생하는 hole들을 어떻게 관리할 것인가?


Bit map or bit vector 방법

0이면 비어있는 값이고 1이면 sector가 저장된 공간이라고 한다.

이 방법은 연속된 n개의 free block을 찾는데에는 효과적인 방법이지만

0 or 1 값을 저장할 부가적인 공간을 필요로 한다.


Linked List

모든 free block을 링크로 연결한다.(free list라고 부른다,)

추가적인 공간 낭비는 발생하지 않는다.

하지만 이 방법은 hole들이 연속적으로 위치한 공간을 찾아야하는데 그 부분이 쉽지가 않다.


Grouping

linked list 방법의 변형으로, 첫번째 free block이 n개의 pointer를 갖는다.

하나의 free block에 나머지 free block에 대한 위치 정보를 저장해두는 방식인 것이다.


Counting

프로그램들이 종종 여러 개의 연속적인 block을 할당하고 반납한다는 성질에서 착안한 방법이다.





Chapter 10-3. 끝

이 포스팅은 이화여대 반효경 교수님 강의를 듣고 요약한 내용을 담고 있습니다.



'Dev.Basic > 운영체제' 카테고리의 다른 글

[OS] 11-1. Disk Management & Scheduling I  (0) 2016.06.19
[OS] 10-4. File System IV  (0) 2016.06.18
[OS] 10-2. File System II  (0) 2016.06.16
[OS] 10-1. File System  (2) 2016.06.15
[OS] 9-3. Virtual Memory III  (0) 2016.06.14