컴퓨터 공학/혼자 공부하는 컴퓨터 구조 +운영체제

34.파일 시스템

공부를하자 2023. 8. 14. 16:25

1.파일시스템

  1)정의

   -파일과 디렉터리를 보조기억장치에 저장하고 접근할 있게 하는 운영체제 내부 프로그램.

2.파티셔닝과 포매팅

  1)파티셔닝(partitioning): 저장장치의 논리적인 영역을 구획하는 작업을 의미하고 나누어진 각각의 영역을  

    파티션(partition)이라고 한다.

  2)포매팅(formatting):파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지 결정하고,

    새로운 데이터를 준비를 하는 작업.

  -파일시스템은 여러종류가 있고 파티션마다 다른 파일시스템을 적용할 있다.

3.파일할당 방법

  1)개요

  -운영체제는 파일과 디렉터리를 블록 단위로 읽고 쓴다. 이것은 하나의 파일이 보조기억장치에 저장될

  최소단위가 블록 단위다.

 -하드디스크의 가장 작은 저장단위는 섹터이지만 파일시스템이 모든 섹터를 관라하기에는 너무 많고 크기가

  작다.

 -블록안에는 블록의 위치를 식별하는 주소가 적혀있다.

 

  -파일을 할당하는 방법에로 연속할당과 불연속한당이 있고 불연속 할당에서 연결할당과 색인 할당이 있다.

  2)연속할당(contiguous allocation)

   -보조기억장치 연속적인 블록에 파일을 할당하는 방식.

   -연속으로 할당된 파일에 접근하기 위해서는 번째 블록 주소와 블록단위의 길이만 알면 된다.

 

   -만약 파일이름 'a' 찾는다면 첫번째 블록주소(2 주소) 찾고 주소에서 길이가 3 2번부터 순차적으

    세어 개수가 3 되는 (4번주소)까지가 파일 'a'이다.

   -연속 할당 방식은 구현이 단순하다는 장점이 있다.

    하지만 파일을 삭제함에 있어 외부 단편화를 야기할 있다는 단점이 있다.

 

 

  3)연결할당(linked allocation)

   - 블록 일부에 다음 블록의 주소를 저장하여 다음 블록을 가리키도록 하는 형태의 할당 방식.

  -불연속 할당이므로 파일이 흩어져 있어도 무방하다.

   -파일 'a' 찾는다고 가정했을시 첫번째 블록 주소(10)에서 시작하여 첫번째 주소에 저장된

    블록의 주소로 파일의 길이만큼 이동하는 형식이다.

  -연속할당의 외부 단편화를 해결할 있지만 다른 단점이 존재한다.

  -파일에 임의로 접근하려고 무조건 첫번째 파일부터 순차적으로 읽어야 하므로 속도가 느리다.

  -블록안에 파일 데이터와 다음 블록 주소가 포함되어 있기 때문에 하드웨어 고장이나 오류 발생 해당

   블록 이후 블록을 접근할 없다. 

  4)색인할당(indexed allocation)

   -파일의 모든 블록의 주소를  색인블록(index block)이라는 별도의 블록을 두어 관리하는 방식.

 

    -연결할당보다 임의 접근이 쉽다.

  -파일 'a' 접근 하고 싶다면 색인블록(4 블록) 안의 주소(7,11,13 블록) 주소를 찾아가면 된다.

4.파일 시스템 종류

 1)FAT(File Allocation Table)

  - 블록에 포함된 다음 블록의 주소들을 한데 모아 테이블 형태로 만들어 연결 할당의 단점을 보완한

   파일 시스템이다.

  - 테이블을 파일 할당 테이블(FAT:File Allocation Table)라고 부른다.

  -USB 메모리 SD카드에 많이 사용되는 파일시스템이다.

  2)유닉스

 -i-node라는 색인 블록을 가지고 있는 색인할당 기반 파일 시스템

 -i-node에는 파일 속성과 다섯개의 블록 주소가 담긴다.

 -유닉스 파일 시스템에는 파일마다 i-node 존재하고 고유의 번호가 부여되어 있다.

 -i-node 특정 파티션 내에 모여 있다. i-node영역에 i-node들이 있고,데이터 영역에 디렉터리와 파일들이

 존재한다.

 

-i-node 크기는 유한하며 기본적으로 15개의 블록의 주소를 저장하기에  이상의 블록의 주소는

  전부 가라킬 없다.

-파일 데이터가 저장된 블록을 직접 블록(direct block)이라 하며  12번쨰 블록 내에서 직접블록만으로 데이터

  모두 가리킬 있다면 추가적인 작업은 필요하지 않는다.

-그렇지 않다면 13번째 블록부터는 파일 데이터를 저장한 블록의 주소를 담아 보관한 단일 간접 블록(single

 indirect block) 저장한다.

-이것으로도 모자르다면 이중 간접 블록(double indirect block)라는 단일 간접 블록의 주소를 저장하는

 블록을 사용하여 저장한다.

-이렇게 주소의 주소를 저장하는 방식으로  저장의 파일을 늘릴 있다.

 삼중 간접 블록은 이중 간접 블록의 주소를 저장한다.