210302 개발일지(85일차) - 운영체제(OS) 프로젝트 #4-0(2) 파일시스템에서 디스크 공간 할당(File Allocation in Disk) 방법들

고재개발·2021년 3월 9일
0

OS Project

목록 보기
25/28

디스크에 파일을 할당(저장)하는 방법에 대해 알아보자.
3가지 방법을 알아볼 것이고, 우리는 이 중 한 방법을 응용한 FAT 시스템을 활용하여 pintos과제를 진행할 것이다.

아래 디스크 그림에서 작은 네모 한 칸이 섹터(pintos 과제에서는 512byte)로 생각하면 된다. 작은 파일은 한 섹터보다 작을 수도 있겠지만, 최소 1섹터 이상 공간을 할당받게 되는 것이다. 반면, 큰 파일은 여러 섹터를 차지하게 된다.

1. 연속 할당 방법(Contiguous Allocation)

파일을 디스크 상에 연속적으로 할당하는 방법이다.

장점 :

  1. Fast I/O가 가능하다.(한 번의 seek/rotation으로 많은 bytes을 I/O할 수 있다.)
  2. 원하는 섹터에 직접 접근이 가능하다.(ex : tr 파일의 2번째 섹터에 접근해라 -> 15번 섹터에 바로 접근 가능)

단점 :

  1. 외부 단편화
  2. 파일 크기는 유동적으로 변할텐데, File Growth가 어렵다.

2. 연결 할당 방법(Linked Allocation)

빈 공간을 찾아서 다음 섹터를 연결하며, 디스크 공간을 할당한다. 이 방법을 변형한 FAT를 이용하여 이번 과제를 진행할 것이다.

장점 :

  1. 연속 할당의 단점인 외부 단편화를 없앨 수 있다.
  2. File Growth가 가능하다.

단점 :

  1. 원하는 섹터에 직접 접근이 불가능하다.
  2. Reliability(신뢰성 문제) : 중간 섹터에 bad sector가 발생하면, 연결이 끊겨서 제대로 제대로 된 파일 접근이 불가능하다.(파일 불량)

3. 색인 할당(Indexed Allocation)

아래 그림처럼, 일정 섹터(아래 그림에서는 19번ㄴ)에 섹터 시작~끝 정보를 담아두어 index화 해둔다. 이는, 연속할당의 단점와 연결할당의 단점을 어느정도 보완해준다.

장점 :

  1. 외부 단편화도 발생하지 않고,
  2. 원하는 섹터에 직접 접근도 가능하다.

단점 :

  1. 아무리 작은 파일이라도 위의 그림에서 19번 섹터와 같은 섹터가 반드시 필요하다.

위에도 말했듯 project4에서는 연결 할당의 변형인 FAT를 활용하여 파일시스템을 구현할 것이다.
profile
고재개발

0개의 댓글