본문 바로가기
3-1 학기/File Structures

[파일처리] Ch3 Secondary Storage and System Software

by bona.com 2024. 4. 16.

위의 사진은 위에서 바라본 원반(platter)의 모습이다.

원반은 트랙(track)으로 구성되고, 트랙은 섹터로(sector)로 구성된다.

섹터의 크기는 512byte로 정해지며 가장 작은 단위이다.

 

섹터로 레코드를 구성하는 방법은 두 가지가 있다.

  • 섹터당 하나의 레코드만 저장 (시간 효율성을 위해)
  • 레코드를 섹터에 걸쳐 허용 (스토리지 효율성을 위해)

 

 

이번엔 입체적인 모습의 원반인데, 7개의 실린더(Cylinder)가 있는 것을 확인할 수 있다.

실린더란, 섹터보다 큰 단위로 전체 원반에서 같은 트랙의 부분을 의미한다.

 

다른 용어들도 같이 정리하자면

 

클러스터(Cluster)

  • 일정한 수의 연속된 섹터를 의미한다.
  • 파일에 할당할 수 있는 최소 공간 단위이다.
  • 더 큰 클러스터는 검색하지 않고도 더 많은 섹터를 읽은 수 있는 기능을 보장한다.

익스텐트(Extents)

  • 파일의 일부(또는 전체)로 할당된 하나 이상의 인접 클러스터를 의미한다
  • 전체 파일을 포함하기에 사용 가능한 연속된 공간이 충분하지 않으면 파일은 두 개 이상의 비연속적인 부분으로 나뉜다. (하나 이상의 익스텐트를 추가해야 한다) 

파일에 새 클러스터가 추가되면 파일 관리자는 해당 클러스터를 물리적으로 생성하려고 한다.

(A)의 경우, 연속적으로 할당받을 수 있다. (Extents의 개수는 1개)

(B)의 경우, 분산되게 할당할 수 있다. (Extents의 개수는 3개)

 

 

비용(cost)은 데이터를 읽고 쓸 때 발생한다.

 

위 사진에서 검은색 부분이 읽고자하는 데이터의 위치이다.

이를 위해 바깥 방향으로 밀어내는 작업이 수행된다.

header로 움직이는 것인데, 이러한 작업을 seek라고 한다.

 

즉, 트랙에서 트랙으로 옮겨가는 시간을 seek time이라고 부른다. (데이터를 찾기 위해 트랙을 이동하는 시간)

 

그리고 이를 rotation해주는 작업이 필요하다.

그 다음 데이터를 읽기 위해서는 또 회전을 해줘야 하기 때문이다.

 

즉, 찾은 트랙에서 찾는 섹터까지 이동하는 시간을 rotation delay라고 한다.

 

그렇다면 데이터의 총 길이만큼 플래터가 회전하면서 데이터를 읽고 쓰는 시간을 transfer time이라고 한다.

(총 전송 데이터 크기) / (한 트랙의 크기) * ratation time 공식을 통해 구할 수 있다.