티스토리 뷰

SoftWare/OS

OS - 11. File-System implementation

White Whale 2016. 6. 10. 19:31
728x90

1. File-System Structure

  

1. logical file system : Meta date 정보를 관리한다. Meta data는 실제 데이터(내용)을 제외한 모든 파일 시스템 구조를 포함한다. Directory 구조를 관리하며 FCB를 가지고 있다.

2. file-organiztion module : 물리 블럭과 논리 블럭을 알고 있어서 논리 주소를 물리주소로 변경해 준다.

3. basic file system : 적절한 장치드라이버에게 물리 블록(드라이버 1의 실린다 73, 트랙 2, 섹터 10)을 읽고 쓰도록 명령 내린다.

4. I/O control : Device driver와 interrupt handler로 이루어 져있으며 고수준 언어의 명령을 디바이스에 맞는 저수준 언어로 변경해 준다.



2. Virtual File System

  

운영체제는 동시에 여러 타입의 파일 시스템을 지원해야 한다. 기존 파일 시스템 밑에 가상파일 시스템을 두어 다양한 파일 시스템을 다룬다. 이 방식은 물리적으로 연결된 파일 시스템 뿐만 아니라 네트워크로 연결된 파일 시스템도 하나의 파일 시스템으로 볼 수 있도록 도와준다.



3. Directory Implementation

  

하드에서는 파일과 디렉토리를 대부분 선형 구조로 관리를 한다. Linked List를 이용하여 포인터로 파일을 연결하며 검색을 위해 Hash table이나 B+ 트리와 같은 복합 구조로 관리한다.



4. Allocation Methods

  

1. Contiguous Allocation : 외부 간편화가 일어날 수 있으며 압축에 많은 비용이 든다.


2. Linked Allocation : 디스크를 구성하는 블락 단위로 연결리스트 구조로 연결한다. 디렉토리는 해당 파일 이름알며 시작 블락과, 끝 블락을 지시하고 있다. 중간에 접근하기 위해서는 결국 순차적으로 찾아야한다. 또한 에러 블락이 있을 경우 연결리스트가 끈겨 버린다.


3. Indexed Allocation : index block을 두어 해당 블락안에 파일을 구성하는 블락들의 포인터를 담는다. 그리고 디렉토리는 파일 이름과 index block의 주소를 가지고 있다. 이 방법은 순차접근과 무작위 접근 모두 쉽지만 index block이 사라지면 파일을 모두 잃어 버린다. 또한 파일이 작을 경우 index block에 대해 낭비되는 부분이 발생한다.


index block은 가능한 작은 것이 좋다. 그러면 큰 데이터를 색인할때는 어떻게 하는가?

  • linked scheme : index block에 index block을 가르킬 수 있는 포인터를 둔다.

  • two-level index : 2단계를 하여 루트 index block은 index block만 가르킨다. 이 방법은 내부 단편화가 너무 심하다. 

  • combine scheme : 루트 index block의 뒤의 3개만 또 다른 index block을 가르킨다. 3개는 단계별로 커진다.



5. Free-Space Management

  

1. Bit map : n개의 블락이 있으면 n개의 배열을 만들어 0과 1 저장

2. Linked list : 비어있는 블락끼리 연결시킨다. 연속된 공간을 찾기 힘들고 느리다.
3. Grouping : 하나의 블락이 루트 블락이 되어 다른 빈 블락을 가르키고 있다. 또한 이러한 루트 블락들이 포인터로 연결되어 있다.
4. Counting : 첫 번째 빈 블락에 연속된 빈 블락의 개수를 저장해 둔다. 


'SoftWare > OS' 카테고리의 다른 글

OS - 1. Introduction 연습문제  (4) 2016.07.05
OS - 12. Mass-Storage System  (2) 2016.06.11
OS - 10. File-System  (0) 2016.06.07
OS - 9. Virtual Memory(2)  (0) 2016.06.03
OS - 9. Virtual Memory(1)  (1) 2016.06.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함